Search arXiv papers, download full text, semantic search, citation graphs, and alerts via MCP.
Brainkb is installed from its publisher's own source and answers where it runs, so this marketplace is not in the path of a single call. There is no address here to send one to, and a panel that pretended otherwise would be showing you an answer we made up. Install it and call it from your own client — the Installation tab has the entry for each one.
What it does
MCP server for querying BrainKB, a knowledge base for neuroscience knowledge graphs.
Quickstart
# 1 — add it to Claude Code
claude mcp add --scope user --transport http brainkb-mcp https://mcp.brainkb.org/mcp
# 2 — ask your agent for something these tools do
# brainkb_login, brainkb_globus_login, brainkb_finish_login and 52 more
Brainkb costs nothing on mcprush: there is no plan to choose here, no cap to set and nothing mcprush can bill you for.
Collected from a public index. Nobody has claimed this account, so nothing here was written by its author — claim it if it is yours.
Where are you running it?
Every route below installs the same thing and ends at the same approval screen. Nothing here runs on your machine and nothing runs on ours: this server answers at its publisher’s own address, and what you install is the connection straight to it.
This is a public server: it answers at its publisher’s own address and this marketplace is not in the path. Claude Code registers it in one command; --scope user makes it available in every project. The transport below is http, as the publisher's own manifest declares it.
claude mcp add --scope user --transport http brainkb-mcp https://mcp.brainkb.org/mcpReconnect, or start a new session, and the tools appear in the model’s tool list.
One config entry pointing straight at the publisher’s own address — this marketplace is not in the path, and nothing from this listing executes on your machine.
55 tools, with what each one reads, writes and reaches shown before you agree — the same list on every route above. Read the tool surface.
Tool surface
What the model actually sees. Descriptions are diffed on every release — see version history.
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 per-service access tokens (query_service, usermanagement, …). Falls back to a legacy per-service token if the backend
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | yes | — | |
| password | string | yes | — |
| base_url | string | no | — |
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(code) to complete. (The browser step is unavoidable: only the user can consent at the provider.)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| provider | string | no | — |
| base_url | string | no | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| code | string | yes | — |
| base_url | string | no | — |
Forget the cached token for this session.
No parameter schema on file.
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 machine.
No parameter schema on file.
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 browser is needed until it expires. name: a label so you can tell tokens apart (e.g. 'laptop'). days: lifetime (def
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | no | — |
| days | integer | no | — |
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.
No parameter schema on file.
Revoke one of your Personal Access Tokens by id (see brainkb_list_tokens). Takes effect immediately — the next call using that token fails.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| token_id | integer | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| token | string | yes | — |
| base_url | string | no | — |
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) - is_owner: they own the space - access: 'owner' | 'member' | 'public' (how it's available to them) - can_write: their space role permits ingest (ow
No parameter schema on file.
Create a workspace/space. The caller becomes owner. slug: lowercase/hyphen id, globally unique — if it's already taken the call returns 409 (pick another slug; slugs are never reused/deleted). visibility: 'private' or 'public'; description: short human description (recommended — surfaces in the registry); space_type: 'individual' (a personal space — any write-capable role)
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | — |
| name | string | yes | — |
| visibility | string | no | — |
| description | string | no | — |
| space_type | string | no | — |
Set a space 'public' (anyone, even anonymous, can read) or 'private' (members only). Owner only.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | — |
| visibility | string | yes | — |
Add/update a space member. role: 'owner' | 'editor' | 'viewer'. Owner only.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | — |
| member_email | string | yes | — |
| role | string | no | — |
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 any space) the call returns 409; graph bindings are permanent (no unregister/delete).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | — |
| named_graph_iri | string | yes | — |
| description | string | no | — |
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 to its space. sha256 / expected_bytes are an integrity contract, and you should use them whenever the RDF cam
| Parameter | Type | Required | Notes |
|---|---|---|---|
| named_graph_iri | string | yes | — |
| data | string | yes | — |
| sha256 | string | no | — |
| expected_bytes | integer | no | — |
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.
No parameter schema on file.
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 KEPT, so retry with brainkb_ingest_upload rather than re-uploading).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| upload_id | string | yes | — |
Delete one of your staged uploads without ingesting it.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| upload_id | string | yes | — |
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 posts it to the ingest API internally, so the RDF never passes through a model's context — nothing to transcribe, no
| Parameter | Type | Required | Notes |
|---|---|---|---|
| named_graph_iri | string | yes | — |
| upload_id | string | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| named_graph_iri | string | yes | — |
| file_paths | array | yes | — |
| max_concurrency | integer | no | — |
List the user's ingest jobs (newest first) with status and progress.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| limit | integer | no | — |
Detailed status of one ingest job: status, progress %, current file/stage, per-file failures, and (when complete) a summary.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| job_id | string | yes | — |
Attempt to recover a stuck/errored ingest job (marks it recoverable/errored).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| job_id | string | yes | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| q | string | yes | — |
| space | string | no | — |
| limit | integer | no | — |
| offset | integer | no | — |
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.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | — |
List registered named graphs visible to the caller (private-space graphs the caller can't access are hidden).
No parameter schema on file.
Run an arbitrary SPARQL query. Requires an Admin/SuperAdmin role (the sparql_admin capability) — for ordinary questions prefer brainkb_search, brainkb_read_space, or the provenance/delta tools, which need no admin role.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| sparql_query | string | yes | — |
Find a canned question BrainKB can answer, then run it with brainkb_qa_run. Prefer these over writing SPARQL: they are vetted against BrainKB's actual vocabulary. Discovery is two steps, so you never read every query at once: 1. brainkb_qa_list() -> the menu: each category's name, a description of the questions it covers, and how many queries it has. Pick the category w
| Parameter | Type | Required | Notes |
|---|---|---|---|
| category | string | no | — |
| search | string | no | — |
Run a canned question from brainkb_qa_list by id. params maps parameter names to values; they are validated and escaped, never spliced in raw. Runs through the same SPARQL endpoint as brainkb_sparql, so it needs the same role.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| query_id | string | yes | — |
| params | no | — |
PROV-O provenance bundle (JSON-LD) for one ingest job.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| job_id | string | yes | — |
PROV-O ingestion/activity history (JSON-LD) for a named graph.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| named_graph_iri | string | yes | — |
The exact triples a job added (its delta), as JSON-LD.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| job_id | string | yes | — |
A named graph's change history: one entry per ingest delta (job, triple count, timestamp), newest first.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| named_graph_iri | string | yes | — |
Compare two jobs' deltas: A-only / B-only / shared triple counts + triples.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| job_id_a | string | yes | — |
| job_id_b | string | yes | — |
(Admin only) Show a user's roles, effective capabilities, and delegated grants. Useful to check why someone can/can't create team spaces, ingest, etc.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| member | string | yes | — |
(Admin only) Delegate a capability to a user — e.g. 'create_team_space' or 'manage_team_space' so a Curator/Lab Member can create/manage team spaces. Grantable: create_private_space, create_team_space, manage_team_space, ingest, recover, read_private (NOT the admin-only 'grant'/'sparql_admin').
| Parameter | Type | Required | Notes |
|---|---|---|---|
| member | string | yes | — |
| capability | string | yes | — |
(Admin only) Revoke a previously granted capability from a user.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| member | string | yes | — |
| capability | string | yes | — |
(Admin only) Catalog of all KG capabilities, which are delegatable ('grantable'), which are admin-only, and a description of each. Use this to see the available permission options before granting to a user or group/role.
No parameter schema on file.
(Admin only) List the capabilities granted to a role/group (e.g. 'uk_collaborator', 'Lab Member').
| Parameter | Type | Required | Notes |
|---|---|---|---|
| role | string | yes | — |
(Admin only) Grant a capability to a whole role/group so EVERY member gets it — e.g. give a custom group 'uk_collaborator' the 'ingest' or 'create_private_space' capability. Grantable: create_private_space, create_team_space, manage_team_space, ingest, recover, read_private (NOT the admin-only 'grant'/'sparql_admin'). Create the group first with brainkb_create_role, then assign
| Parameter | Type | Required | Notes |
|---|---|---|---|
| role | string | yes | — |
| capability | string | yes | — |
(Admin only) Revoke a capability from a role/group.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| role | string | yes | — |
| capability | string | yes | — |
List a space's fine-grained access rules (member/manager of the space).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | — |
(Space manager) Restrict a space action to a subject. action: 'read' | 'write' | 'manage'. subject_type: 'global_role' (e.g. 'Admin','Lab Member') | 'member' (an email) | 'space_role' ('viewer'|'editor'|'owner', matched as >=). When rules exist for an action, only matching callers may perform it; the space owner and Admin/SuperAdmin always bypass (no lockout). Example: restrict
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | — |
| action | string | yes | — |
| subject_type | string | yes | — |
| subject_value | string | yes | — |
(Space manager) Delete a fine-grained access rule by its id (see brainkb_list_access_rules).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| slug | string | yes | — |
| rule_id | integer | yes | — |
(Admin) List users (profiles) — filter by q (name/email/orcid) or role. Shows profile_id, email, roles, providers, ban status.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| q | string | no | — |
| role | string | no | — |
| limit | integer | no | — |
(Admin) List the available roles/groups (Admin, Lab Member, Curator, …).
No parameter schema on file.
(Admin) Create a new role/group — e.g. an 'External' collaborator group — which can then be assigned with brainkb_assign_role.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| category | string | no | — |
| description | string | no | — |
(Admin) Assign a role/group to a user by email (e.g. 'Lab Member', 'External', or a custom group). The user must already have a profile (created on first login/registration). NOTE: assigning the 'Admin'/'SuperAdmin' role is SuperAdmin-only (hierarchy: SuperAdmin > Admin).
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | yes | — | |
| role | string | yes | — |
(Admin) Remove a role/group from a user by email.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | yes | — | |
| role | string | yes | — |
(Admin) Activate a user's account (sets the JWT user active) by email.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | yes | — |
(Admin) Deactivate a user's account by email.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | yes | — |
(Admin) Ban a user by email (reversible; preserves history). This is how accounts are removed — there is NO hard delete. Banning an Admin is SuperAdmin-only; SuperAdmin accounts cannot be banned.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | yes | — | |
| reason | string | yes | — |
(Admin) Lift a ban on a user by email.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| string | yes | — |
(Admin) List all usermanagement permissions (resource/action pairs used for page-access and role-permission mapping). These are the addable 'permission' options; KG action-capabilities are listed by brainkb_list_capabilities.
No parameter schema on file.
(Admin) Create a new usermanagement permission, e.g. name='dataset.export', resource='dataset', action='export'. Attach it to roles via the usermanagement role-permissions API.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| name | string | yes | — |
| resource | string | yes | — |
| action | string | yes | — |
| description | string | no | — |
- Every tool — any call limit is its publisher’s, not ours
- No card, and mcprush charges nothing for it
- Runs at its publisher’s own address — this marketplace is not in the path
- Nothing to cap, because mcprush bills nothing
What counts against your monthly calls
| Tool | Unit | Calls used | Out of the allowance |
|---|
Nothing here is billable: mcprush charges nothing to install Brainkb or to call it, at any volume.
Two independent axes, because powerful and malicious are different questions. The grade is threat only. The capability level is blast radius, and it is never a penalty on the grade — it is priced as one subtract-only term in the score, where you can see it.
This listing is an address its publisher runs, and you connect to it directly — this marketplace is not in the path. The scanner reads packages and public source, and an address is neither: the repository linked on this page is where this record was collected from, not a copy of what the address serves, so it is not graded in its place. So there is no grade — not a withheld one, an unmeasured one.
Release history
This is an address its publisher runs: which release it serves is theirs to choose, so there is nothing here to pin. The history below is for reading; the current release on file is 0.1.0.
No release note was published with this version.
One review per account, from a signed-in account that does not publish this listing. Nothing else is asked — you can say what you think before you install it. Publishers can reply once per review, and a review can be edited or deleted by whoever wrote it.
Any signed-in account that does not publish Brainkb can review it, once — before installing it or after. A review from an account that has installed it is marked as one.
Nobody has reviewed this listing. The rating on the card is the mean of the reviews written here and nothing else, so there is no rating until somebody writes the first — which takes a signed-in account that does not publish it, and nothing else.