Brainkb
by brainkb.org in Other
MCP server for querying BrainKB, a knowledge base for neuroscience knowledge graphs.
https://mcp.brainkb.org/mcp- Tools
- 72
- open to any client
- Uptime
- 100%
- last 30 days
- Response time
- 446 ms
- 707 ms slowest 5%
- Last check
- Passed
- 36 min ago, next in 5 h
Reliability
Status and outage history · Atom feed · Watch with other listings
How to connect
Add it to any MCP client that supports remote servers.
{
"mcpServers": {
"brainkb": {
"type": "http",
"url": "https://mcp.brainkb.org/mcp"
}
}
}72 tools
- brainkb_login
Authenticate to BrainKB with the user's credentials and cache the JWT for THIS session only (isolated per caller). The password/token are never echoed. Uses single sign-on: one login mints a refresh token, cached for THIS session, which is exchanged on demand for…
- brainkb_globus_login
Start an OAuth login (Globus / ORCID / GitHub) for THIS session — use this instead of brainkb_login when the user signs in with Globus rather than a password. Returns a URL to open in a browser; after signing in, the page shows a short one-time code — pass it to…
- brainkb_finish_login
Complete an OAuth login started with brainkb_globus_login by exchanging the one-time code shown in the browser for a session token. The code is single-use and never echoed back.
- brainkb_logout
Forget the cached token for this session.
- brainkb_whoami
Report the current caller's auth state (email, authenticated, and when the cached session expires). When signed in it also returns base_url — the backend THIS SERVER talks to, which on a hosted deployment is an internal address and says nothing about the caller's own…
- brainkb_create_token
Generate a Personal Access Token (PAT) for browser-free auth. Requires you to be logged in already (brainkb_login or brainkb_globus_login). The token is shown ONCE and never again — copy it and set it as BRAINKB_TOKEN in your MCP/skill config; then no login or…
- brainkb_list_tokens
List your Personal Access Tokens (metadata only — the secret is never shown): id, name, prefix, created/last-used/expiry, and whether each is active/revoked/expired. Use the id with brainkb_revoke_token.
- brainkb_revoke_token
Revoke one of your Personal Access Tokens by id (see brainkb_list_tokens). Takes effect immediately — the next call using that token fails.
- brainkb_use_token
Use a Personal Access Token (brainkb_pat_...) for THIS session — an alternative to setting BRAINKB_TOKEN in the config. Validates the token, then caches it so subsequent calls authenticate with it. The token is never echoed.
- brainkb_list_spaces
List spaces the user can see (their own/member spaces + public ones), each annotated with THIS caller's permission so you know what they may do: - your_role: 'owner' | 'editor' | 'viewer' | null (their space membership, including a role inherited…
- brainkb_create_space
Create a workspace/space, or a subspace inside one. The caller becomes owner. slug: lowercase/hyphen id, **globally unique** — if it's already taken the call returns 409 (pick another slug). visibility: 'private' or 'public' (set per space: a private space may hold a…
- brainkb_get_space
A space's details: graphs, members (direct, plus `inherited_members` with the parent space each comes from), visibility, `parent_slug`, `ancestors` (root first) and direct `subspaces` — only the ones the caller may see — and the caller's `your_role` /…
- brainkb_space_tree
A space and every subspace below it (any depth), nested: each node has slug, name, visibility, the caller's role and whether it's inherited from a parent, and its graph count. Only subspaces the caller may see are included.
- brainkb_set_space_visibility
Set a space 'public' (anyone, even anonymous, can read) or 'private' (members only). Owner only. Everything in a public space is public: making a space public also makes all its subspaces public, and a subspace of a public space cannot be made private (409). Under a…
- brainkb_update_space
Rename a space, change its description, and/or give it a new slug. Owner/manager only. Pass only what changes; description="" clears it. `new_slug` (lowercase letters, digits and hyphens, 3-64 chars) moves the space's IRI and every graph whose IRI is built from the…
- brainkb_delete_space
PERMANENTLY delete a space and everything in it. SuperAdmin only; irreversible. Drops the space's named graphs and the ingestion-history (delta) graphs that hold copies of their data, removes the graphs' registry entries and the space's RDF manifest, and deletes the…
- brainkb_add_space_member
Add/update a space member. role: 'owner' | 'editor' | 'viewer'. Owner only.
- brainkb_add_space_graph
Register a named graph and bind it to a space, so ingest/read on that graph are governed by the space's membership and visibility. Owner/editor only. The named_graph_iri is **globally unique** — one graph belongs to exactly one space. If it's already registered (to…
- brainkb_ingest_text
Ingest raw RDF text (Turtle / N-Triples / JSON-LD, auto-detected) into a named graph. Returns a job_id; ingestion runs in the background — poll with brainkb_job_status. The graph must be registered (see brainkb_add_space_graph) and the caller must have write access…
- brainkb_list_uploads
List RDF files YOU have staged with POST /upload but not yet ingested. Shows each upload_id, its size, sha256 and when it expires. Only your own uploads are visible.
- brainkb_upload_status
State of one of your staged/submitted uploads. `state` is `staged` (waiting for brainkb_ingest_upload), `submitting` (the server is streaming it to the ingest API), `submitted` (accepted — `job_id` is set, poll brainkb_job_status) or `failed` (the staged bytes were…
- brainkb_discard_upload
Delete one of your staged uploads without ingesting it.
- brainkb_ingest_upload
Ingest a file you staged with `POST /upload` into a named graph. This is the route for a large local file: your HTTP client streams the bytes straight to this server over HTTPS, then you name the resulting upload_id here. The server reads its own staged copy and…
- brainkb_ingest_files
Ingest local RDF files (ttl/nt/nq/rdf/owl/jsonld/json) into a named graph. Returns a job_id; runs in the background — poll with brainkb_job_status.
- brainkb_synthscholar_ingest
Ingest a SynthScholar review — the output directory of a run (the folder holding review.json and review.ttl, as the synthscholar skill writes it) — into a space you may write to (see brainkb_list_writable_spaces; you need to be its owner or an editor). A review…
- brainkb_synthscholar_list_reviews
Ingested SynthScholar reviews you can read (public spaces: anyone): id, title, research question, space, graph, included count, when ingested, ingest job. `q` filters on text in the title or research question.
- brainkb_synthscholar_studies
The included studies of an ingested review, filtered. `q`: text in title, authors, journal, DOI, PMID or keywords. `full_text`: true = read in full, false = abstract only. `source`: full-text route (europe_pmc, unpaywall, ezproxy, arxiv, …). `rob`: risk-of-bias…
- brainkb_synthscholar_screening
The screening audit trail of an ingested review: every decision with its stage (title_abstract | full_text), decision (include | exclude), what it was judged on (title_abstract | full_text | abstract_only), the full-text route and the reason. Filter by any of those…
- brainkb_synthscholar_evidence
Evidence spans of an ingested review: the quoted text its claims rest on, with the study, section, relevance, and whether the quote was matched verbatim in the source (`grounded`). Filter by text, claim type, PMID or grounding.
- brainkb_synthscholar_records
Per-study records an ingested review produced. `kind`: `charting` (the data-charting form's answers per study), `appraisal` (critical appraisal by domain) or `narrative` (narrative synthesis rows: design, methods, outcomes, limitations). `q`: text in the answers…
- brainkb_synthscholar_text
An ingested review's own text: `abstract`, `introduction`, `synthesis`, `bias`, `limitations`, `conclusions`, `research_question`, `search_queries` or `per_group` (the per-group analysis) — or all of them when `section` is empty.
- brainkb_synthscholar_find_study
Which ingested reviews (that you can read) include or screened a study — by DOI, PMID or part of its title (6+ characters) — and what happened to it in each: included (read in full or from the abstract) or each screening decision with its reason.
- brainkb_synthscholar_get_review
One ingested review: summary, its graph and space, the files kept (path, kind, media type, size, sha256), the run's search log and verification, the screening basis and full-text retrieval. Long texts and the per-study list are left out here — read them from the…
- brainkb_list_jobs
List the user's ingest jobs (newest first) with status and progress.
- brainkb_job_status
Detailed status of one ingest job: status, progress %, current file/stage, per-file failures, and (when complete) a summary.
- brainkb_recover_job
Attempt to recover a stuck/errored ingest job (marks it recoverable/errored).
- brainkb_search
Full-text search over the knowledge graphs, access-filtered by space visibility. Pass `space` to scope to one workspace, omit for a full search. No login needed: an unauthenticated caller searches public spaces only. Anonymous/other users never see private-space data.
- brainkb_read_space
Read all RDF (JSON-LD) in a space's graphs. Public spaces are readable by anyone without logging in (read-only); private spaces require login and membership. Don't ask the user to log in just to read a public space.
- brainkb_list_writable_spaces
Spaces the caller can ingest into, each with its graphs (and descriptions) and `parent_slug` for subspaces — decided by the same checks ingestion uses: owner/ editor membership (including a role inherited from a parent space), a space write access rule, or…
- brainkb_list_registered_graphs
List registered named graphs visible to the caller (private-space graphs the caller can't access are hidden).
Security scan
No findings
We scan names, descriptions and tool definitions for hidden instructions and other prompt-injection patterns.
Recent checks
| When | Result | HTTP | Time |
|---|---|---|---|
| 36 min ago | Passed | 200 | 429 ms |
| 16 h ago | Passed | 200 | 684 ms |
| 30 h ago | Passed | 200 | 450 ms |
| 44 h ago | Passed | 200 | 418 ms |
| 2 days ago | Passed | 200 | 686 ms |
Show 10 older checks
| 3 days ago | Passed | 200 | 467 ms |
| 3 days ago | Passed | 200 | 693 ms |
| 4 days ago | Passed | 200 | 446 ms |
| 4 days ago | Passed | 200 | 449 ms |
| 5 days ago | Passed | 200 | 422 ms |
| 6 days ago | Passed | 200 | 440 ms |
| 6 days ago | Passed | 200 | 442 ms |
| 7 days ago | Passed | 200 | 719 ms |
| 7 days ago | Passed | 200 | 448 ms |
| 8 days ago | Passed | 200 | 470 ms |