mindnode-mcp
MCP server for MindNode that lets AI agents read mind maps as Markdown outlines and view rendered previews. It also supports creating new mind maps from outlines and opening maps in the app.
README
MindNode MCP Server
Connect MindNode to Claude and any AI agent — an MCP server for the mind-mapping app that has no API, no AppleScript, and no exportable files.
MindNode Next (the 2024+ generation of MindNode) moved all documents into a
private SQLite/CRDT library and ships zero automation surface: no
AppleScript dictionary, no CLI, no cloud API, not even .mindnode files on
disk anymore. This project reverse-engineered the storage format so AI agents
can finally read and create mind maps:
- Read any mind map as a Markdown outline — straight from MindNode's local library (SQLite → protobuf → Apple LZ4 → CRDT decode), read-only, without even launching the app.
- See the exact rendered map — MindNode's own preview JPEGs, pixel-perfect.
- Create new mind maps from Markdown outlines (silent in-app import).
- Open any map by name via the
mindnode://URL scheme.
Works with Claude Code, Claude Desktop, and any MCP client.
Looking for the classic file-based MindNode? Older plist-based tools cover
.mindnodedocuments; this server is for MindNode Next (2024+), the SQLite-library generation where those approaches no longer work. Verified on MindNode 2026.4.4.
Tools
| tool | what it does |
|---|---|
list_mindmaps |
list all mind maps in the library (title, id, modified) |
get_mindmap |
read a mind map as a Markdown outline (best-effort CRDT decode) |
get_mindmap_image |
MindNode's own rendered JPEG preview — pixel-perfect ground truth |
create_mindmap |
create a new mind map from a Markdown outline (imports via the app) |
open_mindmap |
open a mind map in MindNode |
Install
Requires macOS with MindNode 2024+ and Node.js ≥ 24.
Claude Code:
claude mcp add --scope user mindnode -- npx -y mindnode-mcp
Claude Desktop / any MCP client (claude_desktop_config.json):
{
"mcpServers": {
"mindnode": {
"command": "npx",
"args": ["-y", "mindnode-mcp"]
}
}
}
From source (Node ≥ 24 runs the TypeScript directly, no build step):
git clone https://github.com/jyuwaaw/mindnode-mcp.git
cd mindnode-mcp && npm install
claude mcp add --scope user mindnode -- node /path/to/mindnode-mcp/src/index.ts
Debug with the MCP inspector: npm run inspect.
How I use it
I keep a daily mind map (one per day, plus per-project maps) as my working memory — Raycast is set up to summon MindNode with a single keystroke, so capturing a thought costs nothing. This server closes the loop: at the end of the day an agent reads the map, turns it into a work log or blog draft, and can seed tomorrow's map from open threads. Ask Claude things like:
- "list my mind maps"
- "read today's map and draft a standup update"
- "turn this outline into a mind map: …"
How it works
MindNode Next stores everything in a GRDB/SQLite library inside its sandbox
container. Each document is a protobuf base snapshot plus a stream of
CRDT operation batches, both wrapped in a tiny envelope (field 12345 =
version, field 678910 = payload — yes, really) and compressed with Apple's
LZ4 framing (bv41/bv4-/bv4$ blocks).
This repo carries a schema-less protobuf parser, a pure-TypeScript Apple-LZ4
decoder, and a tree reconstructor that replays node-creation and text ops.
The full reverse-engineering notes live in docs/FORMAT.md —
if you want to build your own MindNode tooling, start there.
tools/spelunk.py pretty-prints any library blob for
further digging.
Writes deliberately do not touch the database (it's CloudKit-synced;
corrupting it would be unforgivable). New documents go through MindNode's own
Markdown importer via open -a MindNode, which is silent and lossless.
Caveats
get_mindmapreconstructs text from a CRDT op stream whose position encoding isn't fully mapped: heavily edited strings can come back slightly scrambled, and deleted nodes may linger as(untitled). Useget_mindmap_imagewhen exactness matters. Documents created viacreate_mindmapread back losslessly.create_mindmaplaunches MindNode (import happens in-app, silently). It always lands the new document at the library root — targeting a folder needs the App Intents route (see Roadmap) — and MindNode auto-renames the document when the title already exists (the central node keeps the title you asked for). There is no tool yet for adding nodes to an existing map, renaming, or deleting.- If an import produces nothing, check MindNode itself: a modal dialog in the
app blocks every subsequent open/import, and
openstill exits 0. Only Markdown imports work this way — MindNode registers as a viewer for OPML, FreeMind and TaskPaper, but opening those files is silently ignored. - The library is read read-only, always. Format verified on MindNode
2026.4.4; a future MindNode update could shift field numbers — file an
issue with
tools/spelunk.pyoutput if outlines come back empty.
Roadmap
- Node-level edits (add/rename/delete a single node) and lossless export via MindNode's 20 App Intents (CreateNode, EditNode, ExportDocument, …) wrapped in Shortcuts
- Map the CRDT text-position encoding and deletions for exact reads
- Folder titles, tags/stickers, notes fields
License
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.