SoloMD について
x
主な機能
- 01x
活用シーン
- 01x
MCP 対応
x
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
solomd-mcp — SoloMD ボルト用の Model Context Protocol サーバー
solomd-mcp を使うと、Claude Code、Codex CLI、Cursor、Continue、その他あらゆる
MCP クライアントから、SoloMD の Markdown ノートフォルダーを読み取り(必要に応じて編集も)できます。ボルトが、アシスタントから呼び出せるファーストクラスのツールになります。
これは スタンドアロンの Rust バイナリです。デスクトップアプリにはコピーが同梱されています(macOS の場合:/Applications/SoloMD.app/Contents/MacOS/solomd-mcp)が、アプリ自体が実行することはありません。MCP クライアントが起動したときにのみ実行されます。アプリと同じバージョンが表示されます(solomd-mcp --version)。
solomd-mcp --workspace /Users/me/Documents/Notes
# stdin / stdout: JSON-RPC 2.0 (stdio transport, the default)
# stderr: human logs (use --verbose for debug)
複数のワークスペース(v4.0+)
ボルトごとに --workspace を指定します。各値には、パスだけ(エイリアスはパスの末尾のコンポーネントが既定値になります)、または <alias>=<path> を指定します。
solomd-mcp \
--workspace work=/Users/me/Documents/Work \
--workspace home=/Users/me/Documents/Home
最初のワークスペースが 既定 になります。明示的な workspace 引数を指定しないツール呼び出しは、最初のワークスペースに解決されます。既存の単一の --workspace を使うクライアントは、変更なしで引き続き動作します。既定以外のワークスペースを対象にする必要があるツールは、追加の workspace 引数を渡します。
// Default (first registered) workspace:
{ "name": "list_notes", "arguments": {} }
// Explicit alias:
{ "name": "list_notes", "arguments": { "workspace": "home" } }
// Or by absolute path (must match a registered workspace):
{ "name": "list_notes", "arguments": { "workspace": "/Users/me/Documents/Home" } }
各ワークスペースの AutoGit 履歴(autogit_log、autogit_diff、autogit_rollback)は独立しています。ワークスペースごとの .git リポジトリは、各呼び出し時に必要に応じて開かれます。
公開されるツール
| ツール | 説明 | 利用条件 |
|---|---|---|
list_notes | Vault を巡回し、メタデータ(パス、名前、タイトル、更新日時、サイズ、概要)を返します。デフォルトでは、更新日時の新しい順に 100 件のノートを返します。 | 常に |
read_note | 1 つのノートの全内容と、解析されたフロントマター、見出し、タグ、外部への [[wikilinks]] を返します。 | 常に |
search | 部分一致または正規表現による検索です。PATH 上にある場合は ripgrep を使用し、それ以外の場合は Rust の正規表現による走査を行います。ヒット数は最大 200 件で、前後 3 行のコンテキストを含みます。 | 常に |
get_backlinks | 指定されたノートに wikilink を張っている箇所をすべて返します(ファイル名部分は大文字と小文字を区別しません)。 | 常に |
list_tags | Vault 全体のタグ数を集計します。本文中の #tag とフロントマターの tags: が対象です。 | 常に |
get_outline | 1 つのノートの見出し構成(レベル 1~6、テキスト、行番号)を返します。 | 常に |
list_tasks | Vault 内の - [ ] / - [x] チェックボックスをすべて、ファイル、行番号、完了状態とともに返します。done で絞り込めます。 | 常に |
autogit_log | AutoGit リポジトリにある 1 つのノートのコミット履歴を、新しい順に返します。 | 常に |
autogit_diff | AutoGit の 2 つのコミット間における、1 つのノートの統合差分を返します。 | 常に |
sync_status | .solomd/sync.json から GitHub 同期状態(リモート、ブランチ、暗号化)を返します。 | 常に |
share_url | リンクされたリポジトリ内のノートについて、公開されている solomd.app/share URL を返します。 | 常に |
read_agent_trace | .solomd/agent-runs/<run_id>/trace.jsonl から 1 つのエージェント実行のステップを返します。不明な run id を指定するとエラーになります。 | 常に |
write_note | .md / .markdown / .txt ノートを作成します(ワークスペース内に存在しないフォルダーは作成されます)。既存のノートを置き換えるには allow_overwrite: true が必要です。 | --allow-write |
append_to_note | 既存のノートにテキストを追加します(改行を適切に処理します)。 | --allow-write |
autogit_rollback | AutoGit のコミットからノートの内容を復元します。 | --allow-write |
export_note | ノートを html / md / txt / docx にエクスポートします。output_path はワークスペース外にも指定できます(保存先フォルダーが存在する必要があります)。既存ファイルを置き換えるには overwrite: true が必要です。 | --allow-write。また、Node バックエンドが見つかった場合にのみ一覧に表示されます(下記参照) |
ツールは 16 個あります。デフォルトでは読み取り専用です。書き込みツールも MCP の tools/list レスポンスに含まれるため、クライアントに表示できますが、オプトインするまでは呼び出しに失敗し、「--allow-write を指定して再起動してください」という明確なメッセージが表示されます。
すべての行番号(get_outline、get_backlinks、read_note の見出しと wikilink、list_tasks、search)は、ディスク上のファイルにおける 1 始まりの行番号です。フロントマターも含まれるため、各ツールの結果とエディター上の表示が一致します。search の列番号はバイト数ではなく文字数を数えます。
export_note には Node.js と SoloMD のソースコードチェックアウトが必要です。 アプリの node_modules とともに app/scripts/solomd-export.mjs(solomd export と同じエンジン)を実行します。インストール済みアプリにはどちらも含まれないため、node が PATH 上にあり、スクリプトが見つかった場合にのみツールが一覧に表示されます。スクリプトは SOLOMD_EXPORT_SCRIPT=/path/to/solomd/app/scripts/solomd-export.mjs で指定するか、app/ 内で pnpm install を実行済みのチェックアウト内にバイナリまたは作業ディレクトリがある場合に自動で検出されます。
インストール
ワンラインインストーラー(macOS / Linux)
curl -fsSL https://raw.githubusercontent.com/zhitongblog/solomd/main/scripts/install-mcp.sh | bash
プラットフォームに対応したバイナリを最新の GitHub リリースからダウンロードし、/usr/local/bin/solomd-mcp に配置します(システムパスに書き込めない場合は ~/.local/bin/solomd-mcp を使用します)。
Cargo
cargo install --git https://github.com/zhitongblog/solomd solomd-mcp
手動インストール
github.com/zhitongblog/solomd/releases
から適切なアーカイブを取得し、solomd-mcp を展開して PATH 上に配置します。
接続する
Claude Code
最も簡単なのは CLI を使う方法です。ユーザースコープの設定(~/.claude.json)を書き込みます。
claude mcp add --scope user solomd-vault -- \
solomd-mcp --workspace /Users/me/Documents/Notes
サーバーのスコープを 1 つのプロジェクトに限定するには、プロジェクトのルートに .mcp.json を配置します。
{
"mcpServers": {
"solomd-vault": {
"command": "solomd-mcp",
"args": ["--workspace", "/Users/me/Documents/Notes"]
}
}
}
複数ワークスペースのプロファイル(1 つの MCP サーバーで複数の Vault を使用):
{
"mcpServers": {
"solomd-vaults": {
"command": "solomd-mcp",
"args": [
"--workspace", "work=/Users/me/Documents/Work",
"--workspace", "home=/Users/me/Documents/Home"
]
}
}
}
書き込みを有効にするには:
{
"mcpServers": {
"solomd-vault": {
"command": "solomd-mcp",
"args": ["--workspace", "/Users/me/Documents/Notes", "--allow-write"]
}
}
}
Codex CLI
~/.codex/config.toml:
[mcp_servers.solomd-vault]
command = "solomd-mcp"
args = ["--workspace", "/Users/me/Documents/Notes"]
Cursor / Continue / generic
stdio 経由で MCP を利用できるものなら何でも動作します。command を
solomd-mcp に設定し、--workspace <path> を渡してください。solomd CLI
(scripts/install-cli.sh)を使えば、これを自動で設定できます。solomd mcp install
は見つかったすべての AI クライアントにエントリーを書き込み、solomd mcp-config は
その設定を出力します。
ホスト型クライアント(Streamable HTTP)
ローカルバイナリを起動できないクライアント(Smithery、Claude.ai remote MCP、ChatGPT connectors)では、HTTP トランスポートを実行してください。
solomd-mcp --workspace /Users/me/Documents/Notes \
--transport http --bind 127.0.0.1:8765 --auth-token "$TOKEN"
デフォルトではループバックにバインドされるため、--bind を変更しない限り、
マシンの外部からアクセスすることはできません。--auth-token(または
SOLOMD_MCP_TOKEN)を指定すると、すべてのリクエストで
Authorization: Bearer <token> の送信が必要になります。指定しない場合、エンドポイントには
そのアドレスに到達できるすべてのユーザーがアクセスできます。
CLI リファレンス
solomd-mcp [OPTIONS] --workspace <ALIAS=DIR | DIR>...
--workspace <ALIAS=DIR | DIR>
Path to a notes folder. Required. Canonicalised.
Repeat for multi-workspace mode. Form: `<alias>=<path>`
or just `<path>` (alias defaults to the path's last
component). The first workspace is the default — tool
calls without an explicit `workspace` argument resolve
to it (back-compat for single-workspace clients).
--allow-write Enable write_note + append_to_note + autogit_rollback
+ export_note. Off by default.
--transport <stdio|http>
stdio (default) or Streamable HTTP.
--bind <ADDR> HTTP listen address (default 127.0.0.1:8765).
--auth-token <TOKEN>
HTTP bearer token [env: SOLOMD_MCP_TOKEN].
-v, --verbose Debug-level stderr logs.
-V, --version Print version.
-h, --help Print help.
より細かく制御するには、SOLOMD_MCP_LOG=trace(または
tracing-subscriber の任意のフィルター式)を設定してください。
安全性
- すべての入力パスは、読み書きの前に正規化され、ワークスペース内にあることが確認されます。
..セグメントと、ワークスペース外の絶対パスはどちらも拒否されます。ワークスペース外への書き込みが可能な唯一のツールはexport_noteで、--allow-writeが指定されている場合に限られます。フォルダーを作成することはなく、呼び出しでoverwrite: trueが渡されない限り、既存のファイルを置き換えることもありません。 - SoloMD デスクトップアプリのウォッチャー/インデックスはここでは使用されません。 これはステートレスな呼び出しごとのサーバーで、ファイルシステムを 遅延走査します。
list_notesは各ファイルの先頭 8 KB(タイトルと概要に十分なサイズ)だけを読み取るため、 大きなノートが何千件もある保管庫でも列挙にかかる負荷はわずかです。ファイルの全内容はread_noteの実行時にのみ読み込まれます。
検証
# Roundtrip handshake: initialize → tools/list.
{
printf '%s\n' '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-11-25","capabilities":{},"clientInfo":{"name":"smoketest","version":"0"}}}'
printf '%s\n' '{"jsonrpc":"2.0","method":"notifications/initialized"}'
printf '%s\n' '{"jsonrpc":"2.0","id":2,"method":"tools/list"}'
sleep 1
} | solomd-mcp --workspace ~/Documents/Notes
export_note の Node バックエンドが利用できない場合は 15 個、それ以外の場合は 16 個のツールが
一覧表示されます。
ライセンス
MIT — SoloMD と同じです。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。