mindnode-mcp
Automatically discovers and accesses MindNode documents stored in the user's iCloud container, allowing reading, writing, and modifying mind maps directly within iCloud storage.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mindnode-mcpAdd a node 'Learn MCP' under 'Goals' in my mind map."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mindnode-mcp
An MCP server that lets Claude read and write MindNode mind maps directly, by parsing their on-disk format — no AppleScript or Shortcuts required.
How it works
A .mindnode document is a package directory whose contents.xml is an Apple
binary plist holding a recursive node tree (MindNode format version 9).
This server reads/writes that plist with Python's standard plistlib, so it
needs no third-party plist libraries.
Documents are discovered in the MindNode iCloud container automatically; set
MINDNODE_DOCS_DIR to override (e.g. a local library or a test fixture).
Related MCP server: Apple Notes MCP Server
Tools
Tool | Kind | What it does |
| read | All |
| read | Mind maps as |
| read | Substring search over node text + notes, one or all docs |
| write | Add a node under a parent (by id or text) |
| write | Cross-link two existing nodes (free line), with label + arrow direction |
| write | Tag / untag a node (tags are document-wide, auto-created) |
| write | Turn a node into a checkbox task; set done/todo |
| write | Attach a local image to a node (copied into |
| write | Make a new |
Connections (cross-links)
Stored at canvas.crossConnections[], independent of the parent/child tree.
add_connection(document, start, end, label?, direction?) links two existing
nodes referenced by id or text. direction ∈ forward (default) / backward
/ both / none. read_document returns each as
{id, start_id, end_id, start_text, end_text, direction, label?}.
Tags, tasks, attachments
read_document surfaces these per node (and lists all tag names at the top):
Tags — normalized:
canvas.tags[]holds{tagID, name, color},node.tags[]references tagIDs.add_tagauto-defines a tag of that name if it doesn't exist, then attaches it (idempotent). Each node showstags: [...].Tasks —
node.task = {state, uuids};state1 = todo, 2 = done.set_task(document, node, done)toggles it. Each node showstask: "todo"|"done".Attachments (images) —
node.attachment = {fileName, size, tintKind, type=2}, bytes stored inresources/<fileName>.attach_imagecopies the file in and links it, clamping display width to 300px (matching MindNode). Each node showsattachment: "<fileName>".
Write safety
Mutating the user's real files, so every write:
backs up
contents.xmlto a timestamped.bak-*first,writes to a temp file then atomically replaces (no partial writes),
preserves keys we didn't author (styling, layout, print info),
drops the stale QuickLook preview so it regenerates.
create_map clones an existing document as a structural skeleton (keeping all
opaque auxiliary files valid) and overwrites only the node tree.
Caveat — document open in MindNode: writes go straight to the file on disk. If MindNode (or another device via iCloud) has the same document open, its next autosave can clobber the change, or you may get an iCloud conflict copy. Close the document in MindNode before writing, or reopen it afterwards to pick up the edit. (Backups make this recoverable, but it's cleaner to avoid.)
Run
uv sync
uv run mindnode-mcp # stdio MCP serverRegister with Claude Code:
claude mcp add mindnode -- uv --directory ~/apps/mindnode-mcp run mindnode-mcpStatus
Phase 1 — read (list / read / search)
Phase 2 — write (add_node / create_map)
Phase 3 — connections / cross-links (read + add_connection)
Phase 4 — tags, tasks, image attachments (read + write)
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/masamitsu-konya/mindnode-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server