mcpField
T
thebrain

thebrain

Local
github.com/yBookoffMemory & Knowledge8Updated 2w ago

About thebrain

thebrain is an MCP server for TheBrain 15 that lets agents search, explore, and update a local knowledge graph. Its semantic tools include batch ingestion that connects new material to existing thoughts while avoiding duplicate writes.

Key features

  1. 01Searches by meaning using a local vector index
  2. 02Reads thoughts and traverses graph neighborhoods
  3. 03Ingests connected thought structures in one call
  4. 04Creates and updates thoughts, notes, tags, and links
  5. 05Requires confirmation for destructive operations

Use cases

  1. 01Find relevant thoughts despite synonyms or typos
  2. 02Add an article as linked thoughts
  3. 03Explore related concepts across graph connections
  4. 04Review recent changes to a brain

MCP support

It exposes 19 semantic tools to MCP clients, built on TheBrain 15's local API. Tools cover search, graph reading, indexing, and writes, including batch ingestion.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"ybookoff-thebrain": {
"command": "npx",
"args": [
"-y",
"thebrain-mcp-server"
],
"env": {
"THEBRAIN_API_KEY": "<THEBRAIN_API_KEY>",
"THEBRAIN_BASE_URL": "<THEBRAIN_BASE_URL>",
"THEBRAIN_DATA_DIR": "<THEBRAIN_DATA_DIR>",
"THEBRAIN_ALLOW_DESTRUCTIVE": "<THEBRAIN_ALLOW_DESTRUCTIVE>",
"THEBRAIN_EMBEDDING_MODEL": "<THEBRAIN_EMBEDDING_MODEL>",
"THEBRAIN_EMBEDDING_DTYPE": "<THEBRAIN_EMBEDDING_DTYPE>",
"THEBRAIN_TIMEOUT_MS": "<THEBRAIN_TIMEOUT_MS>"
}
}
}
}
Run commandnpx -y thebrain-mcp-server
Environment variables to set
THEBRAIN_API_KEYSecretLocal API key from TheBrain: Settings > User > Local API Key
THEBRAIN_BASE_URLAddress of the local API. Default http://localhost:11522, then http://localhost:8001 for older TheBrain builds
THEBRAIN_DATA_DIRWhere semantic indexes are stored. Default ~/.thebrain-mcp
THEBRAIN_ALLOW_DESTRUCTIVESet to 1 to allow deleting thoughts. Deletion still requires human confirmation. Default 0
THEBRAIN_EMBEDDING_MODELEmbedding model for semantic search. Default Xenova/multilingual-e5-small
THEBRAIN_EMBEDDING_DTYPEWeight precision: fp32, fp16, q8 or q4. Default q8
THEBRAIN_TIMEOUT_MSAPI request timeout in milliseconds. Default 30000

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npmthebrain-mcp-server0.3.0

Tools

17

Saved tool list · updated 2w ago

This tool takes no parameters.

Details

From the project README

thebrain-mcp

An MCP server for TheBrain 15, built on its local API.

It gives an agent semantic operations over your brain: search by meaning, read a neighbourhood of the graph, and write a decomposed piece of material into the brain as a whole connected structure. It is not a mirror of the API — 19 tools instead of 48 endpoints.

The point is not "save this text". The point is that when you hand an agent an article, it reads it, breaks it into meanings, works out where each one belongs in the graph you already have, what to link it to, and what each note should say.

Published on npm as thebrain-mcp-server — npm considers the shorter name too close to an unrelated existing package. The installed command is still thebrain-mcp.

Requirements

  • TheBrain 15 running, with the local API enabled
  • Node.js 22 or newer
  • An API key: Settings → User → Local API Key

Install

Claude Code
claude mcp add thebrain -e THEBRAIN_API_KEY=your-key -- npx -y thebrain-mcp-server
Clients with a config file
{
  "mcpServers": {
    "thebrain": {
      "command": "npx",
      "args": ["-y", "thebrain-mcp-server"],
      "env": { "THEBRAIN_API_KEY": "your-key" }
    }
  }
}

Semantic search

TheBrain's own search matches prefixes: OT finds OTGP, while a synonym or a typo finds nothing. To search by meaning, the server builds a local vector index.

The embeddings package is not part of the install: it weighs around 380 MB, plus 113 MB for the model itself on first run. Install it separately, and only if you want it:

npm install -g @huggingface/transformers

Then, from your client: brain_index with action: "rebuild". Indexing a 10,000-thought brain takes about a minute; later runs only recompute what changed.

The server works without the package. brain_search falls back to a fan-out of prefix queries over the synonyms the agent supplies, and says plainly that recall is lower.

Everything is local: neither your brain's contents nor your queries are sent anywhere.

Settings

VariableDefaultPurpose
THEBRAIN_API_KEY—Required
THEBRAIN_BASE_URLhttp://localhost:11522, then :8001Local API address
THEBRAIN_DATA_DIR~/.thebrain-mcpWhere indexes are stored
THEBRAIN_ALLOW_DESTRUCTIVE0Allow deleting thoughts and links
THEBRAIN_EMBEDDING_MODELXenova/multilingual-e5-smallEmbedding model
THEBRAIN_EMBEDDING_DTYPEq8Weight precision
THEBRAIN_TIMEOUT_MS30000API request timeout

Changing the model or the precision makes an existing index unusable — the server will say so and ask for a rebuild.

THEBRAIN_BASE_URL rarely needs setting. A TheBrain update moved the local API from port 8001 to 11522, so the server tries the new port and falls back to the old one. Set the variable only if TheBrain listens somewhere else; the endpoint exactly as Settings shows it (http://localhost:11522/api/) is fine.

Tools

Reading

ToolWhat it does
brain_listBrains, which one is open, whether the index is ready
brain_get_thoughtA thought, its aliases, its graph and its note in one call
brain_searchSearch by meaning
brain_traverseWalk the graph several hops out
brain_list_types_and_tagsThe brain's vocabulary
brain_recent_changesWhat changed, in plain language
brain_indexIndex status, build and refresh

Writing

ToolWhat it does
brain_create_thoughtA thought together with its note, type, tags and aliases
brain_update_thoughtName, label, type, colours; add and remove aliases
brain_set_note / brain_append_noteReplace or extend a note
brain_linkConnect two thoughts, with a label; with replace, make the link that joins them another kind
brain_unlinkRemove a link, with human confirmation
brain_tagAttach and detach tags
brain_create_type_or_tagA new type or tag; a tag of a name the brain has is given back, not made twice
brain_attach_urlAttach a link, without duplicates
brain_activateOpen a thought on the user's screen
brain_delete_thoughtDelete, with human confirmation
brain_ingestWrite a whole structure in one call
brain_ingest

The main tool for filling a brain. The agent breaks material into thoughts, wires them together through temporary identifiers, and the whole thing lands in one call:

{
  "brainId": "…",
  "thoughts": [
    { "tempId": "art",   "name": "Article on RAG", "parent": "<uuid of an existing thought>" },
    { "tempId": "embed", "name": "Embeddings", "parent": "art", "note": "…" },
    { "tempId": "store", "name": "Vector store", "parent": "art" }
  ],
  "links": [
    { "from": "embed", "to": "store", "name": "is written into" }
  ]
}

The order of thoughts in the input does not matter — dependencies resolve themselves. Running the same plan twice duplicates nothing, and a thought that was already there keeps the note it has: a plan's note is written only where there is none, and the result says which notes were kept. Bad plans (a cycle, a reference to nowhere) are rejected before the first write.

Skills

The server provides the mechanism — deterministic operations. The methodology (how finely to split meanings, when to attach to something that already exists, what belongs in a note) lives separately, in Claude Code skills. They are plain markdown files, so you can adjust them to your own way of working without rebuilding the server.

SkillWhen it fires
thebrain-ingest"put this article in my brain", "break this down and record it"
thebrain-research"what do I know about X", "have we discussed this already?"
thebrain-organize"clean up my brain", "find duplicates"
thebrain-digest"what did I add this week", "what have I been working on"

Install them as symlinks, so edits in the repository take effect immediately:

mkdir -p ~/.claude/skills
for d in skills/*/; do
  ln -sfn "$PWD/$d" ~/.claude/skills/"$(basename "$d")"
done

Or copy them, if you do not want the link to the repository. For a single project, use .claude/skills in its root instead of ~/.claude/skills.

Skills are picked up when a session starts — an already running session needs a restart (claude --continue keeps the conversation).

Deletion

Of a thought (brain_delete_thought) and of a link (brain_unlink). Off by default. Even with THEBRAIN_ALLOW_DESTRUCTIVE=1 it requires human consent: through a confirmation form if the client supports one, otherwise through a second call with an explicit flag. The agent cannot make this decision for you.

Development

npm install
npm test                 # unit tests, no live TheBrain needed
npm run build

Contract tests against a live API:

THEBRAIN_API_KEY=… npm test                                  # read-only
THEBRAIN_API_KEY=… THEBRAIN_TEST_BRAIN_ID=<uuid> npm test    # + writes

The write tests require a separate, throwaway brain and refuse to touch any brain with more than 500 thoughts. The read-only tests that need a brain read that one too, and skip without it: no test reads another brain.

Documentation

  • ARCHITECTURE.md — how the server is built and why: layer boundaries, the mechanism/policy split, error philosophy, the semantic layer, and the reasons behind each decision.
  • docs/api-map.md — the local API's behaviour, including the undocumented parts, verified against a live instance, with the measurements.
  • docs/stack-evaluation.md — why TypeScript, with numbers.
  • CONTRIBUTING.md — how to work on this.

Support

thebrain-mcp is built and maintained in spare time. If it earns a place in your workflow, you can sponsor it on GitHub — once or monthly.

License

MIT

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.