Skip to main content
Glama

XMind MCP

Convert Markdown, text outlines, HTML, Word, and Excel to XMind. MCP tools provide mind map creation, reading, structural analysis, conversion, file listing, and title translation.

中文 · Documentation index (Chinese)

Quick start

Requires UV and Python 3.11+. From the repository root, run the current source:

uvx --python 3.12 --from . xmind-mcp --stdio

Clients communicate through standard input/output. Waiting for input in a terminal is normal. uvx xmind-mcp installs the published package and does not include unpublished local changes.

The project uses MCP Python SDK v2, supporting the 2026-07-28 protocol revision and legacy initialization. --mode fastmcp, --mode stdio, and --stdio remain aliases for the same STDIO entry point.

See the usage guide for MCP client configuration and path rules.

Related MCP server: Markmap MCP Server

Agent setup

These examples use PyPI version 2.0.1; cloning this repository is unnecessary. Install UV and check that uvx --version works. The first run needs network access to download dependencies. You can install them and check the package version first:

uvx --python 3.12 --from xmind-mcp==2.0.1 xmind-mcp --version

Codex

Merge the TOML example into ~/.codex/config.toml, or .codex/config.toml in a trusted project:

[mcp_servers.xmind]
command = "uvx"
args = ["--python", "3.12", "--from", "xmind-mcp==2.0.1", "xmind-mcp", "--stdio"]
startup_timeout_sec = 120
tool_timeout_sec = 120

Keep other settings. Update an existing [mcp_servers.xmind] table rather than adding it twice. Restart the client and start a new session. Alternatively, register through the CLI:

codex mcp add xmind -- uvx --python 3.12 --from xmind-mcp==2.0.1 xmind-mcp --stdio
codex mcp list

If the initial startup times out after CLI registration, set startup_timeout_sec as shown above. Desktop, CLI, and IDE clients share the same host's configuration. Use /mcp in the CLI TUI to inspect connections. Official Codex documentation

Claude Code

Register a user-scoped server for use across projects:

claude mcp add --transport stdio --scope user xmind -- uvx --python 3.12 --from xmind-mcp==2.0.1 xmind-mcp --stdio
claude mcp get xmind

Reopen Claude Code and run /mcp in the session to check the connection. For team project configuration, replace --scope user with --scope project, which writes .mcp.json in the project root. You can also merge the JSON example into that file. Approve project servers when the client prompts. Official Claude Code documentation

Cursor

Merge the JSON example into ~/.cursor/mcp.json for all projects, or .cursor/mcp.json inside one project:

{
  "mcpServers": {
    "xmind": {
      "command": "uvx",
      "args": ["--python", "3.12", "--from", "xmind-mcp==2.0.1", "xmind-mcp", "--stdio"]
    }
  }
}

Keep other entries under mcpServers. Save and reload the client, check xmind in MCP settings, then use it in Agent chat. A project entry takes priority over a global entry with the same name. Official Cursor documentation

Verify and customize

Once connected, six tools should be available. Try this in your agent:

Use xmind to create a development plan covering requirements, implementation, testing, and release. Save it to the default directory and return a file link.

Output defaults to Documents/XmindOutput inside the process user's home directory, such as /Users/username/Documents/XmindOutput on macOS or C:/Users/username/Documents/XmindOutput on Windows. Missing directories are created automatically. Successful create, convert, and translate tools return data.absolute_path.

No env is needed; MCP communication uses UTF-8. If the client cannot find uvx, run command -v uvx on macOS/Linux or where.exe uvx on Windows and use the absolute executable path as command. In configuration locations above, ~ means your home directory, typically %USERPROFILE% on Windows.

To override output, append "--default-output-dir", "/absolute/path/to/output" to args. Use forward slashes such as D:/XmindOutput in Windows JSON/TOML strings. For local development, replace the package specifier after --from with the repository's absolute path. Other STDIO clients using mcpServers can reuse the JSON example; consult their documentation for the configuration location.

Six MCP tools

Tool

Purpose

create_mind_map

Create a mind map from JSON topics

read_xmind_file

Read the first sheet's topic tree and statistics

analyze_mind_map

Analyze nodes, depth, and structure

convert_to_xmind

Convert a supported input file

list_xmind_files

List files by directory, pattern, and depth

translate_xmind_titles

Translate titles through an external provider

Topic input uses title and children, with legacy aliases supported. From 2.0.1, output defaults to Documents/XmindOutput inside the current user’s home directory, created automatically. Override it with --default-output-dir or XMIND_MCP_DEFAULT_OUTPUT_DIR, or pass an explicit absolute file path. Successful create, convert, and translate tools return data.absolute_path. Translation requires network access; optional AI helpers are separate from the six registered tools.

Standalone conversion

uv run xmind-convert examples/test_markdown.md output/markdown.xmind

After installation, xmind-convert input.md output/result.xmind is also available. Supported inputs are Markdown, TXT, HTML, .docx, and .xlsx; see the usage guide for parsing rules.

Development

uv venv --python 3.12
uv pip install -e '.[test]'
.venv/bin/python tests/run_all_tests.py -q

On Windows, use .venv/Scripts/python.exe instead of .venv/bin/python.

Branch pushes and pull requests run automated checks. Successful checks on main automatically increment the patch version and publish to PyPI. Configure PYPI_API_TOKEN once; see the development guide.

Documentation

  • Usage guide: setup, MCP configuration, arguments, conversion, and troubleshooting.

  • Architecture: models, service boundaries, configuration isolation and extensions.

  • Development and publishing: environments, tests, distribution checks, versions, and PyPI releases.

Implementation and MCP entry points live in xmind_mcp/; root-level scripts and their import APIs have been removed. See the documentation index for the consolidation map.

License

MIT

Available Tools

6 tools
analyze_mind_mapC

分析思维导图结构,返回节点数量、层级及结构建议。

NameRequiredDescriptionDefault
file_pathYes

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden, and it does not state that this is a read-only/non-mutating operation, what file formats/encodings are accepted, or whether the analysis depends on external services. Mentioning the returned fields is redundant because an output schema already exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One compact sentence with the operation front-loaded and zero filler. It is appropriately sized, though the trailing enumeration of return fields is largely duplicative of the output schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Output schema presence excuses omitting return-value detail, but the description still leaves the only parameter undefined and gives no usage context among five siblings. For a tool that must be pointed at a specific file, this is under-specified.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the single required parameter file_path has no description anywhere. The description never mentions the path argument or its expected format (local path, .xmind file, relative vs absolute), so it fails to compensate for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (analyze) and resource (mind map structure) and names the concrete outputs (node count, levels, structural suggestions). This differentiates it reasonably from read_xmind_file and create_mind_map, though it never explicitly contrasts itself with those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to choose this over read_xmind_file (reading content) or convert_to_xmind. An agent must infer that this is for structural assessment rather than content retrieval; no prerequisites or exclusions are stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

convert_to_xmindA

将TXT、Markdown、HTML、Word、Excel转换为XMind。源路径必须为绝对路径;source_file/output_file 是旧参数别名。JSON主题请用 create_mind_map。

NameRequiredDescriptionDefault
output_fileNo
source_fileNo
output_filepathNo
source_filepathNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It usefully reveals an absolute-path requirement and the existence of legacy alias parameters, but says nothing about whether an existing output file is overwritten, permission/auth needs, supported size limits, or conversion fidelity — significant gaps for a write-producing tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three compact clauses, front-loaded with purpose before the caveats. Every sentence carries information: format scope, path constraint, alias note, and alternative tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description resolves the highest-risk ambiguity (four near-duplicate parameters). Remaining gaps are the output path's default/overwrite semantics, which matter given 0% schema coverage and no annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% across four parameters, so the description must compensate. It clarifies the otherwise-confusing duplication by labeling source_file/output_file as legacy aliases of the filepath parameters and states the source path must be absolute, but leaves output_filepath behavior (defaults, overwrite, directory requirements) undefined.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (convert) and the exact input formats supported (TXT, Markdown, HTML, Word, Excel) plus the output format (XMind). It also routes JSON-topic cases to create_mind_map, so the agent can distinguish this tool from siblings without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit alternative and the condition selecting it: 'JSON主题请用 create_mind_map'. Also imposes a precondition (absolute source path). It does not cover other near-neighbors like read_xmind_file or translate_xmind_titles, but the main fork is stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_mind_mapC

创建思维导图。topics_json 为主题JSON字符串,支持 children/topics/subtopics/nodes/items 别名;output_path 为可选绝对输出路径。

NameRequiredDescriptionDefault
titleYes
output_pathNo
topics_jsonYes

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It never states that this writes a file to disk, whether output_path overwrites an existing file, what happens if output_path is omitted, or what permissions/format constraints apply. For a creation tool with zero annotation coverage, these are real gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single efficient sentence that front-loads the action and then covers the two non-obvious parameters. No filler, though the alias enumeration makes the sentence dense.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. Given only 3 parameters and no nested objects, the missing pieces are the 'title' parameter meaning and the when-to-use positioning against convert_to_xmind, so it is adequate but not complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate. It usefully documents the accepted alias keys for topics_json (children/topics/subtopics/nodes/items) and clarifies output_path is optional and absolute – genuine value beyond the schema. But it says nothing about the required 'title' parameter, leaving one of three parameters undocumented in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('创建思维导图' – create a mind map), which is unambiguous on its own. However it does not distinguish this from the related sibling convert_to_xmind or explain the relationship to read_xmind_file/analyze_mind_map, so sibling differentiation is absent.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use context and never names an alternative, despite a crowded sibling set containing convert_to_xmind and analyze_mind_map that plausibly overlap. An agent must guess which tool creates vs converts an existing map.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_xmind_filesA

列出XMind文件。directory 为绝对目录,省略时使用默认输出目录;支持递归、文件名模式和最大搜索深度。

NameRequiredDescriptionDefault
patternNo
directoryNo
max_depthNo
recursiveNo

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It usefully discloses the default-directory fallback and that recursion, pattern matching and a depth cap are supported, but it never states that this is a non-mutating read, nor anything about result volume or pagination behavior on large trees.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence with the resource stated first and the parameter constraints following; every clause adds information and there is no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return-value explanation is rightly omitted, and the parameter behaviors are covered. What is missing is the identity of the 'default output directory' and any guidance on choosing this tool over the sibling readers/converters, leaving a modest gap for an agent with no annotations to lean on.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate and largely does: it explains directory (absolute path, default output directory when omitted), and names recursion, filename pattern and max search depth, mapping to all four parameters. It does not give pattern syntax or clarify whether max_depth applies without recursive, so it is not fully compensatory.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: listing XMind files. It is clearly distinguishable from siblings like read_xmind_file, create_mind_map or convert_to_xmind by the fact that it only enumerates. However, it never explicitly contrasts itself with those siblings, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the tool's nature as a listing operation; there is no explicit when-to-use statement and no when-not-to-use or alternative named among the five sibling tools. The note that omitting directory falls back to the default output directory gives partial context, which keeps it above a 2.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_xmind_fileC

读取XMind文件内容(返回结构与统计信息)。file_path 为XMind文件路径。

NameRequiredDescriptionDefault
file_pathYes

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It says what is returned (structure and statistics) but says nothing about failure modes (missing/corrupt file), file format support, size limits, or permissions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences with the purpose front-loaded and no padding. The trailing sentence on file_path is mildly redundant with the parameter name but still clarifying.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values do not need explaining, and the tool is a simple single-parameter read. However, with no annotations and no error/edge-case context, the definition is only minimally sufficient for calling it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and there is one required parameter, so the description must compensate. It does state that file_path is the XMind file path, which confirms meaning, but adds no format detail such as absolute vs relative path or required extension.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('读取') and resource ('XMind文件内容') and adds that it returns structure plus statistics. It does not differentiate from siblings such as analyze_mind_map, which plausibly reads the same file type, so it stops short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no indication of prerequisites, and no reference to alternatives like analyze_mind_map or list_xmind_files. Usage is only implied by the verb.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

translate_xmind_titlesB

翻译XMind标题并输出新文件。output_filepath 为可选绝对输出路径;target_lang 默认为 en,覆盖已有文件需 overwrite=True。

NameRequiredDescriptionDefault
overwriteNo
target_langNoen
output_filepathNo
source_filepathYes

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the behavioral burden and does disclose the key mutation trait: overwriting an existing file requires overwrite=True, and the default behavior produces a new file. It omits other relevant behavior such as whether an external translation service is called, network/auth requirements, or failure handling.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single compact sentence that front-loads the primary action and then bundles the optional parameters efficiently. There is little waste, though the terse parameter clause reads more like an annotation than explanatory prose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The output schema means return values need not be explained, and the overwrite and default-lang semantics are covered. However, for a file-writing tool with no annotations the description should say more about source_filepath, overwrite risk, and translation behavior to be fully actionable.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does for three of four parameters: output_filepath is an optional absolute output path, target_lang defaults to en, and overwrite=True is required to overwrite. source_filepath (the required parameter) is left undocumented and target_lang values are not enumerated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (translate XMind titles) and a concrete outcome (output a new file), which clearly separates it from siblings like read_xmind_file or list_xmind_files. It does not, however, explicitly name an alternative tool for comparison.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives no when-to-use or when-not-to-use guidance relative to the five sibling tools, and no prerequisites are stated. Only an implied context (an existing XMind file whose titles need translating) is conveyed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv2.0.1
    • First observedanalyze_mind_map
    • First observedconvert_to_xmind
    • First observedcreate_mind_map
    • First observedlist_xmind_files
    • First observedread_xmind_file
    • First observedtranslate_xmind_titles

TDQS

B3.4/5.0

Scored across 6 tools

Disambiguation4/5

Most tools have distinct verbs (read, translate, create, analyze, convert, list). However, create_mind_map and convert_to_xmind both produce XMind files, and read_xmind_file vs analyze_mind_map both inspect file contents, so descriptions must disambiguate (they do, e.g. explicitly routing JSON topics to create_mind_map).

Naming Consistency5/5

Every tool follows a clean verb_noun snake_case pattern: read_xmind_file, translate_xmind_titles, create_mind_map, analyze_mind_map, convert_to_xmind, list_xmind_files. No stylistic deviations.

Tool Count5/5

Six tools is well-scoped for a focused XMind manipulation server, covering reading, creating, converting, translating, analyzing, and listing without bloat.

Completeness3/5

Core lifecycle (read, create, convert, list) is covered, but there is no tool to update/edit existing mind map nodes in place and no delete/rename operation for files. Translating and analyzing partly fill gaps, but agents editing an existing map hit a dead end.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables conversion of plain text descriptions and Markdown content into interactive mind maps using AI. Automatically uploads generated mind maps to Aliyun OSS and provides online access links.
    44 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to read and write XMind mind map files, allowing generation, editing, and analysis of mind maps directly in XMind.
    MIT