Markmap MCP Server について
Markmap MCP Server は、Markdown をローカルでインタラクティブなマインドマップに変換し、PNG・JPG・SVG のサーバー側エクスポートにも対応する MCP サーバーです。チャットや文書のワークフローで素早くマインドマップを作りたい利用者に向いています。
主な機能
- 01Markdown からインタラクティブな HTML マインドマップを生成
- 02サーバー側で PNG・JPG・SVG を出力
- 03返却形式をファイルパスまたはインラインコンテンツから選択
- 04オフライン対応の HTML 出力
- 05ローカルの .md ファイルの読み込みと出力ファイルの管理
活用シーン
- 01設計文書やメモをマインドマップに整理する
- 02チャット向けにマインドマップの画像を生成する
- 03オフライン環境で HTML のマインドマップを共有する
MCP 対応
本プロジェクトは MCP サーバーであり、markdown_to_mindmap、list_mindmaps、get_mindmap、cleanup_mindmaps などのツールと mindmap_from_content プロンプトを MCP クライアントに提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Markmap MCP サーバー
Markmap MCP サーバーは、Model Context Protocol (MCP) に基づいています。markmap を使用して Markdown をインタラクティブなマインドマップに変換し、オプションでサーバー上で PNG / JPG / SVG にエクスポートして、エージェントが扱いやすい形式で提供できます。生成はローカルで実行され、サードパーティの API キーは不要です。
特長
- Markdown → マインドマップ:Markdown(見出しと入れ子になったリスト)をインタラクティブな HTML マインドマップに変換します
- エージェントに適した戻り値:ファイルパス、インライン HTML、画像コンテンツを返します(起動時に設定)
- サーバー側エクスポート:Playwright を使用して PNG / JPG / SVG にエクスポートし、チャットやインラインでプレビューできます
- ブラウザーでのプレビュー:ブラウザーを開く動作を設定できます(常に、開かない、またはエージェントに判断させる。起動時に設定)
- ブラウザーのエクスポートツールバー:HTML の表示中に、ページの UI から PNG/JPG/SVG にエクスポートしたり、Markdown をコピーしたりできます
- オフライン HTML:起動時に
--offlineを指定するとアセットがインライン化され、CDN にアクセスできない場合もページを利用できます - ファイルのワークフロー:
inputPathから読み込み、最近の出力を一覧表示し、古いファイルを削除できます - プライバシー優先:変換はすべてローカルで行われ、クラウドのマインドマップ API は使用しません
前提条件
- Node.js v20 以降
- サーバー側での画像エクスポート(
format: png|jpg|svg)には、Playwright と Chromium のインストールが必要です
npm install playwright
npx playwright install chromium
(playwright はこのパッケージのオプションの依存関係です。)
インストール
# Install from npm
npm install @jinzcdev/markmap-mcp-server -g
# Basic run
npx -y @jinzcdev/markmap-mcp-server
# Specify output directory and auto-open in browser
npx -y @jinzcdev/markmap-mcp-server --output /path/to/output/directory --open always
Docker
docker build -t markmap-mcp-server .
docker run --rm -i \
-v /path/to/output:/data/markmap \
-e MARKMAP_DIR=/data/markmap \
markmap-mcp-server
または、クローンしてローカルで実行します。
git clone https://github.com/jinzcdev/markmap-mcp-server.git
cd markmap-mcp-server
npm install && npm run build
# Optional: enable server-side image export
npx playwright install chromium
node build/index.js
使い方
MCP クライアント(Cursor / Claude Desktop など)に次の設定を追加します。
{
"mcpServers": {
"markmap": {
"type": "stdio",
"command": "npx",
"args": ["-y", "@jinzcdev/markmap-mcp-server"],
"env": {
"MARKMAP_DIR": "/path/to/output/directory",
"MARKMAP_OPEN": "never",
"MARKMAP_RETURN_MODE": "path"
}
}
}
}
サーバー設定(CLI / env)
これらはサーバーの起動時に決定されます。ツールの引数ではありません。
| 設定項目 | CLI | Env | 値 | デフォルト |
|---|---|---|---|---|
| 出力ディレクトリ | --output / -o | MARKMAP_DIR | 任意のディレクトリパス | ~/.markmap-mcp |
| ブラウザーで開く | --open [mode] | MARKMAP_OPEN | always | never | agent(引数なしの --open は always) | never |
| 戻り値モード | --return-mode | MARKMAP_RETURN_MODE | path | content | both | path |
| オフライン HTML | --offline | MARKMAP_OFFLINE | true | false(CLI:有効にするには --offline を指定) | false |
CLI フラグは環境変数より優先されます。--output は MARKMAP_DIR より優先されます。
**--open:**引数なしの --open は always を意味します。--open always|never|agent のように指定することもできます。無効な値を指定すると、エラーで終了します。このフラグを指定しない場合は MARKMAP_OPEN が使用されます(デフォルトは never)。
戻り値モード:
| モード | 意味 |
|---|---|
path | パスの JSON のみ(htmlFilePath + filePath) |
content | インラインコンテンツのみ(未加工の HTML テキスト、または Base64 画像ブロック)。パスは含まれません |
both | パスの JSON とインラインコンテンツ |
生成される HTML には、常に markmap ツールバー、英語のエクスポートラベル、展開済みのすべてのノードが含まれます。
プロンプトの例
- 「この設計ドキュメントをマインドマップにまとめてください。」
- 「
./notes/architecture.mdをマインドマップに変換してください。」 - 「このアウトラインから、チャット用の PNG マインドマップを生成してください。」
利用可能なツール
markdown_to_mindmap
Markdown をインタラクティブなマインドマップに変換します(オプションで画像も生成できます)。
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
markdown | string | — | Markdown コンテンツ(inputPath が設定されていない場合は必須)。両方指定された場合はこちらが優先されます。 |
inputPath | string | — | ローカルにある .md ファイルの絶対パス |
format | html | png | svg | jpg | html | 出力形式。画像形式には Playwright が必要です |
filename | string | auto | 出力のベース名(サニタイズされ、必要に応じて markmap- が先頭に付加されます。同じ名前を再利用すると上書きされます) |
open | boolean | false | 結果をブラウザーで開くかどうか。サーバーのオープンモードが agent の場合にのみ公開されます(--open agent / MARKMAP_OPEN=agent)。 |
戻り値(returnMode=path):
{
"htmlFilePath": "/path/to/markmap-….html",
"filePath": "/path/to/markmap-….html"
}
画像形式の場合、filePath は画像のパスで、htmlFilePath は引き続き HTML ソースのパスです。
戻り値(returnMode=content): 生の HTML テキストブロック、または png/jpg/svg の場合は MCP の image コンテンツブロック(base64)です。パスの JSON は返されません。サイズが大きすぎる HTML(200KB 以上)は、パスの JSON にフォールバックします。
戻り値(returnMode=both): パスの JSON と、上記のインラインコンテンツを返します。
注: インタラクティブなズーム/折りたたみ機能とページ内の「PNG/JPG/SVG をエクスポート」ボタンは、HTML ビューアーの機能です。サーバー側の
format: png|jpg|svgを使うと、エージェントはブラウザーで手動操作することなく直接利用できます。
list_mindmaps
出力ディレクトリにある最近生成されたファイルを、新しい順に一覧表示します。名前が markmap で始まるファイルのみが含まれます。
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
limit | number | 20 | 返すファイルの最大数(1~200) |
{outputDir, files: [{name, filePath, size, mtimeMs, mtime}]} を返します。
get_mindmap
絶対パスを指定して、生成されたマインドマップファイルを取得します。パスは設定済みの出力ディレクトリ内に収まる必要があります(パストラバーサルは拒否されます)。
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
filePath | string | — | マインドマップファイル(HTML または画像)の絶対パス |
JSON {filePath, mimeType, size} を返します。200KB 未満の HTML/SVG の場合は、テキストコンテンツブロックも追加で返します。PNG/JPG の場合はメタデータのみを返し、画像ブロックは返しません。ピクセルデータが必要な場合は、format=png\|jpg を指定して markdown_to_mindmap で再エクスポートしてください。
cleanup_mindmaps
古い(またはすべての)生成済みマインドマップファイルを削除します。
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
maxAgeDays | number | 7 | 指定日数より古いファイルを削除します |
all | boolean | false | true の場合、すべての markmap ファイルを削除します |
dryRun | boolean | false | true の場合、削除せずにプレビューします |
プロンプト:mindmap_from_content
モデルにメモを Markdown として構成し、その後 markdown_to_mindmap を呼び出すよう指示するヘルパープロンプトです。
| パラメーター | 型 | デフォルト | 説明 |
|---|---|---|---|
topic | string | — | マップとして整理するトピックまたは未整理のメモ |
関連プロジェクト
| プロジェクト | 説明 |
|---|---|
| MarkXMind Online | Markdown を使ってオンラインで XMind マインドマップを作成します。試してみる → |
| Obsidian MarkXMind Plugin | Obsidian 内で XMindMark 構文を XMind マインドマップとしてレンダリングします。 |
ライセンス
このプロジェクトは MIT ライセンスのもとで提供されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。