Categories › Data & Databases › SQL databases
MCP server for querying BrainKB, a knowledge base for neuroscience knowledge graphs.
Remote server: your requests and data go to mcp.brainkb.org. Claude Code: claude mcp add --transport http brainkb https://mcp.brainkb.org/mcp · Claude app: Settings → Connectors → Add custom connector.
The tools this server listed when we connected to it, in its own words.
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 nebrainkb_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 rathebrainkb_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 codebrainkb_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 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). 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 ibrainkb_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,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 maybrainkb_create_space — Create a workspace/space, or a subspace inside one. The caller becomes owner. slug: lowercase/hyphen id, **globally unique** — if it's alreabrainkb_get_space — A space's details: graphs, members (direct, plus `inherited_members` with the parent space each comes from), visibility, `parent_slug`, `ancbrainkb_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 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: makbrainkb_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. `nebrainkb_delete_space — PERMANENTLY delete a space and everything in it. SuperAdmin only; irreversible. Drops the space's named graphs and the ingestion-history (debrainkb_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/edibrainkb_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 — pbrainkb_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 yourbrainkb_upload_status — State of one of your staged/submitted uploads. `state` is `staged` (waiting for brainkb_ingest_upload), `submitting` (the server is streaminbrainkb_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 bytebrainkb_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_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 writebrainkb_synthscholar_list_reviews — Ingested SynthScholar reviews you can read (public spaces: anyone): id, title, research question, space, graph, included count, when ingestebrainkb_synthscholar_studies — The included studies of an ingested review, filtered. `q`: text in title, authors, journal, DOI, PMID or keywords. `full_text`: true = read brainkb_synthscholar_screening — The screening audit trail of an ingested review: every decision with its stage (title_abstract | full_text), decision (include | exclude), wbrainkb_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 matcbrainkb_synthscholar_records — Per-study records an ingested review produced. `kind`: `charting` (the data-charting form's answers per study), `appraisal` (critical appraibrainkb_synthscholar_text — An ingested review's own text: `abstract`, `introduction`, `synthesis`, `bias`, `limitations`, `conclusions`, `research_question`, `search_qbrainkb_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 happenbrainkb_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 verificatbrainkb_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 seabrainkb_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 logibrainkb_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 ingebrainkb_list_registered_graphs — List registered named graphs visible to the caller (private-space graphs the caller can't access are hidden).Not tested by KitScout yet. When our harness runs it, pros, cons and the tasks we tried appear here, with the date and evidence.