MCP server for Obsidian について
Obsidian Local REST API コミュニティプラグイン経由で Obsidian のボルトを操作する MCP サーバーです。AI クライアントからノートの読み取り、検索、編集を行いたいユーザー向けで、Claude Desktop などで利用します。
主な機能
- 01ボルト内のファイルとディレクトリの一覧表示
- 02単一ノートの内容の読み取り
- 03ボルト全体のドキュメントの全文検索
- 04見出し、ブロック参照、frontmatter に基づくコンテンツ挿入
- 05新規または既存ファイルへの追記
- 06ボルトからのファイルとディレクトリの削除
活用シーン
- 01会議メモを要約して新しいノートを作成
- 02ボルト内で特定のトピックを検索し文脈を説明
- 03ノートの特定の見出し配下にコンテンツを挿入
MCP 対応
本プロジェクトは MCP サーバーであり、ボルトのファイル読み取り、検索、編集機能をツールとして MCP クライアントに公開します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Obsidian 用 MCP サーバー
Local REST API コミュニティプラグインを介して Obsidian と連携する MCP サーバーです。
コンポーネント
ツール
このサーバーは、Obsidian と連携する複数のツールを実装しています。
- list_files_in_vault:Obsidian ボルトのルートディレクトリにあるすべてのファイルとディレクトリを一覧表示します
- list_files_in_dir:指定した Obsidian ディレクトリにあるすべてのファイルとディレクトリを一覧表示します
- get_file_contents:ボルト内の単一ファイルの内容を返します。
- search:指定したテキストクエリに一致するドキュメントを、ボルト内のすべてのファイルから検索します
- patch_content:見出し、ブロック参照、または frontmatter フィールドを基準に、既存のノートに内容を挿入します。
- append_content:ボルト内の新規または既存のファイルに内容を追加します。
- delete_file:ボルトからファイルまたはディレクトリを削除します。
プロンプトの例
まず Claude に Obsidian を使うよう指示することをおすすめします。そうすると、常にツールを呼び出すようになります。
次のようなプロンプトを使ってください。
- 直近のアーキテクチャに関する通話ノートの内容を取得して要約してください
- Azure CosmosDb について言及しているすべてのファイルを検索し、どのような文脈で言及されているのかを簡潔に説明してください
- 直近の会議ノートを要約して、新しいノート
summary meeting.mdにまとめてください。メールで送れるように、導入文も追加してください。
要件
- Python >= 3.11
mcpPython SDK>=1.1.0,<2.0.0(pyproject.tomlで固定)。mcp-obsidianは現在、mcp1.x の低レベルServerAPI(@app.list_tools()/@app.call_tool())を使ってツールハンドラーを登録しています。この API はmcp2.0 で削除されたため、制約のないmcp>=2.0をインストールすると、インポート時にAttributeError: 'Server' object has no attribute 'list_tools'が発生してクラッシュします。
設定
Obsidian REST API キー
Obsidian REST API キーを環境に設定する方法は 2 つあります。
- サーバー設定に追加する(推奨)
{
"mcp-obsidian": {
"command": "uvx",
"args": [
"mcp-obsidian"
],
"env": {
"OBSIDIAN_API_KEY": "<your_api_key_here>",
"OBSIDIAN_HOST": "<your_obsidian_host>",
"OBSIDIAN_PORT": "<your_obsidian_port>"
}
}
}
Claude が uv / uvx の場所を検出できない場合があります。その場合は which uvx を使って場所を調べ、上記の設定にフルパスを貼り付けてください。
- 作業ディレクトリに
.envファイルを作成し、次の必須変数を設定する:
OBSIDIAN_API_KEY=your_api_key_here
OBSIDIAN_HOST=your_obsidian_host
OBSIDIAN_PORT=your_obsidian_port
注:
- API キーは Obsidian プラグインの設定で確認できます
- 指定しない場合のデフォルトポートは 27124 です
- 指定しない場合のデフォルトホストは 127.0.0.1 です
クイックスタート
インストール
Obsidian REST API
Obsidian REST API コミュニティプラグインを実行する必要があります:https://github.com/coddingtonbear/obsidian-local-rest-api
設定でインストールして有効にし、API キーをコピーしてください。
Claude Desktop
MacOS の場合:~/Library/Application\ Support/Claude/claude_desktop_config.json
Windows の場合:%APPDATA%/Claude/claude_desktop_config.json
開発中/未公開サーバーの設定
{
"mcpServers": {
"mcp-obsidian": {
"command": "uv",
"args": [
"--directory",
"<dir_to>/mcp-obsidian",
"run",
"mcp-obsidian"
],
"env": {
"OBSIDIAN_API_KEY": "<your_api_key_here>",
"OBSIDIAN_HOST": "<your_obsidian_host>",
"OBSIDIAN_PORT": "<your_obsidian_port>"
}
}
}
}
公開済みサーバーの設定
{
"mcpServers": {
"mcp-obsidian": {
"command": "uvx",
"args": [
"mcp-obsidian"
],
"env": {
"OBSIDIAN_API_KEY": "<YOUR_OBSIDIAN_API_KEY>",
"OBSIDIAN_HOST": "<your_obsidian_host>",
"OBSIDIAN_PORT": "<your_obsidian_port>"
}
}
}
}
Docker
uv/Python をローカルにインストールする代わりに、コンテナ内でサーバーを実行できます。
.env.exampleを.envにコピーし、Obsidian REST API キーを入力します。
cp .env.example .env
デフォルトでは OBSIDIAN_HOST は host.docker.internal に設定されています。これはコンテナ内からホストマシンを指し示します(Linux、Mac、Windows で動作します)。
- イメージをビルドします。
docker compose build
- MCP クライアントをコンテナに接続します。MCP は stdio 経由で JSON-RPC を通信するため、クライアントは stdin を接続し、疑似 TTY を使わずに実行する必要があります。
docker compose upではなく、docker compose run --rm -Tを使用してください。
{
"mcpServers": {
"mcp-obsidian": {
"command": "docker",
"args": [
"compose",
"-f",
"<dir_to>/mcp-obsidian/docker-compose.yml",
"run",
"--rm",
"-T",
"mcp-obsidian"
]
}
}
}
コンテナが起動することを確認するために、手動で実行することもできます。
docker compose run --rm -T mcp-obsidian
(stdin で JSON-RPC メッセージが届くまで待機します。終了するには Ctrl+C を押してください)
開発
ビルド
配布用にパッケージを準備するには:
- 依存関係を同期してロックファイルを更新します。
uv sync
デバッグ
MCP サーバーは stdio 経由で実行されるため、デバッグが難しい場合があります。最適なデバッグ体験のために、MCP Inspector の使用を強くおすすめします。
次のコマンドを使って、npm 経由で MCP Inspector を起動できます。
npx @modelcontextprotocol/inspector uv --directory /path/to/mcp-obsidian run mcp-obsidian
起動すると、Inspector にブラウザーでアクセスできる URL が表示され、デバッグを開始できます。
次のコマンドを使って、サーバーのログを確認することもできます。
tail -n 20 -f ~/Library/Logs/Claude/mcp-server-mcp-obsidian.log
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。