# org.brainkb/brainkb: tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/org.brainkb%2Fbrainkb/versions/latest)
- Connected to: https://mcp.brainkb.org/mcp
- Repository: https://github.com/sensein/BrainKB
- Scoring rules: v2
- Tools: 72
- Average: 31.6 / 100 (Rain)
- Near-identical pairs: 2

This page shows how org.brainkb/brainkb's tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Major: 72 tools. Above 40, models choose less accurately.
- Minor: The server has no instructions. Say there, once, what the server is for and when to use it: Claude Code and Gemini CLI read the instructions before the tool descriptions.

## Tools

- `brainkb_deactivate_user`: 9 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: email.
  - Minor: String arguments with no constraint or example: email.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_provenance_job`: 9 / 100
  - Major: The description only restates the name (8 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: job_id.
  - Minor: String arguments with no constraint or example: job_id.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: job_id. Name the tool or the place that returns it, or models look it up first.
- `brainkb_revoke_role_capability`: 9 / 100
  - Major: The description only restates the name (9 words).
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: role, capability.
  - Minor: String arguments with no constraint or example: role, capability.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_delta`: 13 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: job_id.
  - Minor: String arguments with no constraint or example: job_id.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: job_id. Name the tool or the place that returns it, or models look it up first.
- `brainkb_provenance_graph`: 13 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: named_graph_iri.
  - Minor: String arguments with no constraint or example: named_graph_iri.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_remove_role`: 13 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: email, role.
  - Minor: String arguments with no constraint or example: email, role.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Major: It may be destructive, but destructiveHint is not set.
- `brainkb_revoke_capability`: 13 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: member, capability.
  - Minor: String arguments with no constraint or example: member, capability.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_unban_user`: 13 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: email.
  - Minor: String arguments with no constraint or example: email.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_delta_compare`: 16 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: job_id_a, job_id_b.
  - Minor: String arguments with no constraint or example: job_id_a, job_id_b.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_discard_upload`: 16 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: upload_id.
  - Minor: String arguments with no constraint or example: upload_id.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Major: It may be destructive, but destructiveHint is not set.
  - Minor: Required identifiers whose description does not say where the value comes from: upload_id. Name the tool or the place that returns it, or models look it up first.
- `brainkb_activate_user`: 17 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: email.
  - Minor: String arguments with no constraint or example: email.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_delta_history`: 17 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: named_graph_iri.
  - Minor: String arguments with no constraint or example: named_graph_iri.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_recover_job`: 17 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: job_id.
  - Minor: String arguments with no constraint or example: job_id.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: job_id. Name the tool or the place that returns it, or models look it up first.
- `brainkb_remove_access_rule`: 17 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: slug, rule_id.
  - Minor: String arguments with no constraint or example: slug.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Major: It may be destructive, but destructiveHint is not set.
- `brainkb_ban_user`: 20 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: email, reason.
  - Minor: String arguments with no constraint or example: email, reason.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Major: It may be destructive, but destructiveHint is not set.
- `brainkb_capabilities`: 20 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: member.
  - Minor: String arguments with no constraint or example: member.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_list_access_rules`: 20 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: slug.
  - Minor: String arguments with no constraint or example: slug.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_job_status`: 22 / 100
  - Major: Arguments without a description: job_id.
  - Minor: String arguments with no constraint or example: job_id.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: job_id. Name the tool or the place that returns it, or models look it up first.
- `brainkb_list_jobs`: 22 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: limit.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_role_capabilities`: 22 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: role.
  - Minor: String arguments with no constraint or example: role.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_synthscholar_get_review`: 22 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: review_id, space.
  - Minor: String arguments with no constraint or example: review_id.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: review_id. Name the tool or the place that returns it, or models look it up first.
- `brainkb_unreserve_graph`: 22 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: reservation_id.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Major: It may be destructive, but destructiveHint is not set.
  - Minor: Required identifiers whose description does not say where the value comes from: reservation_id. Name the tool or the place that returns it, or models look it up first.
- `brainkb_add_space_member`: 23 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: slug, member_email, role.
  - Minor: String arguments with no constraint or example: slug, member_email.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_list_users`: 24 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: q, role, limit.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_create_role`: 25 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: name, category, description.
  - Minor: String arguments with no constraint or example: name.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_get_space`: 25 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: slug.
  - Minor: String arguments with no constraint or example: slug.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_grant_capability`: 25 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: member, capability.
  - Minor: String arguments with no constraint or example: member, capability.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_grant_role_capability`: 25 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: role, capability.
  - Minor: String arguments with no constraint or example: role, capability.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_revoke_token`: 25 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: token_id.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_space_tree`: 25 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: slug.
  - Minor: String arguments with no constraint or example: slug.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_synthscholar_find_study`: 25 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: doi, pmid, title.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_create_permission`: 26 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: name, resource, action, description.
  - Minor: String arguments with no constraint or example: name, resource, action.
  - Minor: Says nothing about what it returns.
- `brainkb_ingest_files`: 27 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: named_graph_iri, file_paths, max_concurrency.
  - Minor: String arguments with no constraint or example: named_graph_iri.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_set_space_visibility`: 28 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: slug, visibility.
  - Minor: String arguments with no constraint or example: slug, visibility.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_synthscholar_evidence`: 29 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: review_id, q, claim, pmid, grounded, limit, offset, space.
  - Minor: String arguments with no constraint or example: review_id.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: review_id. Name the tool or the place that returns it, or models look it up first.
- `brainkb_assign_role`: 30 / 100
  - Major: Arguments without a description: email, role.
  - Minor: String arguments with no constraint or example: email, role.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_upload_status`: 30 / 100
  - Major: Arguments without a description: upload_id.
  - Minor: String arguments with no constraint or example: upload_id.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: upload_id. Name the tool or the place that returns it, or models look it up first.
- `brainkb_add_space_graph`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: slug, named_graph_iri, description.
  - Minor: String arguments with no constraint or example: slug, named_graph_iri.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Major: It may be destructive, but destructiveHint is not set.
- `brainkb_search`: 32 / 100
  - Major: Arguments without a description: q, space, limit, offset.
  - Minor: String arguments with no constraint or example: q.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_synthscholar_list_reviews`: 32 / 100
  - Major: Arguments without a description: space, q.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_synthscholar_studies`: 32 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: review_id, q, full_text, source, rob, year_from, year_to, with_abstract, limit, offset, space.
  - Minor: String arguments with no constraint or example: review_id.
  - Minor: The meaning of the boolean argument with_abstract is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: review_id. Name the tool or the place that returns it, or models look it up first.
- `brainkb_synthscholar_text`: 33 / 100
  - Major: Arguments without a description: review_id, section, space.
  - Minor: String arguments with no constraint or example: review_id.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: review_id. Name the tool or the place that returns it, or models look it up first.
- `brainkb_add_access_rule`: 35 / 100
  - Major: Arguments without a description: slug, action, subject_type, subject_value.
  - Minor: String arguments with no constraint or example: slug, action, subject_type, subject_value.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_available_roles`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_synthscholar_records`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: review_id, kind, q, study, fields, limit, offset, space.
  - Minor: String arguments with no constraint or example: review_id, kind.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: review_id. Name the tool or the place that returns it, or models look it up first.
- `brainkb_read_space`: 36 / 100
  - Major: Arguments without a description: slug.
  - Minor: String arguments with no constraint or example: slug.
  - Minor: Says nothing about what it returns.
- `brainkb_reserve_graph`: 36 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: iri, match_type, reason, space_slug.
  - Minor: String arguments with no constraint or example: iri.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_synthscholar_screening`: 36 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: review_id, stage, decision, assessed_on, reason, q, pmid, limit, offset, space.
  - Minor: String arguments with no constraint or example: review_id.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Minor: Required identifiers whose description does not say where the value comes from: review_id. Name the tool or the place that returns it, or models look it up first.
- `brainkb_synthscholar_ingest`: 37 / 100
  - Major: Arguments without a description: output_dir, space_slug.
  - Minor: String arguments with no constraint or example: output_dir, space_slug.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_create_space`: 38 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: slug, name, visibility, description, space_type, parent_slug.
  - Minor: String arguments with no constraint or example: slug, name.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_finish_login`: 38 / 100
  - Major: Arguments without a description: code, base_url.
  - Minor: String arguments with no constraint or example: code.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_ingest_upload`: 40 / 100
  - Major: Arguments without a description: named_graph_iri, upload_id.
  - Minor: String arguments with no constraint or example: named_graph_iri, upload_id.
  - Minor: Required identifiers whose description does not say where the value comes from: upload_id. Name the tool or the place that returns it, or models look it up first.
- `brainkb_update_space`: 40 / 100
  - Major: Arguments without a description: slug, name, description, new_slug.
  - Minor: String arguments with no constraint or example: slug.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_use_token`: 41 / 100
  - Major: Arguments without a description: token, base_url.
  - Minor: String arguments with no constraint or example: token.
- `brainkb_list_registered_graphs`: 42 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_create_token`: 43 / 100
  - Major: Arguments without a description: name, days.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `brainkb_delete_space`: 43 / 100
  - Major: Arguments without a description: slug, confirm_slug.
  - Minor: String arguments with no constraint or example: slug, confirm_slug.
  - Minor: Says nothing about what it returns.
  - Major: It may be destructive, but destructiveHint is not set.
- `brainkb_logout`: 43 / 100
  - Major: The description is too short (7 words).
  - Major: Says nothing about when to use it, or when not to.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_qa_run`: 43 / 100
  - Major: Arguments without a description: query_id, params, limit, offset.
  - Minor: String arguments with no constraint or example: query_id.
- `brainkb_ingest_text`: 44 / 100
  - Major: Arguments without a description: named_graph_iri, data, sha256, expected_bytes.
  - Minor: String arguments with no constraint or example: named_graph_iri, data.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
  - Major: It may be destructive, but destructiveHint is not set.
- `brainkb_list_reserved_graphs`: 47 / 100
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_list_writable_spaces`: 47 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_list_permissions`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `brainkb_list_tokens`: 50 / 100
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_list_uploads`: 50 / 100
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_qa_list`: 50 / 100
  - Major: Arguments without a description: category, search.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_login`: 51 / 100
  - Major: Arguments without a description: email, password, base_url.
  - Minor: String arguments with no constraint or example: email, password.
- `brainkb_list_capabilities`: 55 / 100
  - Minor: Says nothing about what it returns.
- `brainkb_sparql`: 58 / 100
  - Major: Arguments without a description: sparql_query, limit, offset.
  - Minor: String arguments with no constraint or example: sparql_query.
- `brainkb_globus_login`: 60 / 100
  - Major: Arguments without a description: provider, base_url.
  - Minor: No `required` list, so every argument is optional.
  - Minor: No constraints, side effects, auth or rate limits described, and no annotations.
- `brainkb_list_spaces`: 68 / 100
  - Minor: Says nothing about what it returns.
- `brainkb_whoami`: 68 / 100

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
