mcpField
O
Obsidian Notes

Obsidian Notes

ローカル
github.com生産性02 週間前に更新

Obsidian Notes について

Obsidian Notesは、ローカルのObsidian vaultをタイトル、タグ、語句、リンク付きノートから検索する読み取り専用のMCPサーバー兼CLIです。埋め込みを使わない決定的な検索に加え、Ollamaを使う質問コマンドも備えています。

主な機能

  1. 01タイトル、タグ、語句によるノート検索
  2. 02深さを指定したWikiリンクの追跡
  3. 03vaultのインデックス作成
  4. 04読み取り専用の決定的な検索
  5. 05Ollamaによる質問とチャット(任意)

活用シーン

  1. 01プロジェクトタグに関連するノートの検索
  2. 02起点ページからリンク先ノートを追跡
  3. 03埋め込みベースのRAGを使わずvaultを検索
  4. 04vaultのノートに基づく質問へのOllamaの回答

MCP 対応

MCPクライアントにvaultの検索ツールとインデックスツールを公開します。デフォルトはstdioで、`/mcp` のStreamable HTTPにも切り替えられます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ
パッケージ
cargomcp-obsidian0.1.0

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Claude Desktop にインストールする

最新リリースからお使いの Mac または PC 用のバンドルをダウンロードして開き、Vault を指定してください。

「Not signed」について

バンドルには署名がありません。.mcpb ではこれは通常のことです。mcpb pack はデフォルトでは署名せず、署名するには別途、自分で用意した証明書を使って明示的に設定する必要があります。ダウンロードしたファイルに対して mcpb info を実行すると WARNING: Not signed と表示されますが、無視してかまいません。拡張機能のインストールや使用には影響しません。

上流のツールに現在不具合があるため、署名はまだ有効にしていません。mcpb sign が Claude Desktop にインストールを拒否されるバンドルを生成し(#278)、mcpb verify は署名済みのバンドルを未署名と判定します(#276)。これらが修正され次第、署名を追加する予定です。

Obsidian を使用する MCP ツール

  • RAG よりも、タグと検索を使ってローカル情報を探すほうがよいという考えに基づいています。
  • Google が推奨している Open Knowledge Format(OKF)を使えば、さらに多くのことができます。主に Markdown が使われています。
  • Markdown、ノート、ローカル情報へのアクセス性の向上を考えると、LLM と Obsidian をつなぐアプリがあるべきだと思います。
目標
  • タイトル、タグ、ノート内のリンク先を使って、ツールがノートを確認できるようにする
  • LLM がノートを作成するための Vault として使う。問題を解決して記録し、新しい問題が似ているかどうかを確認できるようにする
対象外
  • アプリ用の完全な GUI インターフェースを作成すること
  • RAG を使えるようにすること

インストール

cargo install mcp-obsidian

次に、Vault を指定します。

mcp-obsidian --vault ~/vault index      # print the index, no model involved
mcp-obsidian --vault ~/vault serve      # stdio MCP server for a desktop host
mcp-obsidian --vault ~/vault serve --http   # Streamable HTTP on 127.0.0.1:8000/mcp

マーケットプレイス

crates.io で公開済み: https://crates.io/crates/mcp-obsidian

cargo install mcp-obsidian
mcp-obsidian --vault ~/vault serve

このクレートはデュアルライセンスで、README にレジストリ所有権トークンが記載されているため、追加の変更なしで Official MCP Registry に掲載し、MCPB バンドルとして配布することもできます。

  • PUBLISHING.md — リリース手順と、各ディレクトリで必要となるアカウント。
  • DEPLOYMENT.md — VPS 上で公開 HTTPS URL の背後にホストする方法、ならびに Smithery と ChatGPT のディレクトリへの登録申請と、必要な OAuth について。

以下の行は、レジストリがこのクレートの README と照合するパッケージ所有権トークンです。crates.io は HTML コメントを削除するため、プレーンテキストで表示される必要があります。また、server.json の name と一致している必要があります。

mcp-name: io.github.moreno-omar/mcp-obsidian

デモ

以下はすべて、1 台のデスクトップ上でローカルに実行します。NVIDIA RTX 4060 Ti(16 GB)で Ollama 経由の gemma4:e4b を動作させ、ディスクから Vault を読み込みます。API キーもクラウドへの接続も不要で、データがマシンの外に出ることはありません。ネットワーク通信は localhost:11434 のみです。

ask — 1 つのプロンプトに Vault から回答

mcp-obsidian ask demo

chat — 同じやり取りを対話形式で

mcp-obsidian chat demo

プレビュー表示内容
vault indexindex:リンク数とタグを添えて、すべてのノートを表として表示します。
chat outputchat:ウェルカムパネル、ツールの実行履歴、Markdown 形式で表示された回答です。
list comprehensionsPhase 3 の終了条件に関する Vault 内の資料、python/python_oneliners/list comprehensions.md です。
フル機能の TUI ではなく CLI なので高速です

mcp-obsidian は出力しますが、描画はしません。代替画面もイベントループもフレームごとの再描画もありません。色とレイアウトは richrs で回答ごとに一度だけ計算され、標準出力に書き込まれた後、プロセスは終了します。上記のマシンでの測定結果は次のとおりです。

手順測定値
490 件のノートがある Vault のインデックス作成(起動時に一度)約 60 ms
Vault クエリ(search、index、MCP ツール呼び出し)約 60 ms。モデルは関与しません
ask の全往復(事前検索+ツールのラウンド+回答)数秒。遅いのはローカルモデルだけです

フル機能の TUI では、フレームごとにレイアウト処理とターミナルの再描画が発生し、ストリーミングチャット UI ではさらにトークンごとの処理が加わります。ここでは回答ごとにターミナルへ一度書き込むだけで、処理時間をすべてモデルに割り当てるため、検索結果はすぐに得られ、GPU の処理が終わると回答が表示されます。また、出力は通常の Unix ストリームのままです。そのため、ask "…" > answer.md、| grep、NO_COLOR=1、FORCE_COLOR=1 はすべて期待どおりに動作します。

参考資料

ステータス

フェーズ 1 完了(2026-09-28):CLI から Ollama に接続でき、ツールセットが MCP 経由で提供されます。

フェーズ 2 完了(2026-10-01):検索レイヤーと Ollama レイヤーをライブラリターゲットの背後にある小さなモジュール(src/vault/、src/ollama_client/)に分割し、動作を固定する 32 件のテストを追加しました。

フェーズ 3 完了(2026-10-09):ask は Vault の内容に基づいて回答します。命令型のツールプロトコルと決定論的な事前検索により、モデルがツールを呼び出さない場合でも、関連するノートが得られます。ask、chat、doctor、index、search、serve の出力は Tokyo Night テーマの richrs で表示されます(パイプへの出力時は色を自動的にオフにします)。

フェーズ 4 進行中(2026-10-09):crates.io に mcp-obsidian v0.1.0 として公開済み(cargo install mcp-obsidian)。バイナリはデュアルライセンスで、レジストリのメタデータを含みます。server.json は Official MCP Registry の検証に合格し、scripts/build_mcpb.sh は Smithery 用のスキーマ準拠 MCPB バンドルを生成します。また、serve --http により、リモートホスト向けの Streamable HTTP トランスポートが追加されます。公開 HTTPS URL の背後でホストする方法と、Smithery および ChatGPT ディレクトリに掲載する方法については DEPLOYMENT.md を、詳細については logs/2026-10-09_mcp_obsidian_phase4_publishing.md を参照してください。

仕組みとその理由については SUMMARY.md、コードの読み方と変更箇所については ARCHITECTURE.md、実装の比較については logs/MCP_notes.md、完了済みの作業と今後の作業については TASKS.md を参照してください。

使い方

cargo build --release

# vault-only commands (no model needed)
./target/release/mcp-obsidian --vault ~/vault index
./target/release/mcp-obsidian --vault ~/vault search tag project --match-all
./target/release/mcp-obsidian --vault ~/vault search term "token budget"
./target/release/mcp-obsidian --vault ~/vault search links index --depth 2
./target/release/mcp-obsidian --vault ~/vault search note projects/alpha

# with Ollama (defaults: http://localhost:11434/v1, gemma4:e4b)
./target/release/mcp-obsidian --vault ~/vault doctor
./target/release/mcp-obsidian --vault ~/vault ask "what do my notes say about token budgets?" --trace
./target/release/mcp-obsidian --vault ~/vault ask "…" --no-prefetch   # no pre-search, tools only
./target/release/mcp-obsidian --vault ~/vault chat

# as an MCP server for a desktop host
./target/release/mcp-obsidian --vault ~/vault serve
./target/release/mcp-obsidian --vault ~/vault serve -vv   # log each tool call to stderr

# as an MCP server over Streamable HTTP (for a host that cannot spawn a process)
./target/release/mcp-obsidian --vault ~/vault serve --http            # 127.0.0.1:8000/mcp
./target/release/mcp-obsidian --vault ~/vault serve --http 0.0.0.0:8000
./target/release/mcp-obsidian --vault ~/vault serve --http 0.0.0.0:8000 \
  --allow-host vault.example.com                                      # accept that Host header

serve はデフォルトで stdio を使用し、標準出力を JSON-RPC チャネルとして維持します。--http を指定すると、代わりに /mcp で Streamable HTTP に切り替わります。HTTP モードには認証機能がありません。デフォルトではループバックにバインドされ、rmcp はループバック以外の Host ヘッダーを拒否します。そのため、一般公開する前にリバースプロキシを前段に設置してください。ChatGPT/プラグインディレクトリへの掲載に追加で必要な要件については、PUBLISHING.md を参照してください。

編集してすぐに使えるホスト設定が claude_desktop_config.example.json にあります。環境変数 OBSIDIAN_VAULT、OLLAMA_URL、OLLAMA_MODEL、RUST_LOG を設定するとデフォルト値が上書きされます。--api native を指定すると、/v1/chat/completions から /api/chat に切り替わります。色はターミナルへの出力時にのみ表示されます。NO_COLOR=1 で無効化でき、パイプへの出力時は FORCE_COLOR=1 で強制できます。

回答はターミナル幅に合わせて折り返され、継続行は箇条書き記号の下ではなく、テキストの下に揃います。リダイレクトされた出力は意図的に折り返されません。そのため、ask "…" > answer.md ではモデル独自の行構成が維持されます。

上記のコマンドを試すためのサンプル Vault が samples/vault/ にあります。

テスト

cargo test                            # vault + ollama client; no model needed
cargo test -- --ignored live_client   # needs a running Ollama with the model pulled

ライセンス

Apache License, Version 2.0または MIT licenseのいずれかを選択してライセンスを適用できます。

明示的に別段の意思を示さない限り、Apache-2.0ライセンスで定義されるとおり、このクレートへの収録を目的としてあなたが意図的に提出したすべての貢献は、追加の条項や条件なしに、上記の両方のライセンスで適用されます。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。