An MCP server that captures ideas from AI conversations and organizes them into a persistent, hierarchical mindmap — surviving across sessions.
Why mindkeeper
Ideas captured during a conversation shouldn't vanish when the session ends. mindkeeper-mcp makes them permanent.
Every idea is stored in ~/.mindkeeper/mindmap.json. Restart your AI, reopen the terminal — your mindmap is still there.
Nest ideas under parents to build a tree. Explore any subtree, reorganize by re-parenting, and get the full map in one call.
All data lives on your machine. No cloud sync, no telemetry, no API keys — just a plain JSON file you control.
Weighted scoring across text and tags. Exact matches, substring matches, and per-token hits — ranked by relevance.
Attach tags to any node for cross-cutting categorization. Use #tag or plain names — the hash is stripped automatically. Search by tag or export with tag metadata intact.
Export your entire mindmap as a nested Markdown list — paste into docs, notes, or any text tool instantly.
Serialized write queue and atomic temp→backup→rename strategy ensure the file is never corrupted under parallel tool calls.
Use with Claude Desktop, Claude Code, or any client implementing the Model Context Protocol.
Quick start
Install globally from npm, then register it as an MCP server in your client.
npm install -g mindkeeper-mcp
claude mcp add mindkeeper -- mindkeeper-mcp
// claude_desktop_config.json
{
"mcpServers": {
"mindkeeper": {
"command": "mindkeeper-mcp"
}
}
}
⚠️ Restart Claude Desktop after saving the config — it only reads MCP servers on launch.
# Ask your AI assistant:
"Add 'Ship v2 by Q3' to my mindmap
under the strategy node,
tagged #roadmap #q3"
Prefer local install?
npm install mindkeeper-mcp then use
claude mcp add mindkeeper -- node ./node_modules/.bin/mindkeeper-mcp
MCP Tools
Every tool is callable by your AI assistant. No configuration required beyond installation.
| Tool | Key parameters | What it does |
|---|---|---|
add_idea |
text, parentId?, tags? |
Capture a new idea, optionally nested under a parent node |
update_node |
nodeId, newText?, tags? |
Edit the text or tags of an existing node |
delete_node |
nodeId |
Remove a node; children are orphaned but preserved |
search_ideas |
query |
Full-text scored search across all node text and tags |
get_mindmap |
nodeId? |
Retrieve the full tree, or a subtree from a given node |
export_markdown |
— | Export the entire mindmap as a nested Markdown list |
Interactive Demo
Explore a live mindmap visualization and the underlying JSON schema.
Explore the interactive mindmap with D3.js force-directed graph, sample data, and full JSON schema breakdown.
Open interactive demo →