mindmapio-mcp
You can manage mindmap.io maps and nodes and run/control LLM-generated node content.
List maps and read full maps, single nodes, or subtrees to a chosen depth.
Create maps with an initial node tree, and delete maps with all their nodes.
Create, update, and delete nodes; node deletion cascades and the root cannot be deleted.
Run an LLM on a node with optional prompt or model override.
Generate 1–4 follow-up child prompts from a node with
auto_expand.Retry failed node generations, optionally forcing past expand-node conflicts, and interrupt in-flight generations.
Click on "Deploy 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., "@mindmapio-mcp Create a mind map about project risks and auto-expand each one."
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.
mindmapio-mcp
Tip: Give this README to your agent and ask it to install the MCP.
Give your AI agent a place to build and keep what it learns. Connect it to mindmap.io and it turns research, plans, and conversations into a real map you can open, grow, and share. Your agent reads existing maps, adds and edits nodes, runs prompts on them, and fans any topic out into follow-up questions, all through your own mindmap.io account.
Three ways to set it up:
Claude plugin. One install command and one masked prompt for your token.
MCP server. One line in your MCP client config (Claude Desktop, Cursor, and other MCP clients).
Agent skill. Install it with
npx skillsso your agent works with mindmap.io directly, no MCP client needed.
Get a token
Every call uses a personal access token from your account.
Open mindmap.io, go to settings, then API access.
Generate a token and copy it. You only see it once.
Save it as
MINDMAP_API_TOKEN, or paste it into the plugin's token prompt.
The token acts as you. Regenerate it any time and the old one stops working instantly.
Related MCP server: xmind-mcp
Option 1: Claude plugin
/plugin marketplace add MohGanji/mindmapio-mcp
/plugin install mindmapio@mindmap-ioClaude Code prompts for your API token, masks it, and stores it in your OS keychain. Restart, and the tools are live. SETUP.md walks Claude through the same steps, and through what to check when something does not connect.
The plugin ships the MCP server, a skill on how to shape a map well, and the direct-HTTP skill below. No slash commands and no sub-agents.
Option 2: MCP server
Add this to your MCP client config. npx fetches and runs the package for you:
{
"mcpServers": {
"mindmapio": {
"command": "npx",
"args": ["-y", "github:MohGanji/mindmapio-mcp"],
"env": {
"MINDMAP_API_TOKEN": "<your personal access token>"
}
}
}
}With the Claude Code CLI, the same thing in one line:
claude mcp add mindmapio --env MINDMAP_API_TOKEN=<your token> -- npx -y github:MohGanji/mindmapio-mcpThe first run builds from source, so it takes a few extra seconds. Later runs are cached.
Settings
Env var | Required | Default | What it does |
| yes | — | Your personal access token. Sent as |
| no |
| API base URL. |
What your agent can do
Nineteen tools, one per operation in the Mindmap.io node API.
Tool | What it does |
| List your maps, newest first. |
| Read a whole map and its node tree. |
| Read one node. |
| Read a node and its children, as deep as you want. |
| Start a new map. |
| Delete a map and everything in it. |
| Publish a map and get its shareable + embed links. |
| Make a published map private again. |
| Arrange a map as a tree, top-down, or with branches on both sides. |
| Pass the user's bug report or idea to the mindmap.io team. |
| Add a node under a parent. |
| Edit a node's content, note, type, or model. |
| Remove a node and its children. |
| Run a node through the model and get the answer back. |
| Turn a node into follow-up questions for your agent to run. |
| Re-run a node that failed. |
| Stop a node that is still running. |
| Upload an image or PDF from this machine to attach to a node. |
| Save an uploaded file back to this machine. |
create_node mints a node id for you when you leave it out, so your agent can lay out a whole branch in one pass.
Each tool's description and its title / readOnlyHint / destructiveHint annotations are generated from the OpenAPI document rather than written here, so what your agent reads is the contract the API enforces. See Regenerating the tool list.
Option 3: agent skills
Install the skills with one command:
npx skills add MohGanji/mindmapio-mcpThis works with Claude Code and other agents that support skills (browse them at skills.sh). Two skills ship here:
skills/mindmapio/SKILL.mdteaches the same actions over plain HTTP, no MCP client required.skills/map-shaping/SKILL.mdteaches how to shape a map: what belongs in the root node, when to branch versus append, and when to fan out.
Set your token first:
export MINDMAP_API_TOKEN="<your personal access token>"Hello world
Create a map, add a question, run it, and read the answer. Node content is sent as messages, a UIMessage array ({ role, parts: [{ type: "text", text }] }). With the MCP server, call the tools in order:
// 1. Create a map with a root node.
create_map { "title": "Hello", "data": { "rootId": "root", "nodes": { "root": {
"id": "root",
"messages": [{ "role": "user", "parts": [{ "type": "text", "text": "Hello" }] }],
"children": [] } } } }
// -> { "id": "MAP_ID" }
// 2. Add a question under the root.
create_node { "mapId": "MAP_ID", "nodeId": "q1", "parentId": "root", "nodeType": "prompt",
"messages": [{ "role": "user", "parts": [{ "type": "text", "text": "Say hi in one word." }] }] }
// 3. Run it. The call waits until the answer is ready.
submit_node { "mapId": "MAP_ID", "nodeId": "q1" }
// -> { "nodeId": "q1", "status": "complete", "messages": [ ... ] }
// 4. Read it back.
get_node { "mapId": "MAP_ID", "nodeId": "q1" }The API also still accepts a legacy text field for node content, but messages is the canonical shape.
The skill at skills/mindmapio/SKILL.md shows the same flow as curl commands.
Keep your token safe
Never commit your token. Keep it in the plugin's token prompt, your MCP client config, or an environment variable.
It is sent only as the
Authorizationheader and is never logged. Config and error messages carry no secret.Treat it like a password. If it leaks, regenerate it in settings and the old one stops working right away.
Layout
.claude-plugin/ plugin.json and the self-hosted marketplace manifest
.mcp.json the plugin's connector: the stdio server below, token from userConfig
skills/ the agent skills, also what `npx skills add` installs
server/ the stdio MCP server (src, tests, and the vendored OpenAPI document)
SETUP.md first-install instructions for ClaudeThe root package.json is the server's, so npx -y github:MohGanji/mindmapio-mcp still resolves: it builds server/dist and runs it.
Develop
npm install
npm test # vitest against a mocked HTTP layer, no live backend needed
npm run build # tsc -> server/dist/Regenerating the tool list
Tool descriptions and annotations come from server/spec/openapi.json, a vendored mirror of the published https://mindmap.io/api/openapi.json. Refresh it with:
npm run sync:openapiDrift is checkable in one line:
npm run sync:openapi && git diff --exit-code server/specIt fetches the published document on purpose, never a local checkout of the API repo, which can hold unpushed edits that would ship a tool list nobody can reach. It refuses to write a document whose operations are missing their x-mcp annotations (title, readOnlyHint, destructiveHint), because a tool without them is a rejection criterion for Anthropic's directories, and leaves the vendored copy untouched in that case.
The skill is held to the same document
buildTools joins the tool list to that document in both directions, and server/test/skill-parity.test.ts joins skills/mindmapio/SKILL.md to it the same way: every documented operation has to be named, called in a worked example, and taught with the query or header inputs and the operation-specific failures (a 409, a 413, a 429) the document declares for it — and a section teaching an endpoint the document does not describe fails too. That is the third leg of ADR 0029's parity invariant, unenforced until the skill had quietly drifted to 15 of 17 operations.
Editing that skill is half a change: mindmap.io serves a mirror of it with a SHA-256 digest, so marketing/scripts/sync-agent-skills.mjs has to be re-run there once the edit is pushed here.
License
Available Tools
13 toolsauto_expandAInspect
Generate follow-up prompts as queued child nodes and return their ids. One level only; submit each child yourself.
Inputs: mapId (required), nodeId (required), count, direction.
create_mapBInspect
Create a map owned by the token's user. Pass an initial node tree in data so node primitives have a parent.
Inputs: data, kind, title.
create_nodeAInspect
Create a structural node under a parent. nodeId is optional; a uuid is minted when omitted so you can reference ids you choose.
Inputs: mapId (required), parentId (required), note, nodeId, +3 more.
delete_mapBInspect
Delete a map and all of its nodes.
Inputs: mapId (required).
delete_nodeAInspect
Delete a node and all of its descendants (cascade). The root node cannot be deleted.
Inputs: mapId (required), nodeId (required).
get_nodeAInspect
Read a single node without its descendants. Its children field still lists child ids for navigation.
Inputs: mapId (required), nodeId (required).
get_subtreeAInspect
Read a node and its descendants as a nested tree. Omit depth for the full subtree; 0 returns just the node.
Inputs: mapId (required), nodeId (required), depth.
interrupt_nodeAInspect
Stop an in-flight generation; a generating or queued node flips to interrupted with partial output preserved. Idempotent.
Inputs: mapId (required), nodeId (required).
list_mapsAInspect
List the authenticated user's maps (metadata only, newest first).
Inputs: no named parameters.
retry_nodeBInspect
Clear a node's error state and re-run its generation. Retrying an expand node with children needs force=true.
Inputs: mapId (required), nodeId (required), force, prompt, +1 more.
submit_nodeAInspect
Run the LLM on a node and return the completed node. Blocks until ancestors finish; metered.
Inputs: mapId (required), nodeId (required), prompt, modelId.
update_nodeAInspect
Apply a structural update to a node (content, note, type, collapsed flag, model). No LLM call, no metering.
Inputs: mapId (required), nodeId (required), note, modelId, +4 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 13 tools
Each tool has a clearly distinct purpose: map vs node operations, different scopes for reading (single node vs subtree vs full map), and distinct generation-related actions (auto_expand, submit_node, retry_node, interrupt_node). No overlapping or ambiguous tools.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., create_map, delete_node, get_subtree, list_maps). No mixing of conventions or vague verbs.
13 tools cover the full lifecycle of mind map management (CRUD for maps and nodes) plus AI generation features (expand, submit, retry, interrupt). The count is well-scoped for the domain.
The toolset covers creation, reading (with varying depth), updating, deletion, listing, and AI-powered node expansion with error handling (retry, interrupt). No obvious gaps for the stated purpose of mind map management with generation.
Maintenance
Related MCP Connectors
Create, edit, and organize MindMeister mind maps from your AI assistant.
Mind maps with a full document in every node. Read, search and edit your maps from AI tools.
Read and write your Matryoshka Mind Map (nested mind map / TODO app) from AI agents.
Search, retrieve, create, and update visual knowledge maps in a user's KnowMapped account.
Related MCP Servers
AlicenseAqualityDmaintenanceEnables AI assistants to generate interactive mind maps from text, YouTube videos, and web content using Mapify's API.113 npm27MIT- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to read and write XMind mind map files, allowing generation, editing, and analysis of mind maps directly in XMind.MIT
- AlicenseNot gradedqualityCmaintenanceEnables LLMs to read and edit XMind mind maps, including OCR for images embedded in nodes.MIT
- AlicenseAqualityBmaintenanceEnables AI agents to read and write a user's nested mind maps and TODO items in Matryoshka Mind Map through natural-language conversation, including listing maps, adding elements, checking tasks, and importing Markdown.14570 npm2MIT