xmind について
XMind Mind Map Skillは、中国語または英語の自然言語による依頼から、.xmindファイルを作成・読み取り・分析します。新旧両方の形式に対応し、マップ作成、内容検索、タスク確認などを行えます。
主な機能
- 01マインドマップとプロジェクト計画を作成
- 02マップ内容の読み取りと検索
- 03新旧フォーマットに対応
- 04フローチャートと組織図を作成
- 05モダン形式の更新時にスタイルを保持
活用シーン
- 01文書をマインドマップに整理
- 02タイムラインやタスクリストを作成
- 03ノード、メモ、ラベル、未完了タスクを検索
- 04既存マップのスタイルを保って更新
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ apeyroux/ mcp-xmind --skill xmindインストール後、Claude Code で/xmindを入力して読み込まれたか確認します。
同梱ファイルscripts/create_xmind.mjsscripts/read_xmind.mjs
詳細
XMind マインドマップスキル
.xmind マインドマップファイルを作成、読み取り、分析します。中国語と英語での自然なやり取りに対応しています。
自然言語による振り分け
このスキルは中国語と英語の両方に対応しています。ユーザーからリクエストがあった場合は、意図を特定し、適切なスクリプトとアクションに振り分けます。ユーザーが使用した言語で応答してください。
作成に関する意図 → create_xmind.mjs
| ユーザーの発言(中国語) | ユーザーの発言(英語) | 振り分け先 |
|---|---|---|
| "帮我做个思维导图" / "创建脑图" / "画个脑图" / "生成xmind" / "做个脑图" | "create a mind map" / "make an xmind" / "build a brainstorm" | create_xmind.mjs — 標準的なマインドマップ |
| "做个项目计划" / "甘特图" / "排期" / "时间线" / "项目排期" / "里程碑" | "project plan" / "Gantt chart" / "timeline" / "schedule" / "milestones" | create_xmind.mjs — durationDays と dependencies を使ってタスクを計画します |
| "画个流程图" / "逻辑图" / "算法图" / "画个程序流程" | "flowchart" / "logic diagram" / "algorithm diagram" | create_xmind.mjs — freePositioning: true、detachedTopics、直線の関係線を使います |
| "组织架构图" / "组织结构" / "人员架构" | "org chart" / "organization structure" | create_xmind.mjs — org.xmind.ui.org-chart.down レイアウトを使います |
| "鱼骨图" / "因果分析" / "根因分析" | "fishbone" / "cause and effect" / "root cause" | create_xmind.mjs — org.xmind.ui.fishbone.leftHeaded レイアウトを使います |
| "待办清单" / "任务清单" / "todo" | "todo list" / "checklist" / "task list" | create_xmind.mjs — taskStatus: "todo"/"done" を使います |
| "把这个PDF/文档/内容整理成脑图" / "总结成思维导图" | "summarize as mind map" / "turn this into a mind map" | まずソースの内容を読み取り、その後 create_xmind.mjs を使います |
読み取り/分析に関する意図 → read_xmind.mjs
| ユーザーの発言(中国語) | ユーザーの発言(英語) | アクション | 追加パラメーター |
|---|---|---|---|
| "打开这个xmind" / "看看这个脑图" / "分析一下这个思维导图" / "读取这个文件" | "open this xmind" / "read this mind map" / "analyze this file" | read | path |
| "找一下xmind文件" / "有哪些脑图" / "列出所有思维导图" | "find xmind files" / "list mind maps" / "what xmind files are there" | list | directory |
| "搜索脑图" / "找包含xxx的脑图" / "哪个xmind里有xxx" | "search mind maps for..." / "find the xmind with..." | search_files | pattern、directory |
| "对比这几个脑图" / "同时打开这些文件" / "比较这两个思维导图" | "compare these maps" / "read multiple files" | read_multiple | paths |
| "找到xxx节点" / "定位到xxx" / "xxx在哪个位置" | "find the node about..." / "locate..." / "where is..." | extract_node | path、searchQuery |
| "查找所有待办" / "哪些任务没完成" / "还有什么没做的" / "看看做完了哪些" | "find all todos" / "what tasks are incomplete" / "show done tasks" | search_nodes | taskStatus: "todo" または "done" |
| "搜索笔记内容" / "在备注里找xxx" / "哪个节点的笔记提到了xxx" | "search in notes for..." / "find notes mentioning..." | search_nodes | searchIn: ["notes"]、query |
| "搜索标签" / "找带xxx标签的" | "find nodes with label..." / "search labels" | search_nodes | searchIn: ["labels"]、query |
| "搜索xxx" / "在脑图里找xxx" / "全文搜索" | "search for..." / "find in map..." | search_nodes | query(すべてのフィールドを検索します) |
振り分けのヒント
- ユーザーが
.xmindファイルのパスを指定して「見て」「確認して」「看看」「打开」と依頼した場合は、readアクションを使います - ユーザーが「这个脑图里有什么关于xxx的」(このマインドマップにはxxxについて何が書かれているか)と尋ねた場合は、
search_nodesを使います - ユーザーがタスクの進捗について尋ねた場合(「进度怎么样」「完成了多少」)は、
searchIn: ["tasks"]を指定してsearch_nodesを使います - ユーザーが複数のファイルに言及した場合は、
read_multipleを使います - 場所について曖昧な依頼(「找到那个关于后端的节点」など)の場合は、あいまい検索に対応する
extract_nodeを使います - 常にユーザーが使用した言語で応答してください。中国語で話しかけられた場合は、中国語で返信してください
XMind ファイルの作成方法
pathとsheetsフィールドを含む JSON オブジェクトを作成します(形式は以下を参照)- 一時ファイルに書き込み、次を実行します。
node <skill-dir>/scripts/create_xmind.mjs < /tmp/xmind_input.json
<skill-dir> は、この SKILL.md ファイルが格納されているディレクトリです。
既存ファイルの更新(テーマ/スタイルの保持)
path が既存のファイルを指している場合(例:すでにスタイルが設定されているマインドマップのブランチを追加/編集する場合)、create_xmind.mjs はそのファイルのビジュアルテーマ、レイアウト拡張機能、埋め込みリソース(Thumbnails/thumbnail.png など)を、シートごとに title を照合して自動的に保持します。以前のテーマを読み込んだり、ファイルをバックアップしたり、自分で何かを手動でマージしたりする必要はありません。変更していないシート/ブランチを、新規/編集コンテンツとともに同じシート title を指定して入力 JSON に含めるだけで、スクリプトがスタイルを引き継ぎます。
これは最新の zen 形式にのみ適用されます。以前と異なるタイトルでシートを書き換えると、新規シートとして扱われ、デフォルトのテーマが適用されます。スタイルを保持したい場合は、更新後もシートタイトルを変更しないでください。
形式の互換性
どちらのスクリプトも、2 種類の XMind 形式に対応しています。
| 形式 | ZIP 内のファイル | XMind のバージョン | デフォルト |
|---|---|---|---|
zen(最新) | content.json、metadata.json、manifest.json | XMind Zen、XMind 2020+ | はい |
legacy(XML) | content.xml、meta.xml、META-INF/manifest.xml | XMind 3–8(2008–2019) | いいえ |
読み取り: 形式を自動検出するため、設定は不要です。まず content.json(zen)を確認し、次に content.xml(legacy)を確認します。8 つのアクションすべてが、どちらの形式でも同じように動作します。
作成: 入力 JSON に "format" を追加します。多数のバージョンの別名を指定できます。
{
"path": "/tmp/old_format.xmind",
"format": "xmind8",
"sheets": [...]
}
| 別名の例 | 解決される形式 |
|---|---|
"zen"、"json"、"latest"、"modern"、"new" | 最新(JSON) |
"xmind2024"、"2024"、"xmind2020"、"2020" | 最新(JSON) |
"legacy"、"xml"、"old" | レガシー(XML) |
"xmind8"、"xmind7"、"xmind6"、"8"、"7" | レガシー(XML) |
"2013"、"2012"、"2008" | レガシー(XML) |
"pro8"、"pro7" | レガシー(XML) |
数値のヒューリスティック: バージョン ≤ 9 → レガシー(XMind 3–8)、バージョン ≥ 10 → zen(XMind 10+)、年 ≤ 2019 → レガシー、年 ≥ 2020 → zen。
形式の確認: format_info アクションを使用して、既存のファイルを確認します。
echo '{"action": "format_info", "path": "/path/to/file.xmind"}' | node <skill-dir>/scripts/read_xmind.mjs
ユーザーが「兼容旧版」/「XMind 8格式」/「旧版本格式」/「old format」/「XMind 8 compatible」/「兼容其他编辑器」と言った場合は、"format": "legacy" を使用します。それ以外の場合は、デフォルトの zen 形式を使用します。
JSON 入力形式
{
"path": "/Users/user/Desktop/my_mindmap.xmind",
"sheets": [
{
"title": "Sheet 1",
"rootTopic": {
"title": "Central Topic",
"children": [
{
"title": "Branch 1",
"notes": "Plain text note",
"children": [
{ "title": "Sub-topic A" },
{ "title": "Sub-topic B" }
]
}
]
},
"relationships": [
{ "sourceTitle": "Sub-topic A", "targetTitle": "Sub-topic B", "title": "related" }
]
}
]
}
トピックのプロパティ
各トピックオブジェクトでは、次の項目を指定できます。
| 項目 | 型 | 説明 |
|---|---|---|
title | string(必須) | トピックのタイトル |
children | トピックの配列 | 子トピック |
notes | string または {plain?, html?} | ノート。HTML では <strong>、<u>、<ul>、<ol>、<li>、<br> を使用できます。<code> は使用できません。 |
href | string | 外部 URL リンク |
attachment | string | 添付するファイルの絶対パス(.xmind に埋め込まれます)。href とは同時に指定できません。 |
linkToTopic | string | リンク先となる別のトピックのタイトル(内部 xmind:#id リンク。シートをまたいで機能します) |
labels | string[] | タグ/ラベル |
markers | string[] | マーカー ID:task-done、task-start、priority-1~priority-9 |
callouts | string[] | 吹き出しテキスト |
boundaries | {range, title?}[] | 子トピックの視覚的なグループ化。範囲:"(start,end)" |
summaryTopics | {range, title}[] | 子トピックの範囲にまたがる要約トピック |
structureClass | string | レイアウト(下記を参照) |
shape | string | トピックの形状(下記を参照) |
position | {x, y} | 絶対位置(自由配置シートの独立したトピックにのみ適用) |
トピックの形状
org.xmind.topicShape.roundedRect— 角丸四角形(デフォルト)org.xmind.topicShape.diamond— ひし形(条件/決定に使用)org.xmind.topicShape.ellipserect— 楕円(開始/終了に使用)org.xmind.topicShape.rect— 四角形org.xmind.topicShape.underline— 下線のみorg.xmind.topicShape.circle— 円org.xmind.topicShape.parallelogram— 平行四辺形(入出力に使用)
レイアウト構造
org.xmind.ui.map.clockwise— バランス型マップorg.xmind.ui.map.unbalanced— アンバランス型マップorg.xmind.ui.logic.right— ロジックチャート(右)org.xmind.ui.org-chart.down— 組織図(下)org.xmind.ui.tree.right— ツリー(右)org.xmind.ui.fishbone.leftHeaded— フィッシュボーンorg.xmind.ui.timeline.horizontal— タイムライン
タスクのプロパティ
シンプルなチェックボックス(日付は不要です):
taskStatus:"todo"または"done"
計画タスク(XMind のガント/タイムライン表示用):
| フィールド | 型 | 説明 |
|---|---|---|
progress | 数値 0.0-1.0 | 完了の進捗状況 |
priority | 数値 1-9 | 優先度(1 が最高) |
startDate | ISO 8601 文字列 | 開始日。例:"2026-02-01T00:00:00Z" |
dueDate | ISO 8601 文字列 | 期限 |
durationDays | 数値 | 期間(日数)。相対計画ではこちらを推奨します |
dependencies | 配列 | {targetTitle, type, lag?} — type:FS、FF、SS、SF |
計画タスクの 2 つの方法:
- 相対(推奨):
durationDaysとdependenciesを使用します。XMind が日付を自動計算します。 - 絶対: 固定日には
startDateとdueDateを使用します。
ユーザーが「planning」「schedule」「timeline」「Gantt」「project」「phases」「排期」「甘特图」「项目计划」「时间线」「里程碑」と言及した場合、特定の日付が指定されていなければ、相対計画タスクを使用します。
シートのプロパティ
| フィールド | 型 | 説明 |
|---|---|---|
title | 文字列(必須) | シートのタイトル |
rootTopic | トピック(必須) | ルートトピック |
relationships | 配列 | {sourceTitle, targetTitle, title?, shape?} — タイトルでトピック同士を接続します。shape:"org.xmind.relationshipShape.curved"(デフォルト)または "org.xmind.relationshipShape.straight" |
detachedTopics | トピックの配列 | 独立したトピック(各トピックに freePositioning: true と position が必要です) |
freePositioning | ブール値 | トピックの自由配置を有効にします(ロジック図/フロー図用) |
ロジック図/フロー図
フローチャート、ロジック図、またはアルゴリズム図では、独立したトピックと直線の関連線を使った自由配置を使用します:
{
"path": "/tmp/flowchart.xmind",
"sheets": [{
"title": "Algorithm",
"freePositioning": true,
"rootTopic": {
"title": "START",
"shape": "org.xmind.topicShape.ellipserect",
"structureClass": "org.xmind.ui.map.clockwise"
},
"detachedTopics": [
{"title": "IS X > 0?", "position": {"x": 0, "y": 130}, "shape": "org.xmind.topicShape.diamond"},
{"title": "PRINT YES", "position": {"x": 200, "y": 130}},
{"title": "PRINT NO", "position": {"x": -200, "y": 130}},
{"title": "END", "position": {"x": 0, "y": 260}, "shape": "org.xmind.topicShape.ellipserect"}
],
"relationships": [
{"sourceTitle": "START", "targetTitle": "IS X > 0?", "shape": "org.xmind.relationshipShape.straight"},
{"sourceTitle": "IS X > 0?", "targetTitle": "PRINT YES", "title": "YES", "shape": "org.xmind.relationshipShape.straight"},
{"sourceTitle": "IS X > 0?", "targetTitle": "PRINT NO", "title": "NO", "shape": "org.xmind.relationshipShape.straight"},
{"sourceTitle": "PRINT YES", "targetTitle": "END", "shape": "org.xmind.relationshipShape.straight"},
{"sourceTitle": "PRINT NO", "targetTitle": "END", "shape": "org.xmind.relationshipShape.straight"}
]
}]
}
規則: 開始/終了には楕円、条件にはひし形、アクションには長方形(デフォルト)、入出力には平行四辺形を使用します。すべての接続線には "org.xmind.relationshipShape.straight" を使用します。トピックはグリッド上に配置します(y は約 130px ずつ増加、分岐の x オフセットは約 200px)。
ユーザーが「flowchart」「algorithm」「logic diagram」「流程图」「逻辑图」「算法图」「程序流程」と言及した場合、このパターンを使用します。
大きなファイルを扱う
PDF やその他の大きなファイルの読み込みに失敗した場合(例:「PDF too large」)、マインドマップを作成する前に CLI ツールを使ってテキストを抽出します:
# Preferred: pdftotext (install: apt install poppler-utils)
pdftotext input.pdf /tmp/extracted.txt
# Fallback if pdftotext unavailable:
python3 -c "
import subprocess, pathlib, sys
p = sys.argv[1]
try:
subprocess.run(['pdftotext', p, '/tmp/extracted.txt'], check=True)
except FileNotFoundError:
subprocess.run(['pip', 'install', 'pymupdf'], check=True, capture_output=True)
import importlib; fitz = importlib.import_module('fitz')
doc = fitz.open(p)
pathlib.Path('/tmp/extracted.txt').write_text('\n'.join(page.get_text() for page in doc))
" input.pdf
次に /tmp/extracted.txt を読み込んでマインドマップを作成します。
XMind ファイルの読み取りと分析方法
action フィールドを含む JSON オブジェクトを読み取りスクリプトにパイプします:
echo '{"action": "read", "path": "/path/to/file.xmind"}' | node <skill-dir>/scripts/read_xmind.mjs
利用可能なアクション
| アクション | 入力フィールド | 説明 |
|---|---|---|
read | path | .xmind ファイルを解析し、マインドマップの全構造を JSON として返します |
list | directory | ディレクトリを再帰的にスキャンし、.xmind ファイルを検索します |
search_files | pattern、directory | 名前または内容で .xmind ファイルを検索します |
read_multiple | paths(配列) | 複数の .xmind ファイルを一度に読み込みます |
extract_node | path、searchQuery | あいまいパス検索 — 信頼度順に上位 5 件の一致を返します |
extract_node_by_id | path、nodeId | XMind ID を指定して特定のノードを抽出します |
search_nodes | path、query、searchIn?、caseSensitive?、taskStatus? | 複数フィールドによる高度な検索 |
format_info | path | XMind の形式バージョン(zen/legacy)を検出し、内部ファイルを一覧表示します |
アクションの詳細
read — マインドマップ全体を解析します:
echo '{"action": "read", "path": "/path/to/file.xmind"}' | node <skill-dir>/scripts/read_xmind.mjs
ノート、ラベル、マーカー、タスクのステータス、関係などを含むツリー構造全体を持つルートトピックをそれぞれ含む、シートの配列を返します。
list — ディレクトリ内の .xmind ファイルを検索します:
echo '{"action": "list", "directory": "/Users/user/Documents"}' | node <skill-dir>/scripts/read_xmind.mjs
search_files — ファイル名または内容で検索します:
echo '{"action": "search_files", "pattern": "project", "directory": "/Users/user"}' | node <skill-dir>/scripts/read_xmind.mjs
ファイル名に一致するものが先に返され、その後に内容に一致するものが返されます。
extract_node — 正確なパスがわからない場合にあいまい検索を行います:
echo '{"action": "extract_node", "path": "/path/to/file.xmind", "searchQuery": "Backend API"}' | node <skill-dir>/scripts/read_xmind.mjs
信頼度スコア付きで上位5件の一致を返します。複雑なマップを探索するときに使用します。
extract_node_by_id — IDを直接検索します(最速):
echo '{"action": "extract_node_by_id", "path": "/path/to/file.xmind", "nodeId": "abc123def456"}' | node <skill-dir>/scripts/read_xmind.mjs
search_nodes — フィルターを使った高度な検索を行います:
echo '{"action": "search_nodes", "path": "/path/to/file.xmind", "query": "auth", "searchIn": ["title", "notes"], "taskStatus": "todo"}' | node <skill-dir>/scripts/read_xmind.mjs
searchIn のオプション:title、notes、labels、callouts、tasks。デフォルトではすべてのフィールドが対象です。
各アクションの使い分け
- マップの閲覧/理解:
readを使用して全体構造を取得します - .xmind ファイルの検索:
listまたはsearch_filesを使用します - 特定のトピックへの移動:
extract_node(あいまい検索)またはextract_node_by_id(完全一致)を使用します - マップ全体からコンテンツを検索:適切な
searchInフィルターを指定してsearch_nodesを使用します - タスクの絞り込み:
taskStatus: "todo"または"done"を指定してsearch_nodesを使用します - マップの比較:
read_multipleを使用して複数のファイルを一度に読み込みます
重要なルール
- .xmind ファイルには
unzip、zipinfo、その他の外部 ZIP ツールを絶対に使用しないでください。 どちらのスクリプトもZIPを内部で処理します。create_xmind.mjsは組み込みのコードでZIPを書き込み、read_xmind.mjsは組み込みのコードでZIPを読み込みます。JSONをスクリプトにパイプするだけで、すべて処理されます。.xmind ファイルを自分で展開、解凍、検査する必要はありません。 - 既存の .xmind ファイルを編集/追加する場合は、変更しないシートも含め、元の
titleを持つすべてのシートを必ず指定してください。 そうすることで、create_xmind.mjsはシートを照合し、テーマ、スタイル、サムネイルを保持できます(上記の「既存ファイルの更新」を参照)。デフォルトのスタイルにリセットする場合に限り、シートを省略するか、タイトルを変更してください。 - 出力パスの末尾は必ず
.xmindにしてください - ファイルは必ずユーザーが指定した場所(例:
/Downloads、/Desktop)に書き込んでください - IDは自動生成されます
- 関係と依存関係内のトピック参照は、タイトルによって解決されます
- HTMLノートでサポートされるのは
<strong>、<u>、<ul>、<ol>、<li>、<br>のみです。<code>はXMindでサポートされていません。 - 内部リンク(
linkToTopic)はシート間で機能します - ノートには十分な内容と詳細を記載してください — トピックのタイトルを繰り返すだけにしないでください。ノートには説明、背景、定義、例、要点、理由などを追加します。ノートは最低2~5文を目安にしてください。内容を整理するには、
<strong>、<ul>/<li>、<br>を使ったHTMLノートを使用します。自明な末端ノードを除き、ほとんどのトピックにはノートを付けてください。 - 読み取りスクリプトはJSONを標準出力に出力します。必要に応じてパイプまたはリダイレクトしてください
- すべての読み取りアクションで、入力JSONに
actionフィールドが必要です