Skip to main content
Glama

🧠 Mind Map β€” MCP memory & context-handoff server

npm CI License: Apache-2.0 Node

Ever lose the thread of a discussion across Claude Code, Claude Desktop, and your other AI tools? Mind Map is a small, local-first MCP server that acts as a shared memory layer across all your local MCP clients.

You capture context at the end of a session, and resume it in any other tool β€” no more re-explaining your project from scratch. Memory you stop using cools and decays gracefully into one-line traces (it's never silently deleted), so your shelf stays small and trustworthy instead of becoming another haystack.

Local-first by design. It runs on your machine; your memories are plain files in ~/.mindmap that never leave your control. No account, no cloud, no server to trust. Install once with npx @ravi-labs/mindmap-mcp-server install.

ChatGPT and other cloud/web clients are out of scope for now β€” they can't reach a local server without a public endpoint, which conflicts with local-first. See Future.

The idea in one loop

  1. Capture (effortless) β€” at the end of a discussion, save a portable summary.

  2. Resume (promote-on-reuse) β€” pull it forward in a new session. The act of reusing it is what promotes it to trusted memory. Throwaway sessions never get promoted, so they never clutter your shelf.

  3. Consolidate (automatic) β€” a background pass cools unused memory through tiers (πŸ”₯ hot β†’ 🌀️ warm β†’ ❄️ cold) and collapses cold items to a searchable one-line trace. The moat isn't storing things β€” it's forgetting well.

  4. Tidy (opt-in, gamified) β€” a cleanliness score rewards pruning, not hoarding.

Related MCP server: cairn

Install (one command)

Once published to npm, the whole install is:

npx @ravi-labs/mindmap-mcp-server install

This auto-detects your local MCP clients (Claude Desktop, Cursor, Windsurf) and writes the config for you, and configures Claude Code via its CLI if present. Restart your client and Mind Map's tools are there. Preview first with npx @ravi-labs/mindmap-mcp-server install --dry-run; undo with npx @ravi-labs/mindmap-mcp-server uninstall.

Data lives in ~/.mindmap/ by default β€” override with the MINDMAP_DIR env var.

Manual setup (if you prefer)

Every client uses the same command β€” npx -y @ravi-labs/mindmap-mcp-server over stdio.

Claude Code:

claude mcp add mindmap -- npx -y @ravi-labs/mindmap-mcp-server

Claude Desktop β€” edit claude_desktop_config.json (macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):

{
  "mcpServers": {
    "mindmap": {
      "command": "npx",
      "args": ["-y", "@ravi-labs/mindmap-mcp-server"]
    }
  }
}

Cursor / Windsurf / other clients β€” same command + args shape in that client's MCP config. Add an env block to relocate data:

{ "command": "npx", "args": ["-y", "@ravi-labs/mindmap-mcp-server"],
  "env": { "MINDMAP_DIR": "/path/to/my/memory" } }

From source (development)

git clone https://github.com/ravi-labs/mindmap-mcp-server.git && cd mindmap-mcp-server
npm install && npm run build
node dist/index.js install --local   # points clients at this checkout

Using it day to day

Just talk naturally inside your AI tool β€” the model calls the right tool:

  • "Save this to mind map" β†’ captures the current context

  • "Resume my work on <topic>" β†’ pulls it back into a fresh session

  • "What's in my mind map?" / "Show my mind map health" β†’ browse / score

  • "What do you know about how I work?" β†’ reads your persona (see below)

  • "Brainstorm <topic> with me" β†’ loads your prior thinking so ideas continue across tools

  • "Add this to my Goals" / "park this for later" β†’ files it into a collection

  • "What apps did I start and never finish?" β†’ auto-organizes your memory into collections

  • "Continue one of my unfinished projects" β†’ pick one, and you're back in the right folder at the exact next step

Run npx @ravi-labs/mindmap-mcp-server quickstart for the full getting-started guide.

Brainstorm across tools

Start an idea in Claude, keep going in Cursor β€” without re-explaining it. Mind Map is the shared memory; each tool brings its own brainstorming muscle. mindmap_brainstorm loads your persona and prior idea-threads on the topic, you brainstorm, and saving with kind: "brainstorm" lets it resume anywhere. A bundled brainstorm Skill (installed into ~/.claude/skills by install) wires the load β†’ brainstorm β†’ save flow for Claude.

Organize it your way β€” Collections

Mind Map always organizes automatically (recency tiers, source, topic, workspace). Collections are your own layer on top: named groups like 🎯 Goals, πŸ…ΏοΈ Parking Lot, βœ… Decisions β€” or anything you invent. Say "add this to my Goals" or "park this" in any tool, or use the dashboard's Organize tab.

Two things make collections more than folders:

  • Filing protects from decay. A memory in a pinned collection won't be forgotten while it's filed β€” parking something is a signal it matters. (An explicit "forget this" still wins.)

  • Every collection is a launcher. "Continue one of my unfinished projects" lists them β€” each with its πŸ“‚ workspace and ↳ where you left off β€” pick one and mindmap_resume drops you back in: full topic context, right folder, exact next step.

Don't want to file things by hand? Auto-organize reads across all your sessions and proposes collections β€” it always looks for unfinished projects (started building, went cold, never shipped), Goals, Decisions, and parked ideas, plus anything you ask for ("everything about billing"). It only suggests; nothing is filed until you accept. Uses your own LLM if configured, otherwise a no-key heuristic.

Make capture automatic

For Claude Code, install adds a SessionEnd auto-capture hook β€” every substantive session is distilled into a memory automatically, so you never have to remember to save. It's deduped (resuming + re-ending updates in place) and skips trivial/automated sessions. Opt out with install --no-hook; it's removed cleanly by uninstall.

For other clients (or as a belt-and-braces nudge), add one line to your client's instructions (e.g. Claude Code's CLAUDE.md):

At the end of a substantive session, call mindmap_capture to save the context. When I reference past work, call mindmap_resume first.

The tools are also described to encourage the model to do this proactively.

Bring in your past sessions

Import your existing Claude history into Mind Map β€” distilled, not raw dumps:

npx @ravi-labs/mindmap-mcp-server import --dry-run   # preview
npx @ravi-labs/mindmap-mcp-server import             # apply

Covers Claude Code (CLI β€” full prompts), Cowork (title + opening message), VS Code Copilot (full prompts), and Cursor (chat titles + prompts); each memory is tagged by source. Filters: --source code|cowork|copilot|cursor, --project <name>, --limit N. Imported memories keep their original dates, so old ones settle into cold traces automatically.

Imported memories capture the discussion (your prompts + the assistant's substantive answers), not just titles β€” for the transcript-backed sources (Claude Code, Cursor, Copilot). Re-run with --reimport to refresh existing memories in place after an upgrade.

Notes:

  • Cursor stores chats in a (often multi-GB) SQLite DB, read via Node's built-in SQLite β€” so Cursor import needs Node 22.5+ (other sources don't).

  • ChatGPT and Claude.ai web chats can't be imported β€” they live in the cloud, not local files. (A future "import from data-export file" is planned.)

Tidy up

npx @ravi-labs/mindmap-mcp-server cleanup --dry-run   # preview
npx @ravi-labs/mindmap-mcp-server cleanup             # apply

Removes automated/scheduled-task memories and collapses duplicate sessions. Anything you've promoted is always kept.

Persona β€” a profile every tool can read

Beyond individual discussions, Mind Map keeps a persona: a distilled, evolving profile of how you work β€” your stack, style, communication preferences, and constraints β€” so any tool can apply it and stop re-asking the same setup questions. It's separate from your discussion memories.

  • Declared facts: tell a tool "I prefer concise, code-first answers" and it calls mindmap_persona_set. High confidence, yours, editable.

  • Inferred facts: mindmap_persona_learn derives recurring signals from your existing memories. No LLM needed (keyword heuristic); richer if you enable one.

  • Tools call mindmap_persona at the start of a session and apply what's there.

Add this to your client's instructions so it happens automatically:

At the start of a session call mindmap_persona and apply it. When I state a durable preference, call mindmap_persona_set.

Own your context

A memory you can't extract, inspect, or carry isn't a memory you own. Three features make Mind Map's memory genuinely yours:

Memory Passport β€” export everything to one portable, open file, and pull your context out of the walled gardens:

npx @ravi-labs/mindmap-mcp-server passport export                 # β†’ ~/mindmap-passport-<date>.json
npx @ravi-labs/mindmap-mcp-server passport import <file>          # from another machine
npx @ravi-labs/mindmap-mcp-server passport import-chatgpt conversations.json   # your ChatGPT export
npx @ravi-labs/mindmap-mcp-server passport import-claude  conversations.json   # your Claude.ai export

The cloud chats can't be reached live from a local server β€” but their data export files are yours, and this imports them as distilled memories.

Glass-box memory β€” see exactly what's stored and why:

npx @ravi-labs/mindmap-mcp-server audit

Every memory shows its provenance (where it came from), trust (how many times you reused it), and decay forecast (when it fades to a one-line trace). In the dashboard, each memory has a one-click Forget. Unlike opaque vector stores, nothing about your memory is hidden from you.

Persona projection β€” write your persona into each tool's own config, so even non-MCP tools know how you work:

npx @ravi-labs/mindmap-mcp-server persona-sync          # Claude, Cursor, Copilot, Windsurf

It edits only a managed block (<!-- mindmap:persona:start -->…:end), so your own content is never touched.

Optional: bring your own LLM key

Mind Map runs fully without any LLM β€” every feature has a no-LLM path. If you want smarter persona inference and topic-graph labels, plug in your own provider (anthropic, openai, google, or local ollama). It's opt-in and graceful: no key, or a failed call, simply falls back to the no-LLM path, and any cost notes are rough estimates β€” never a bill.

Mind Map never stores your API key. It saves only the provider + model name in ~/.mindmap/llm.json; the key is read from an environment variable at call time. You set the key; Mind Map just reads it.

Smarter search (optional). Search is BM25 out of the box β€” no LLM needed. With an embeddings-capable provider (OpenAI, Google, or Ollama β€” Anthropic has no embeddings API), build a local embedding cache for hybrid search (BM25 fused with semantic similarity via reciprocal rank fusion):

npx @ravi-labs/mindmap-mcp-server embed   # build/refresh the local embedding cache

It re-embeds only new/changed memories, caches vectors in ~/.mindmap/embeddings.json, and resume / search / brainstorm use it automatically. Without it (or on Anthropic), search stays on BM25 β€” never worse.

Step 1 β€” choose a provider

From the dashboard's Persona tab (LLM section), or via the mindmap_llm tool (e.g. "set my mindmap llm provider to anthropic"). This writes {provider, model} to ~/.mindmap/llm.json. Per provider, Mind Map looks for one env var:

Provider

Env var it reads

Default model

anthropic

ANTHROPIC_API_KEY

claude-sonnet-4-6

openai

OPENAI_API_KEY

gpt-4o

google

GOOGLE_API_KEY

gemini-1.5-pro

ollama

(none β€” local)

llama3.1

Step 2 β€” give it the key

The key must be visible to the process that needs it. There are two ways, and which one you need depends on the surface:

A. Shell profile β€” for the dashboard / CLI, and for Claude Code (its MCP servers inherit your shell environment):

# ~/.zshrc (or ~/.bashrc)
export ANTHROPIC_API_KEY="sk-ant-…"

Then source ~/.zshrc and restart. Run the dashboard from that same shell and it'll pick the key up.

B. The client's MCP config env block β€” for GUI clients (Claude Desktop, Cursor, Windsurf), which launch MCP servers without your shell environment, so the export above won't reach them. Add an env map to Mind Map's entry:

{
  "mcpServers": {
    "mindmap": {
      "command": "npx",
      "args": ["-y", "@ravi-labs/mindmap-mcp-server"],
      "env": { "ANTHROPIC_API_KEY": "sk-ant-…" }
    }
  }
}

Trade-off: method B writes the key into that client's config file in plain text. That's the only way some GUI clients can pass it through β€” but if you'd rather not have a key on disk, prefer method A (or launch the GUI app from a terminal that already has the variable exported, so it inherits it).

There is no key field in the dashboard or tools by design β€” a key typed into a web form would have to be transmitted and stored to be useful, which is exactly the credential-on-disk pattern Mind Map avoids. You set the env var yourself.

For ollama there's no key at all β€” just run ollama serve locally and pick the ollama provider.

Step 3 β€” verify

Call mindmap_llm with no arguments (or open the dashboard Persona tab). When the key is visible it reports ready β€” e.g. "βœ“ ANTHROPIC_API_KEY detected." After setting the env var, restart the server/client so it's picked up.

See your memory β€” the dashboard

npx @ravi-labs/mindmap-mcp-server dashboard   # http://127.0.0.1:7777

A local web UI (loopback-only) with six views:

  • List β€” memories grouped by πŸ”₯/🌀️/❄️ tier, searchable; click one to read its summary, key points, and full discussion (the complete conversation, reconstructed on demand and rendered as Markdown). A πŸ“œ badge + filter mark memories that have a full transcript; a File into… control files it into a collection.

  • Tree β€” 🧠 β†’ source β†’ project β†’ discussion, with linked threads joined.

  • Graph β€” an auto-derived topic map: categories as hubs, sessions connected by relatedness, with category filter chips and live search. An opt-in ✨ LLM labels button relabels the topic clusters using your own LLM.

  • Organize β€” your collections (each item with ↳ where you left off), the ✨ Auto-organize proposer, and a live breakdown of how memory is organized automatically (by tier, source, workspace, topic).

  • Persona β€” view and edit your profile (see above), add preferences, run inference, and configure the optional LLM β€” all from the browser.

  • Activity β€” a live console of every MCP call across your tools (redacted, from ~/.mindmap/calls.jsonl).

A ⟳ Sync button imports new sessions on demand, and a cleanliness score rewards a tidy, trusted memory β€” not a big one.

Tools

Tool

What it does

mindmap_capture

Silently save a context summary (the effortless half of the loop).

mindmap_resume

Find + return the best context for a topic; promotes on reuse. Also a launcher: pass collection to resume out of e.g. "Unfinished projects".

mindmap_resume_options

List distinct candidate topics (with workspace) so the user can pick which to resume.

mindmap_import

On-demand session sync β€” "update mind map with my recent work".

mindmap_organize

File memories into collections β€” "add this to my Goals", "park this".

mindmap_collections

View collections; opening one shows workspace + where-you-left-off per item.

mindmap_curate

Auto-organize: scan everything, propose collections (unfinished projects, goals, decisions, parked). Preview-first.

mindmap_brainstorm

Brainstorm a topic with your memory β€” loads prior idea-threads so ideas continue across tools.

mindmap_search

Read-only search across every tier and tool.

mindmap_list

Browse memories with filters.

mindmap_get

Fetch one memory's full content.

mindmap_transcript

Reconstruct the full original conversation for a memory (Claude Code / Cursor / Copilot).

mindmap_promote

Explicitly bless a memory as trusted (β†’ hot).

mindmap_update

Trim / edit / retag β€” the human curation moment.

mindmap_link

Connect related threads (the lightweight "map").

mindmap_prune

Run the consolidation pass on demand (dry_run to preview).

mindmap_forget

Soft-archive to a trace, or hard delete.

mindmap_health

Gamified cleanliness score (opt-in).

mindmap_tidy

Batch of stalest memories to keep / trim / forget.

mindmap_config

View / change decay windows and toggles.

mindmap_persona

Read your persona β€” apply it at session start to stop re-asking.

mindmap_persona_set

Record a durable preference (stack/style/constraints…).

mindmap_persona_forget

Mute or delete a persona fact.

mindmap_persona_learn

Infer persona facts from your memories (LLM-assisted if configured).

mindmap_persona_sync

Write your persona into your tools' native config files.

mindmap_llm

Configure the optional BYO-key LLM (provider/model; key stays in your env).

mindmap_audit

Glass-box ledger: provenance, trust, and decay forecast for every memory.

mindmap_passport_export

Export all memories + persona to one portable file.

mindmap_passport_import

Import a passport, or a ChatGPT / Claude.ai data export.

How it stores things

~/.mindmap/
β”œβ”€β”€ threads/<id>.json   # one file per memory (human-readable JSON)
β”œβ”€β”€ index.json          # fast list/search index
β”œβ”€β”€ config.json         # tunable thresholds + gamification toggle
β”œβ”€β”€ persona.json        # your evolving profile (declared + inferred facts)
β”œβ”€β”€ collections.json    # your collections (Goals, Parking Lot, …) β€” ids only
β”œβ”€β”€ llm.json            # optional LLM provider + model (never your API key)
β”œβ”€β”€ calls.jsonl         # redacted log of every MCP call (the Activity view)
└── embeddings.json     # optional local embedding cache for semantic search

Plain files you own and can inspect, grep, back up, or sync yourself. Tiers map to the mental model: hot = mem, warm = files, cold = drive (trace).

Secrets are masked before saving. Because memories are plain files β€” and imports can pull in keys pasted into past sessions β€” every memory is scanned for common credential shapes (API keys, tokens, private keys) and they're replaced with [REDACTED:…] before anything is written. Masked memories are flagged (πŸ”’). Best-effort, local, no LLM; toggle with the redactSecrets config.

Tuning decay

// defaults (mindmap_config to change at runtime)
{
  "hotWindowMs":  7 days,    // active memory stays hot this long
  "warmWindowMs": 30 days,   // then warm; past it β†’ cold trace
  "promotedLongevityFactor": 2,  // blessed memories decay 2Γ— slower
  "gamification": true
}

Develop

npm run dev      # watch mode (tsx)
npm run build    # type-check + emit dist/
npm test         # end-to-end smoke tests (stdio + http) in throwaway data dirs

Future

ChatGPT / cloud clients (parked). A cloud client can't reach a local server without exposing it publicly (a tunnel or a host), which breaks the local-first promise. An HTTP transport already ships in the codebase (TRANSPORT=http, with bearer-token auth + origin allow-listing) for anyone who chooses to self-host β€” but it's intentionally not the default path. Revisiting ChatGPT later likely means an opt-in hosted tier with per-user encryption, a deliberate trust decision rather than a default.

Other directions:

  • Auto-capture hooks per client so the "capture" step is invisible.

  • Embedding-based semantic recall (current search is token-overlap).

  • LLM-assisted relatedness edges in the graph (labels already opt-in).

  • OAuth + per-user data isolation (only needed if a hosted tier ever happens).

License

Apache-2.0 β€” see LICENSE and NOTICE.

Available Tools

26 tools
mindmap_auditAudit what's stored (glass-box)A
Read-onlyIdempotent

Show a transparent ledger of everything Mind Map knows β€” each memory's provenance (where it came from), trust (promote-on-reuse count), tier, last use, and when it will fade to a one-line trace. Use when the user asks "what do you know about me?", "what's stored?", or wants to review/clean their memory.

Args: limit (number, optional, default 30). Returns: the ledger rows.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMax rows

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds detail about output contents (provenance, trust, tier, last use, fade) and that it returns ledger rows. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences plus an Args line. Front-loaded with main purpose, no filler. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only audit tool with one parameter and annotations covering safety, the description explains the output sufficiently. Doesn't mention ordering or pagination, but limit parameter covers row control.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only parameter 'limit' with description 'Max rows' is already fully described in schema (100% coverage). Description adds 'default 30' which is also in schema. No extra meaning beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it shows a transparent ledger of all memories with provenance, trust, tier, last use, and fade info. Distinguishes from siblings like mindmap_list (which likely lists without audit details) and mindmap_search (which searches).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly gives use cases: user asks 'what do you know about me?', 'what's stored?', or wants to review/clean memory. Does not explicitly exclude cases where other tools might be better, but the context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_brainstormBrainstorm with memoryA

Start (or continue) a brainstorm on a topic WITH your shared memory. This pulls your prior thinking on the topic β€” past brainstorms first, then related discussions and your persona β€” so an idea you explored in one tool continues seamlessly in another. It does NOT replace your own brainstorming ability: use this to load context, then brainstorm with your full capability (and any brainstorming skill you have), then save the result.

CALL THIS PROACTIVELY when the user wants to brainstorm / ideate / "think through" / "explore options" on something that may have history. Reusing a past brainstorm promotes it (promote-on-reuse).

Flow: 1) call this with the topic β†’ get prior context; 2) brainstorm, building on it; 3) save what's worth keeping with mindmap_capture(kind="brainstorm").

Args:

  • topic (string): what you're brainstorming about Returns: a brainstorm pack β€” persona + prior idea-threads to build on.

ParametersJSON Schema
NameRequiredDescriptionDefault
topicYesBrainstorm topic / question

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations show readOnlyHint=false, destructiveHint=false, and idempotentHint=false. The description adds value by explaining that the tool pulls prior thinking, promotes on reuse, and returns a brainstorm pack. There is no contradiction with annotations. It does not mention potential side effects beyond promotion, but for a brainstorming loader, the transparency is good.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with separate paragraphs for purpose, usage, and flow. It front-loads the core functionality. While slightly verbose, every sentence contributes useful information. It could be trimmed slightly but remains efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with one parameter and no output schema, the description is complete. It explains the return value (brainstorm pack), the workflow (load, brainstorm, save), and the context (shared memory). It also references sibling tools appropriately, making the tool fully understandable in its ecosystem.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter (topic) with full schema description coverage (100%). The description repeats the meaning ('what you're brainstorming about') but adds no new syntax or constraints beyond the schema. Baseline 3 is appropriate as the schema already provides the semantics sufficiently.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool loads prior context for brainstorming on a topic using shared memory. It distinguishes itself by emphasizing that it pulls past brainstorms and related discussions, and it explicitly says when to call it proactively. The purpose is specific and actionable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit guidance on when to use it: when the user wants to brainstorm, ideate, think through, or explore options on something that may have history. It also notes what it does not do (replace brainstorming ability) and gives a follow-up action (capture with mindmap_capture). It even mentions the 'promote-on-reuse' behavior.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_captureCapture contextA

Silently save a portable context summary from the current session so it can be resumed later in any tool. This is the effortless 'capture' half of the loop. New captures start as 'captured' (warm tier); they become trusted 'promoted' memories the first time you resume them.

CALL THIS PROACTIVELY (you don't need to be asked) when: a substantive discussion is wrapping up; the user says they're done / switching tasks / "remember this" / "save this"; a key decision, plan, or conclusion was reached; or the user signals they'll continue later. Write the summary so a future session in a DIFFERENT tool could pick up with full context. Skip trivial one-off exchanges.

Args:

  • title (string): short topic title

  • summary (string): the portable context to inject into a future session (markdown ok)

  • key_points (string[]): scannable discussion points (optional)

  • tags (string[]): topic tags for filtering (optional)

  • source (string): Origin tool, e.g. 'claude-code', 'chatgpt', 'chat', 'cowork', 'claude-desktop'.

  • links (string[]): ids of related threads to connect (optional)

  • kind ('discussion'|'brainstorm'): mark brainstorm sessions so they can be resumed/clustered as ideas (default 'discussion')

  • next_steps (string[]): open work / what to do next β€” capture this so resuming can CONTINUE the thread, not just re-read it (optional but high-value)

Returns: the created thread id and its formatted record.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindNoThread kinddiscussion
tagsNoTopic tags for filtering
linksNoids of related threads to link
titleYesShort topic title
sourceNoOrigin tool, e.g. 'claude-code', 'chatgpt', 'chat', 'cowork', 'claude-desktop'.unknown
summaryYesPortable context summary (markdown ok)
workspaceNoAbsolute project/workspace folder this is about β€” lets resume suggest where to continue
key_pointsNoScannable discussion points
next_stepsNoOpen work / where you left off β€” so resuming can continue

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate write operation (readOnlyHint=false), non-idempotent, non-destructive. The description adds the 'silently save' behavior and the lifecycle: captures start as 'captured' (warm tier) and become 'promoted' memories upon resume. It does not disclose potential limits or side effects, but the added context is valuable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and proactive call instructions, then lists parameters with concise explanations. It is slightly long but every sentence earns its place by adding value. The structure is logical and easy to scan.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 9 parameters and moderate complexity, the description covers purpose, usage guidelines, parameter semantics, and return value (thread id and formatted record). It lacks an explicit output schema but the return description is sufficient. Compared to siblings, it is complete enough for an agent to use correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has 100% parameter description coverage. However, the description adds behavioral context: explains that next_steps enables resuming to 'continue the thread', gives examples for source, and clarifies the kind parameter's clustering effect. This adds meaningful guidance beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'silently save a portable context summary from the current session so it can be resumed later in any tool.' It uses specific verbs ('save', 'capture') and resources ('portable context summary', 'session'). It distinguishes from sibling tools like mindmap_resume and mindmap_search by framing it as the 'capture half of the loop.'

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit proactive guidance on when to call this tool: when a substantive discussion is wrapping up, the user signals they're done or says 'save this', a key decision is reached, or the user will continue later. It also advises to skip trivial exchanges. This clearly differentiates usage from siblings and sets context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_configView / change settingsA
Idempotent

View or change Mind Map settings: decay windows, the promoted longevity factor, and the gamification toggle. Omit all args to just view current settings.

Args (all optional): hot_window_days, warm_window_days, promoted_longevity_factor, gamification. Returns: the effective config.

ParametersJSON Schema
NameRequiredDescriptionDefault
gamificationNoEnable health/tidy surface
hot_window_daysNoDays a thread stays hot
warm_window_daysNoDays before warm→cold
promoted_longevity_factorNoHow much slower promoted memories decay

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotation contradiction (idempotentHint aligns with settings update). Adds context that omitting args returns current settings and describes the return as 'effective config,' which is beyond the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences: first front-loads purpose, second gives usage tip, third lists args and return. No wasted words; every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 4 optional parameters, no required, no output schema, the description covers what the tool does, how to use it (view vs change), what each parameter affects, and what is returned ('effective config'). Sufficient for correct usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema coverage, the schema provides basic parameter descriptions. The description adds semantic grouping ('decay windows,' 'promoted longevity factor') and clarifies the purpose of each parameter, adding meaning beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states 'View or change Mind Map settings' with specific settings listed, clearly distinguishing it from sibling tools like mindmap_audit or mindmap_get. The verb-resource pair is specific and unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says 'Omit all args to just view current settings,' providing clear context for when to use view vs change. While it doesn't mention when not to use or alternatives, the context is clear enough for correct invocation.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_forgetForget a memoryA
DestructiveIdempotent

Forget a memory. By default this is a soft forget: status→archived, kept only as a searchable one-line trace (recall never hard-fails). Set hard=true to permanently delete the file.

Args: id (string), hard (boolean, default false). Returns: confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThread id
hardNoPermanently delete instead of archive

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds detail beyond annotations: soft forget keeps a searchable trace, recall never hard-fails. This is valuable context for the agent beyond the destructiveHint and idempotentHint tags.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four clear sentences, front-loaded with purpose, efficient no-waste phrasing.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all needed details: purpose, parameter behavior, return type (confirmation). No missing information for this simple tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema already covers both parameters (100% coverage). Description restates them but adds behavioral context (soft vs hard), which enhances understanding beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool forgets a memory, distinguishes soft (archive) vs hard (delete) modes. Differentiates from sibling mindmap_persona_forget which targets persona memories.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explains when to use soft vs hard (default soft, hard for permanent deletion). Could mention not to use for persona memories, but siblings provide context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_getGet a memoryA
Read-onlyIdempotent

Fetch the full content of one memory by id. Read-only (does not change freshness).

Args: id (string). Returns: the full thread.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThread id

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already provide readOnlyHint, destructiveHint, and idempotentHint. The description adds 'does not change freshness' beyond annotations, clarifying a behavioral nuance. It also confirms read-only nature. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: one for purpose and one for args/returns. No filler, front-loaded with the key action. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple fetch-by-ID tool with one parameter and no output schema, the description is complete. It explains what to pass and what to expect in return. No missing critical information for straightforward usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. The description restates the parameter 'id (string)' and adds 'Returns: the full thread', which adds a little value but does not significantly expand on the schema's 'Thread id' description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states 'Fetch the full content of one memory by id', which is a specific verb and resource. The title 'Get a memory' aligns. The description distinguishes it from siblings like mindmap_list, mindmap_search, and mindmap_update by focusing on fetching a single memory by ID.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions 'Read-only (does not change freshness)' implying safe use, but does not explicitly state when to use this tool over siblings like mindmap_list (for listing all) or mindmap_search (for searching). No exclusions or specific context are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_healthMemory healthA
Read-onlyIdempotent

The opt-in gamified curation surface. Reports a cleanliness score β€” the share of memory that is still live (hot+warm) vs stale β€” which rewards pruning, not hoarding. Also lists stale candidates worth a tidy pass.

Args: none. Returns: health report.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds context about the tool being opt-in, gamified, and rewarding pruning over hoarding, which goes beyond the annotations. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise, with two sentences plus a short line about arguments and return value. Every sentence adds value, and the main purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read-only tool with no output schema, the description provides sufficient context: what is reported (cleanliness score, stale candidates), the gamified nature, and the return structure. No additional information is needed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters (0), and schema description coverage is 100% (vacuously). The description explicitly states 'Args: none', fulfilling the baseline expectation for zero-parameter tools.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states that the tool reports a cleanliness score and lists stale candidates. It uses specific verbs ('reports', 'lists') and identifies the resource (memory health). The gamified curation surface aspect distinguishes it from sibling tools like mindmap_prune or mindmap_tidy.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies that the tool should be used to check memory health and find candidates for pruning, but it does not explicitly state when to use it versus alternatives like mindmap_audit, mindmap_prune, or mindmap_tidy. No explicit when-not or exclusions are provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_importImport / sync sessionsA

Scan your local AI-tool history and import any NEW sessions into Mind Map β€” across Claude Code, Cursor, Copilot, and Cowork. Use this when the user says things like "import my sessions", "sync mind map", "update mind map with my latest work", "pull in my recent sessions", or "refresh my memory". (Mind Map also auto-imports periodically if enabled, but this does it on demand, now.)

Args:

  • source ('all'|'code'|'cursor'|'copilot'|'cowork'): limit to one source (default all)

  • reimport (boolean): also refresh already-imported sessions in place (default false) Returns: how many sessions were imported / refreshed / skipped.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceNoWhich source(s) to importall
reimportNoRefresh already-imported sessions too

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations indicate readOnlyHint=false, idempotentHint=false, destructiveHint=false, so the description adds value by detailing that it imports new sessions, optionally refreshes existing ones, and returns counts of imported/refreshed/skipped. It does not contradict annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with a purpose paragraph followed by parameter and return details. It is front-loaded and each sentence adds value, though slightly verbose with the enumeration of trigger phrases. Still concise overall.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 2 simple parameters and full schema coverage, the description explains the return value (counts) and provides context about auto-import. It is sufficiently complete for effective use, though no output schema exists to describe detailed response structure.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions for both parameters. The description adds meaning beyond the schema by explaining defaults ('default all', 'default false'), behavior ('limit to one source', 'refresh in place'), and the return value. This exceeds the baseline of 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool scans local AI-tool history and imports new sessions into Mind Map, specifying the verb 'import', resource 'sessions', and scope across multiple sources. It distinguishes from siblings like mindmap_list or mindmap_search, which serve different purposes.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides explicit example phrases triggering use ('import my sessions', 'sync mind map') and contrasts with periodic auto-import as an alternative. However, it lacks explicit guidance on when not to use it or direct comparison with other siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_listList memoriesA
Read-onlyIdempotent

List saved memories with optional filters, newest-used first. Read-only.

Args: source/tag/tier filters, include_archived (default false), limit (default 20). Returns: list of memories.

ParametersJSON Schema
NameRequiredDescriptionDefault
tagNoFilter by tag
tierNoFilter by tier
limitNoMax results
sourceNoFilter by origin tool
include_archivedNoInclude archived traces

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate readOnlyHint=true and destructiveHint=false. The description adds 'newest-used first' and 'Read-only', providing additional behavioral context without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences efficiently convey purpose, characteristics, and parameters. No extraneous details, and key information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the rich annotations and full schema, the description is adequate for a simple list tool. It mentions return type, though lacks detail on memory structure; however, that is acceptable without an output schema.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions already provided. The description merely lists the filter names and defaults, adding no new meaning beyond what the schema already conveys.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the action (list), resource (saved memories), and key characteristics (newest-used first, read-only), which effectively distinguishes it from sibling tools like mindmap_search or mindmap_get.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description mentions optional filters but does not provide explicit guidance on when to use this tool versus alternatives like mindmap_search for more complex queries. The usage context is implied but not directly stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_llmConfigure optional LLM (BYO key)A
Idempotent

Mind Map runs fully WITHOUT an LLM. This is opt-in: plug in your OWN provider to unlock smarter features (LLM-assisted persona inference, richer summaries).

Security: Mind Map stores only the provider + model name. It NEVER stores your API key β€” the key is read from your environment (ANTHROPIC_API_KEY / OPENAI_API_KEY / GOOGLE_API_KEY; ollama needs none). Set the env var yourself.

Args (all optional β€” omit all to just see status):

  • provider: none | anthropic | openai | google | ollama

  • model: override the default model

  • baseUrl: for ollama / self-hosted (default http://localhost:11434) Returns: current provider/model, whether it's ready, and a rough cost note.

ParametersJSON Schema
NameRequiredDescriptionDefault
modelNoModel name override
baseUrlNoBase URL for ollama / self-hosted
providerNoLLM provider, or 'none' to disable

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations give idempotentHint true; description adds critical behavioral details: never stores API key, reads from env, stores only provider/model name, and returns status/ready/cost. This goes well beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is well-structured with clear sections (purpose, security, args, returns). It is slightly longer but every sentence adds value. Could be more concise, but overall effective.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 optional parameters and no output schema, the description covers everything: operation, security, arg details, return values (provider/model, ready status, cost note). It feels complete for a configuration tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with enum for provider. Description adds meaning: all args optional, 'omit all to see status', default baseUrl, and enumeration examples. This adds value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool configures an optional LLM with BYO key, and distinguishes it by being opt-in for smarter features. The verb 'configure' and resource 'LLM' are specific, and it stands out among sibling mindmap tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use (to unlock smarter features) and that omitting all args returns status. It mentions security but does not explicitly state when not to use or list alternatives, though the context is sufficient.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_passport_exportExport memory passportA
Read-only

Export all memories + persona to a single portable JSON file you own β€” to back up, move to another machine, or hand to a fork. This is your context, extractable.

Args: path (string, optional) β€” output file (default ~/mindmap-passport-.json). Returns: the file path and counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNoOutput file path

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and destructiveHint=false, so the description adds minimal behavioral context beyond stating the resource is owned by the user. No contradictions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences with no redundant words: first states purpose, second explains args and return value. Well-structured.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single optional parameter tool with no output schema, the description fully covers input (default path) and output (file path and counts). Complete for intended use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema describes parameter 'path' with basic description; the description adds the default filename pattern (~/mindmap-passport-<date>.json), providing value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb 'Export', resource 'all memories + persona', and output format 'JSON'. Distinguishes from sibling 'mindmap_passport_import' by specifying export direction.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly mentions use cases: 'to back up, move to another machine, or hand to a fork'. Implicitly suggests when not to use (when needing import), but does not explicitly state alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_passport_importImport memory passport / data exportA

Bring context IN. Either a Mind Map passport file (from another machine), or pull your conversations OUT of a walled garden by pointing at its exported data file:

  • kind 'passport' (default): a Mind Map passport JSON

  • kind 'chatgpt': ChatGPT's exported conversations.json

  • kind 'claude': Claude.ai's exported conversations.json The cloud chats themselves can't be reached live, but their EXPORT FILES are yours β€” this imports them as distilled memories.

Args: file (string, required), kind ('passport'|'chatgpt'|'claude', default 'passport'). Returns: import counts.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYesPath to the file to import
kindNoFile kindpassport

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate non-read-only, non-destructive, non-idempotent. Description adds that it imports as 'distilled memories' and returns import counts. Could elaborate on side effects (e.g., duplicate handling) but sufficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with 'Bring context IN.' Uses bullet points for kinds, making it scannable. Five sentences is appropriate; no redundant information. Slightly verbose in middle lines but still clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given full schema coverage and no output schema, description mentions return of import counts. Covers all param semantics and tool purpose. Lacks error handling details but overall adequate for a simple import tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers both parameters with basic descriptions. Description enriches by showing default value for kind, listing enum options with explanations, and clarifying file is required. Adds meaningful context beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it imports data from files using 'Bring context IN' and explains three kinds (passport, chatgpt, claude). Distinguishes from sibling mindmap_passport_export which does the reverse. Specific verb+resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Description provides clear context: use when you have a passport file from another machine or exported chat files. No explicit when-not or alternatives, but the purpose is well-defined and siblings are listed separately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_personaGet user personaA
Read-onlyIdempotent

Return the user's persona β€” a distilled profile of how they work (stack, style, communication, constraints), so you can make aligned defaults and AVOID re-asking things they've already established.

CALL THIS PROACTIVELY at the start of a session before asking the user setup-style questions (their stack, preferences, conventions). Apply high-confidence facts silently; only ask when something needed isn't covered.

Args:

  • project (string, optional): include preferences scoped to this project on top of global ones. Returns: an "About this user" block + fact count.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectNoCurrent project name for scoped prefs

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint, idempotentHint. Description adds practical behavior: apply high-confidence facts silently, ask only for gaps. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Well-structured with front-loaded purpose, then usage guidance, parameter, and return value. Every sentence adds value without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema, description explains return as 'About this user' block + fact count, which is adequate. Could be more specific about format, but sufficient for agent understanding.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema covers the single optional 'project' parameter. Description adds context that it scopes preferences on top of global ones, adding value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns a 'distilled profile of how they work'. It distinguishes from sibling tools like mindmap_persona_set and mindmap_persona_forget by focusing on retrieval rather than modification.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly advises calling proactively at session start to avoid re-asking setup questions. Provides clear when-to-use and when-not-to-ask guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_persona_forgetForget a preferenceA
DestructiveIdempotent

Remove or mute a persona fact (e.g. it's wrong or out of date). Get ids from mindmap_persona. Default mutes (recoverable); hard=true deletes.

Args: id (string), hard (boolean, default false). Returns: confirmation.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesPersona fact id
hardNoPermanently delete instead of mute

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already mark destructive and idempotent. The description adds that default mutes are recoverable, and hard=true deletes, plus returns confirmation. This goes beyond annotations without contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences plus a parameter list, no unnecessary words, front-loaded with key information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Covers all essential aspects for a simple tool: action, parameter effects, source of IDs, and return type. No output schema needed, but mention of confirmation is sufficient.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%; the description restates parameters and links 'hard' to behavioral effect (delete vs mute), adding value beyond schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool removes or mutes a persona fact, with specific examples (wrong or out of date). It distinguishes from siblings by referencing 'persona fact' and directing to mindmap_persona for IDs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use (for outdated/incorrect facts) and implies origin of IDs, but does not explicitly mention when not to use or alternatives like mindmap_forget for non-persona facts.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_persona_learnInfer persona from memoryA

Derive persona facts from your existing memories. If you've configured an LLM (mindmap_llm), it extracts richer facts β€” style, constraints, workflow; otherwise it runs a no-LLM keyword heuristic over your stack/tools. Either way, inferred facts get lower confidence than declared ones and never override what you've explicitly set.

Args: none. Returns: how many facts were added/updated and which path ran.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false), the description discloses that inferred facts have lower confidence, never override explicit facts, and details two execution paths based on LLM configuration.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with two sentences. The first sentence states the core action and differentiation; the second explains the two modes and confidence behavior. No extraneous information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simple tool (zero parameters, no output schema), the description covers all necessary aspects: purpose, execution modes, confidence behavior, and return value. It is complete for the agent to understand usage.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are no parameters, so schema coverage is 100%. The description appropriately adds no parameter details, but it does describe the return value and execution paths, providing value beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: to derive persona facts from existing memories. It distinguishes from sibling tools like mindmap_persona_set by noting that inferred facts have lower confidence and do not override explicit settings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains when to use the tool (to infer persona facts) and outlines two execution paths (LLM-rich vs keyword heuristic). It could be more explicit about when not to use or suggest alternatives, but the differentiation from explicit setting is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_persona_setRecord a user preferenceA

Save a durable preference about how the user works, so future sessions don't re-ask. Use this when the user states a lasting preference β€” "I prefer X", "always Y", "never Z", "I'm on macOS", "we use Postgres". (For saving a discussion, use mindmap_capture instead β€” this is for standing preferences.)

Args:

  • text (string): the preference, e.g. "Prefers concise, code-first answers"

  • category: identity | stack | style | communication | constraints | workflow | goals

  • polarity ('prefer'|'avoid'|'fact'): default 'prefer'

  • project (string, optional): scope to one project instead of global Returns: the saved fact.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe preference statement
projectNoScope to a project (default: global)
categoryYesWhich dimension this preference is about
polarityNoprefer / avoid / factprefer

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations are present and not contradicted. Description adds durability context ('future sessions don't re-ask') but doesn't specify overwrite or duplicate behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose, then usage guidelines, then argument list. Each sentence is informative and concise.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite no output schema, description explains returns. All necessary information for agent invocation is present.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with descriptions. The Args section in description mostly mirrors schema, adding minimal extra value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states it saves durable preferences, distinguishes from sibling mindmap_capture, and provides concrete examples of when to use it.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit usage context: 'when the user states a lasting preference' and alternative tool for saving discussions. Provides clear when-to-use and when-not-to-use.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_persona_syncWrite persona into your toolsA
Idempotent

Project the user's persona into the native instruction files of their AI tools (Claude CLAUDE.md, Cursor rules, Copilot instructions, Windsurf rules), so even non-MCP tools know how they work β€” from one source. Writes only inside a managed block; never clobbers the user's own content. By default writes the global Claude config + any detected project tools.

Args:

  • targets (string[], optional): specific target ids (claude-global, claude-project, cursor, copilot, windsurf)

  • force (boolean, optional): write even if a tool isn't detected Returns: per-target outcomes.

ParametersJSON Schema
NameRequiredDescriptionDefault
forceNoWrite even if tool not detected
targetsNoTarget ids to write

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (destructiveHint=false, idempotentHint=true) are supplemented by the description stating 'Writes only inside a managed block; never clobbers the user's own content.' This adds critical safety context beyond the structured data.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two brief paragraphs: the first states purpose and a key safety feature, the second lists parameters and return. No wasted words, information is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with no output schema, the description mentions 'Returns: per-target outcomes,' which is adequate. It covers target selection, safety, and default behavior. Missing explicit usage guidance versus siblings, but overall complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds value by explaining default behavior for targets and the effect of force. It does not rely on the schema alone and provides meaningful context.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it writes the user's persona into native instruction files of AI tools, specifying the key resources (CLAUDE.md, Cursor rules, etc.) and the action. It distinguishes itself from sibling tools like mindmap_persona which manage persona internally.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explains default behavior (global Claude config + detected project tools) and optional parameters. However, it does not explicitly state when to use this vs. alternatives like mindmap_persona_set, leaving some ambiguity about context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_promotePromote a memoryA
Idempotent

Explicitly bless a memory as trusted: marks it 'promoted' and moves it to the hot tier so it ranks first and decays slower. Use when you know a memory matters even if you haven't resumed it yet.

Args: id (string). Returns: the updated thread.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThread id

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes behavioral traits beyond annotations: promotion moves to hot tier, affects ranking and decay. Annotations already indicate mutability and idempotence, but description adds meaningful context. No contradiction.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences plus args/returns line. Front-loaded with key action and effects. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given single parameter, no output schema, and simple behavior, description fully covers purpose, usage, behavior, and return value. Agent can select and invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with a single parameter 'id' described as 'Thread id'. Description adds 'Args: id (string)' and return type, but no additional semantics beyond schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states verb (bless/promote), resource (memory), and specific effects: marks as promoted, moves to hot tier, impacts ranking and decay. Distinguishes from sibling 'resume' by noting use case even when not resumed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly says when to use: when memory matters even if not resumed yet. No explicit when-not-to-use, but context makes it clear; alternatives are implied by the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_prunePrune / consolidate memoryA
Idempotent

Run the consolidation pass that the background thread runs automatically: recompute every memory's tier by age + usage, cooling unused ones and collapsing cold ones to a one-line trace (still searchable, never deleted). Nothing is destroyed.

Args: dry_run (boolean, default false) β€” preview changes without writing. Returns: what moved between tiers.

ParametersJSON Schema
NameRequiredDescriptionDefault
dry_runNoPreview without writing changes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Adds significant behavioral detail beyond annotations: explains that unused memories are cooled and cold ones collapsed to a trace (still searchable, never deleted). Annotations already indicate non-destructive and idempotent nature, and the description reinforces and elaborates on these traits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise paragraphs: first explains the process in detail, second describes arguments and return value. No unnecessary words. Highly efficient.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's single parameter (fully documented), no output schema needed (description mentions return type), and the clear explanation of the consolidation process, the description is complete for an agent to understand usage and behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The single parameter dry_run is fully described in the schema (100% coverage). The description repeats the same info verbatim, adding no additional semantics. Baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the action (run consolidation pass), the resource (memory tiers), and the specific operations (recompute, cool, collapse). Distinguishes itself from siblings like mindmap_forget by emphasizing that nothing is destroyed.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implies usage as a manual trigger for the automatic consolidation background thread, but does not explicitly state when to use this tool versus alternatives like mindmap_forget or mindmap_tidy. Lacks direct guidance on selection criteria.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_resumeResume contextA

Restart a topic by describing it in plain words β€” "pick up the promotion-roadmap discussion", "continue the buyer-service refactor". Resolves your description to the best match, then reassembles the WHOLE topic: the anchor memory plus its linked + closely-related fragments (a topic is usually spread across several sessions/tools), merged into one thread to continue from. Promotes the anchor on reuse. If captured, surfaces "where you left off" (next steps) so you can keep going, not just re-read.

CALL THIS PROACTIVELY at the START of a session when the user references prior work β€” "let's continue", "restart the X discussion", "the X project", or any topic that may have history.

Args:

  • query (string): topic / what you want to restart, in natural language

  • id (string): resume a SPECIFIC memory by id β€” use after the user picks from mindmap_resume_options

  • source (string): only resume memories from this origin tool (optional) (Provide query OR id.)

Returns: a merged topic thread (anchor + related fragments) + where you left off + which workspace to continue in, or near-misses.

ParametersJSON Schema
NameRequiredDescriptionDefault
idNoResume this specific memory id (e.g. a picked choice)
queryNoTopic / what you want to restart (natural language)
sourceNoRestrict to this origin tool

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Describes behavioral traits beyond annotations: resolving description to best match, reassembling whole topic, merging fragments, promoting anchor on reuse, and surfacing next steps. Annotations are minimal; the description provides essential context about state modification.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two well-structured paragraphs: first explains the core functionality, second gives proactive usage guidance. Every sentence serves a purpose without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given 3 parameters, no output schema, and modest complexity, the description fully covers what the tool does, how to use it, what it returns, and when to call it. No gaps.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, providing descriptions for all parameters. The description adds value by explaining the relationship between parameters ('Provide query OR id') and the natural language usage for query.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb+resource combination: 'Restart a topic... resolves... reassembles...'. It clearly distinguishes from sibling tools like mindmap_resume_options and mindmap_get by explaining the merging and promotion behavior.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly states 'CALL THIS PROACTIVELY at the START of a session' and provides examples of user cues. It also explains when to use the id parameter (after user picks from mindmap_resume_options), giving clear context and alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_resume_optionsList topics to resume (let the user pick)A
Read-onlyIdempotent

When the user's description is ambiguous or could match SEVERAL different topics, list the distinct candidate topics β€” each with the workspace it lived in β€” so you can ASK the user which one to resume instead of guessing. Read-only: promotes nothing. After the user picks, call mindmap_resume with that choice's id.

Args:

  • query (string): the user's natural-language description

  • source (string): restrict to one origin tool (optional) Returns: up to 5 distinct candidate topics (id, title, workspace, source, last used).

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesWhat the user wants to resume
sourceNoRestrict to this origin tool

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. The description adds that it is read-only and promotes nothing, which is consistent. It also describes the return format (up to 5 candidates with fields), adding context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured: a purpose sentence, usage note, then bulleted args. It is concise without filler, though slightly longer than necessary.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's low complexity (2 params, no output schema), the description covers purpose, usage, parameters, and return format. It also links to the sibling tool mindmap_resume, providing a complete context for agent decision-making.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%. The description rephrases parameter descriptions: 'query' as natural-language input and 'source' as optional origin restriction. This adds interpretative value over the schema-only descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists distinct candidate topics for resumption when the user's description is ambiguous. It uses specific verbs ('list', 'ask') and resources ('topics'), and distinguishes from sibling tools like mindmap_resume and mindmap_list.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use the tool: when the user's description is ambiguous or matches several topics. It provides a follow-up action to call mindmap_resume after user picks. No explicit exclusions, but clear guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_tidyTidy passA
Read-onlyIdempotent

Return a small batch of the stalest memories for a quick keep / trim / forget review β€” the opt-in curation game. Read-only: it only suggests. Act on items with mindmap_promote (keep), mindmap_update (trim), or mindmap_forget.

Args: limit (number, default 5). Returns: stalest cold memories.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many to review

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate read-only and non-destructive; the description adds that it 'only suggests' and returns 'stalest cold memories', providing behavioral context beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is extremely concise: two sentences plus a param/return line, no filler, and the most important purpose is front-loaded.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple read-only list tool with one optional parameter, the description covers purpose, usage, parameter, and results adequately. It could specify the return format more precisely, but it is sufficient given the context and sibling tool references.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description simply restates the parameter 'limit' with its default, which is already present in the input schema. No additional meaning is added beyond the schema's description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states it returns a batch of stalest memories for review, and explicitly contrasts with sibling tools by indicating it is read-only and only suggests actions, which distinguishes it from mindmap_promote, mindmap_update, and mindmap_forget.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explains that this tool is for the 'opt-in curation game' and instructs the agent to use mindmap_promote, mindmap_update, or mindmap_forget to act on items, providing clear when-to-use and what-to-do-next guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_transcriptFull discussionA
Read-onlyIdempotent

Reconstruct and return the FULL original conversation for a memory (every user + assistant turn), read live from its source transcript. The summary is the distilled gist; this is the complete discussion when you need the detail.

Only available for transcript-backed sources (Claude Code, Cursor, Copilot). Cowork / Claude desktop-app sessions saved no transcript, so this returns a notice instead.

Args: id (string). Returns: the full discussion as turns, or why it's unavailable.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThread id

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, destructiveHint, and idempotentHint as true/false, so the tool is safe. The description adds context beyond annotations: it clarifies that the data is read 'live from its source transcript' and that the tool returns a notice when unavailable. No contradictions with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise with three well-structured sentences. It front-loads the main purpose, then provides usage constraints, and finally specifies arguments and returns. Every sentence adds value without redundancy, making it efficient for an AI agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (single parameter, no output schema, annotations present), the description covers purpose, usage, limitations, and return behavior sufficiently. The only gap is that the format of 'turns' is not elaborated, but it's acceptable for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with one parameter 'id' described as 'Thread id'. The description adds meaning by explaining that the return is 'the full discussion as turns, or why it's unavailable', providing clarity on what to expect from the output, which the schema does not cover.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses specific verbs ('Reconstruct and return') and clearly identifies the resource ('FULL original conversation for a memory'). It distinguishes itself from the summary by stating the summary is the distilled gist while this provides complete discussion, and it mentions the source limitation, which aids differentiation from sibling tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use this tool ('when you need the detail') and when not to use it ('Only available for transcript-backed sources...'). It explains the limitation for non-transcript sources. However, it does not mention an alternative tool for those cases, so it lacks full guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mindmap_updateUpdate / trim a memoryA

Edit a memory β€” the human curation moment. Trim a stale summary, refine key points, retitle, or retag. Any omitted field is left unchanged. Set append=true to append to summary/key_points instead of replacing.

Args: id, title?, summary?, key_points?, tags?, append (default false). Returns: the updated thread.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesThread id
tagsNoReplace tags
titleNoNew title
appendNoAppend instead of replace
summaryNoNew (or appended) summary
key_pointsNoNew (or appended) key points

TDQS

A4.4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations provide no safety flags (readOnlyHint=false, destructiveHint=false). The description adds value by explaining mutation behavior: partial updates and append mode. It does not contradict annotations and is consistent with a write operation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is concise at four sentences, front-loads the purpose, and avoids redundancy. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 6 parameters (1 required) and no output schema, the description covers expected behavior, return value, and append mode. It omits mention of required id but the schema covers that. Overall adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, but the description adds beyond the schema by explaining the effect of omitting fields and the append parameter. The inline argument list also aids clarity.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: 'Edit a memory β€” the human curation moment. Trim a stale summary, refine key points, retitle, or retag.' This is a specific verb-resource combination and differentiates from siblings like mindmap_forget (delete) and mindmap_get (read).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides usage context such as 'Any omitted field is left unchanged' and 'Set append=true to append instead of replacing.' However, it does not explicitly state when not to use this tool or mention alternative siblings for similar tasks.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 4 tool updatesv0.5.0
    • Changedmindmap_capture2 fields changed
      • addedInput schema / properties / next_steps
        Added value: +{
        +  "default": [],
        +  "description": "Open work / where you left off β€” so resuming can continue",
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedInput schema / properties / workspace
        Added value: +{
        +  "description": "Absolute project/workspace folder this is about β€” lets resume suggest where to continue",
        +  "type": "string"
        +}
    • Addedmindmap_import
    • Changedmindmap_resume4 fields changed
      • addedInput schema / properties / id
        Added value: +{
        +  "description": "Resume this specific memory id (e.g. a picked choice)",
        +  "type": "string"
        +}
      • changedInput schema / properties / query / description
        Previous value: -"Topic / keywords to resume"New value: +"Topic / what you want to restart (natural language)"
      • removedInput schema / properties / query / minLength
        Removed value: -1
      • removedInput schema / required
        Removed value: -[
        -  "query"
        -]
    • Addedmindmap_resume_options
  2. 24 tool updatesv0.3.2
    • First observedmindmap_audit
    • First observedmindmap_brainstorm
    • First observedmindmap_capture
    • First observedmindmap_config
    • First observedmindmap_forget
    • First observedmindmap_get
    • First observedmindmap_health
    • First observedmindmap_link
    • First observedmindmap_list
    • First observedmindmap_llm
    • First observedmindmap_passport_export
    • First observedmindmap_passport_import
    • First observedmindmap_persona
    • First observedmindmap_persona_forget
    • First observedmindmap_persona_learn
    • First observedmindmap_persona_set
    • First observedmindmap_persona_sync
    • First observedmindmap_promote
    • First observedmindmap_prune
    • First observedmindmap_resume
    • First observedmindmap_search
    • First observedmindmap_tidy
    • First observedmindmap_transcript
    • First observedmindmap_update

TDQS

A4.4/5.0
Disambiguation5/5

Each tool has a clearly distinct purpose and the descriptions eliminate ambiguity. For example, `mindmap_search` is read-only while `mindmap_resume` promotes and returns full context; `mindmap_health` provides a score while `mindmap_tidy` suggests specific memories for action.

Naming Consistency5/5

All tools follow the consistent pattern `mindmap_` followed by a verb or verb_noun phrase (e.g., `mindmap_capture`, `mindmap_persona_set`). No mixing of conventions like camelCase or inconsistent verb styles.

Tool Count4/5

24 tools is slightly on the high side, but the broad scope of memory management (CRUD, search, persona, import/export, health, etc.) justifies the count. Each tool serves a unique function without redundancy.

Completeness5/5

The tool covers the full lifecycle: create (`capture`), read (`get`, `list`, `search`, `resume`), update (`update`, `link`, `promote`), delete (`forget`), plus persona management, import/export, health, config, and audit. No obvious gaps for the stated domain.

Maintenance

ActivityStale
ResponsivenessUnresponsive

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ravi-labs/mindmap-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server