Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

io.github.ravi-labs/mindmap-mcp-server

NPM · @RAVI-LABS/MINDMAP-MCP-SERVER · SCANNED AUG 6

Local-first memory & context-handoff across AI tools — capture in one, resume in another. No cloud.

+42 this week 68 Trust /100
Trust breakdown (6 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score →

Supply Chain Security87
  • No malware found by supply-chain analysis.Pass
  • Known CVEs were checked across the 94 of 95 dependencies we could resolve, so this covers what we could see, not the whole tree.Partial
  • No install/post-install scripts declared.Pass
  • Dependency health was assessed across the 94 of 95 dependencies we could resolve, so this covers what we could see, not the whole tree. View diagnostics → Partial
Provenance & Transparency45
Schema Quality & AI Usability63
  • AI-judged instruction clarity (good).Pass
  • Context-footprint check failed: tool/resource definitions use about 3829 tokens (~147/item across 26 items; 26 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management33
  • Stability observed for 10 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

Add this component to your MCP client. Where a client-specific snippet is available, pick your client below and copy it straight into your config; otherwise use the connection detail shown.

npm · @ravi-labs/mindmap-mcp-server

# add to Claude Code
claude mcp add ravi-labs-mindmap-mcp-server -- npx -y @ravi-labs/mindmap-mcp-server
# add to Codex CLI
codex mcp add ravi-labs-mindmap-mcp-server -- npx -y @ravi-labs/mindmap-mcp-server
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "ravi-labs-mindmap-mcp-server": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@ravi-labs/mindmap-mcp-server"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add ravi-labs-mindmap-mcp-server --command npx --arg -y --arg @ravi-labs/mindmap-mcp-server
# ~/.hermes/config.yaml
mcp_servers:
  ravi-labs-mindmap-mcp-server:
    command: "npx"
    args: ["-y", "@ravi-labs/mindmap-mcp-server"]
// mcp.json
{
  "mcpServers": {
    "ravi-labs-mindmap-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "@ravi-labs/mindmap-mcp-server"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 6 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 30 to 33. That category is still filling its 30-day observation window: 9 days of observed history at the previous scan, 10 at this one. The score rises as the window fills, whether or not the server changes.

  • 4 Aug 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

  • 2 Aug 26 +61
    • Provenance: unverified → fail security
    • Malware scan: unverified → pass security
    • Install scripts: unverified → pass security
    • Known CVEs: unverified → partial security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • Stability: unverified → 0.20 functional
    • Tool coverage: unverified → 100 functional
    • License: unverified → pass functional
    • MCP protocol: unverified → pass functional
    • Maintenance: unverified → pass functional
    • Dependency health: unverified → partial functional
    • Licence: Apache-2.0 functional
  • 1 Aug 26 −46
    • Known CVEs: partial → unverified security
    • Provenance: fail → unverified security
    • Install scripts: pass → unverified security
    • Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
    • Capabilities: pass → unverified functional
    • License: pass → unverified functional
    • Tool coverage: 100 → unverified functional
    • Dependency health: partial → unverified functional
    • Maintenance: pass → unverified functional
    • Licence: Apache-2.0 functional
  • 31 Jul 26 +25
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 30 Jul 26 +2
    • Malware scan: pass → unverified security
    • Tool coverage: unverified → 100 functional
  • 28 Jul 26 −20
    • Tool coverage: 100 → unverified functional
    • First check of Schema quality: unverified functional
  • 27 Jul 26 44

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 6 Aug 2026 · Analysed npm/@ravi-labs/[email protected]

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem npm
Dependencies 94 packages
Packages resolved 94
Deprecated 94
Stale 29
Tree resolution Partial

The dependency tree was only partially resolved, so these counts may be incomplete.

MCP tools — 26 exposed · ~3,829 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability.

Tool Tokens
mindmap_audit ~109

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.

NameTypeReqDescription
limitintegerMax rows

No output schema declared.

No examples provided.

mindmap_brainstorm ~222

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.

NameTypeReqDescription
topicstringyesBrainstorm topic / question

No output schema declared.

No examples provided.

mindmap_capture ~486

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.

NameTypeReqDescription
key_pointsarrayScannable discussion points
kindstringThread kind
linksarrayids of related threads to link
next_stepsarrayOpen work / where you left off — so resuming can continue
sourcestringOrigin tool, e.g. 'claude-code', 'chatgpt', 'chat', 'cowork', 'claude-desktop'.
summarystringyesPortable context summary (markdown ok)
tagsarrayTopic tags for filtering
titlestringyesShort topic title
workspacestringAbsolute project/workspace folder this is about — lets resume suggest where to continue

No output schema declared.

No examples provided.

mindmap_config ~124

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.

NameTypeReqDescription
gamificationbooleanEnable health/tidy surface
hot_window_daysnumberDays a thread stays hot
promoted_longevity_factornumberHow much slower promoted memories decay
warm_window_daysnumberDays before warm→cold

No output schema declared.

No examples provided.

mindmap_forget ~91

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.

NameTypeReqDescription
hardbooleanPermanently delete instead of archive
idstringyesThread id

No output schema declared.

No examples provided.

mindmap_get ~48

Fetch the full content of one memory by id. Read-only (does not change freshness). Args: id (string). Returns: the full thread.

NameTypeReqDescription
idstringyesThread id

No output schema declared.

No examples provided.

mindmap_health ~65

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.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

mindmap_import ~185

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.

NameTypeReqDescription
reimportbooleanRefresh already-imported sessions too
sourcestringWhich source(s) to import

No output schema declared.

No examples provided.

mindmap_link ~82

Connect two memories so related threads (e.g. planning in Chat + code in Claude Code) cross-reference each other. Bidirectional. This is the lightweight 'map' connective tissue. Args: id (string), target_id (string). Returns: confirmation.

NameTypeReqDescription
idstringyesFirst thread id
target_idstringyesSecond thread id

No output schema declared.

No examples provided.

mindmap_list ~102

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.

NameTypeReqDescription
include_archivedbooleanInclude archived traces
limitintegerMax results
sourcestringFilter by origin tool
tagstringFilter by tag
tierstringFilter by tier

No output schema declared.

No examples provided.

mindmap_llm ~216

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.

NameTypeReqDescription
baseUrlstringBase URL for ollama / self-hosted
modelstringModel name override
providerstringLLM provider, or 'none' to disable

No output schema declared.

No examples provided.

mindmap_passport_export ~90

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-<date>.json). Returns: the file path and counts.

NameTypeReqDescription
pathstringOutput file path

No output schema declared.

No examples provided.

mindmap_passport_import ~164

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.

NameTypeReqDescription
filestringyesPath to the file to import
kindstringFile kind

No output schema declared.

No examples provided.

mindmap_persona ~137

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.

NameTypeReqDescription
projectstringCurrent project name for scoped prefs

No output schema declared.

No examples provided.

mindmap_persona_forget ~88

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.

NameTypeReqDescription
hardbooleanPermanently delete instead of mute
idstringyesPersona fact id

No output schema declared.

No examples provided.

mindmap_persona_learn ~96

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.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

mindmap_persona_set ~212

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.

NameTypeReqDescription
categorystringyesWhich dimension this preference is about
polaritystringprefer / avoid / fact
projectstringScope to a project (default: global)
textstringyesThe preference statement

No output schema declared.

No examples provided.

mindmap_persona_sync ~162

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.

NameTypeReqDescription
forcebooleanWrite even if tool not detected
targetsarrayTarget ids to write

No output schema declared.

No examples provided.

mindmap_promote ~76

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.

NameTypeReqDescription
idstringyesThread id

No output schema declared.

No examples provided.

mindmap_prune ~90

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.

NameTypeReqDescription
dry_runbooleanPreview without writing changes

No output schema declared.

No examples provided.

mindmap_resume ~303

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.

NameTypeReqDescription
idstringResume this specific memory id (e.g. a picked choice)
querystringTopic / what you want to restart (natural language)
sourcestringRestrict to this origin tool

No output schema declared.

No examples provided.

mindmap_resume_options ~149

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).

NameTypeReqDescription
querystringyesWhat the user wants to resume
sourcestringRestrict to this origin tool

No output schema declared.

No examples provided.

mindmap_search ~179

Search across all saved context (every tier, every tool) to relocate a past discussion. Read-only — does not change freshness or tiers (use mindmap_resume to actually pull a memory forward). Args: - query (string): keywords; empty string browses by recency - source/tag/tier: optional filters - include_archived (boolean): include forgotten traces (default false) - limit (number): max results (default 10) Returns: ranked list of matching memories.

NameTypeReqDescription
include_archivedbooleanInclude forgotten traces
limitintegerMax results
querystringKeywords; empty = browse by recency
sourcestringFilter by origin tool
tagstringFilter by tag
tierstringFilter by tier

No output schema declared.

No examples provided.

mindmap_tidy ~94

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.

NameTypeReqDescription
limitintegerHow many to review

No output schema declared.

No examples provided.

mindmap_transcript ~114

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.

NameTypeReqDescription
idstringyesThread id

No output schema declared.

No examples provided.

mindmap_update ~145

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.

NameTypeReqDescription
appendbooleanAppend instead of replace
idstringyesThread id
key_pointsarrayNew (or appended) key points
summarystringNew (or appended) summary
tagsarrayReplace tags
titlestringNew title

No output schema declared.

No examples provided.