mcpField
M
MCP server for Obsidian

MCP server for Obsidian

ローカル
github.com/MarkusPfundsteinメモリ・ナレッジ4.5k8 週間前に更新

MCP server for Obsidian について

Obsidian Local REST API コミュニティプラグイン経由で Obsidian のボルトを操作する MCP サーバーです。AI クライアントからノートの読み取り、検索、編集を行いたいユーザー向けで、Claude Desktop などで利用します。

主な機能

  1. 01ボルト内のファイルとディレクトリの一覧表示
  2. 02単一ノートの内容の読み取り
  3. 03ボルト全体のドキュメントの全文検索
  4. 04見出し、ブロック参照、frontmatter に基づくコンテンツ挿入
  5. 05新規または既存ファイルへの追記
  6. 06ボルトからのファイルとディレクトリの削除

活用シーン

  1. 01会議メモを要約して新しいノートを作成
  2. 02ボルト内で特定のトピックを検索し文脈を説明
  3. 03ノートの特定の見出し配下にコンテンツを挿入

MCP 対応

本プロジェクトは MCP サーバーであり、ボルトのファイル読み取り、検索、編集機能をツールとして MCP クライアントに公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"obsidian": {
"command": "uvx",
"args": [
"mcp-obsidian"
],
"env": {
"OBSIDIAN_API_KEY": "<OBSIDIAN_API_KEY>",
"OBSIDIAN_HOST": "<OBSIDIAN_HOST>",
"OBSIDIAN_PORT": "<OBSIDIAN_PORT>"
}
}
}
}
起動コマンドuvx mcp-obsidian
設定が必要な環境変数
OBSIDIAN_API_KEYシークレット
OBSIDIAN_HOST
OBSIDIAN_PORT

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypimcp-obsidian

ツール

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

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

詳細

Obsidian 用 MCP サーバー

Local REST API コミュニティプラグインを介して Obsidian と連携する MCP サーバーです。

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
  • mcp Python SDK >=1.1.0,<2.0.0(pyproject.toml で固定)。mcp-obsidian は現在、mcp 1.x の低レベル Server API(@app.list_tools() / @app.call_tool())を使ってツールハンドラーを登録しています。この API は mcp 2.0 で削除されたため、制約のない mcp>=2.0 をインストールすると、インポート時に AttributeError: 'Server' object has no attribute 'list_tools' が発生してクラッシュします。

設定

Obsidian REST API キー

Obsidian REST API キーを環境に設定する方法は 2 つあります。

  1. サーバー設定に追加する(推奨)
{
  "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 を使って場所を調べ、上記の設定にフルパスを貼り付けてください。

  1. 作業ディレクトリに .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 をローカルにインストールする代わりに、コンテナ内でサーバーを実行できます。

  1. .env.example を .env にコピーし、Obsidian REST API キーを入力します。
cp .env.example .env

デフォルトでは OBSIDIAN_HOST は host.docker.internal に設定されています。これはコンテナ内からホストマシンを指し示します(Linux、Mac、Windows で動作します)。

  1. イメージをビルドします。
docker compose build
  1. 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 を押してください)

開発

ビルド

配布用にパッケージを準備するには:

  1. 依存関係を同期してロックファイルを更新します。
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

コメント

MCP は初めてですか?

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

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