mcpField
M
MCP server for Obsidian (TypeScript + Bun)

MCP server for Obsidian (TypeScript + Bun)

ローカル
github.com/fazer-aiメモリ・ナレッジ5143 週間前に更新

MCP server for Obsidian (TypeScript + Bun) について

Local REST API プラグインを介して Obsidian の保管庫を操作する MCP サーバーです。MCP 対応クライアントからノートの管理や検索、Obsidian コマンドの実行ができます。

主な機能

  1. 01アクティブノートの読み取りと編集
  2. 02定期ノートの管理
  3. 03保管庫ファイルの読み取りと編集
  4. 04Dataview と JsonLogic による検索
  5. 05Obsidian コマンドの実行

活用シーン

  1. 01保管庫のノートを取得して要約
  2. 02トピックに関するノートの検索
  3. 03日次ノートへの内容追加

MCP 対応

Obsidian の状態確認、ノートやファイルの操作、検索、コマンド実行をツールとして MCP クライアントに提供します。Local REST API コミュニティプラグインを通じて Obsidian に接続します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"obsidian-fazer-ai": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/inspector"
]
}
}
}
起動コマンドnpx -y @modelcontextprotocol/inspector

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

パッケージ
npm@modelcontextprotocol/inspector

ツール

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

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

詳細

Obsidian 用 MCP サーバー(TypeScript + Bun)

NPM Version

Claude(または MCP 互換の LLM)が、Local REST API コミュニティプラグインを介して Obsidian の保管庫を操作できる Model-Context-Protocol(MCP)サーバーです。TypeScript で記述され、bunx で実行できます。


✨ コンポーネント

ツール
ツール名説明
obsidian_statusObsidian Local REST API サーバーと認証ステータスの基本情報を返します
obsidian_delete_activeObsidian UI で現在アクティブなノートを削除します
obsidian_get_activeアクティブなノートの全コンテンツを取得します(Markdown または JSON 表示)
obsidian_patch_active見出し、ブロック参照、またはフロントマターのフィールドを基準に、アクティブなノートのコンテンツを挿入、置換、または先頭に追加します
obsidian_post_activeアクティブなノートの末尾に Markdown を追加します
obsidian_put_activeアクティブなノートの本文全体を置き換えます
obsidian_get_commandsObsidian のコマンドパレットで使用できるすべてのコマンドを一覧表示します
obsidian_execute_commandID を指定して Obsidian のコマンドを実行します
obsidian_open_file指定したファイルを Obsidian で開きます(存在しない場合は作成します)。新しいリーフで開くオプションのフラグがあります
obsidian_delete_periodic指定した期間の日次/週次/月次/四半期/年次ノートを削除します
obsidian_get_periodic指定した期間の現在の定期ノートのコンテンツを返します
obsidian_patch_periodic見出し、ブロック参照、またはフロントマターのフィールドを基準に、定期ノートのコンテンツを挿入または置換します
obsidian_post_periodic定期ノートの末尾に Markdown を追加します(存在しない場合は作成します)
obsidian_put_periodic定期ノートの本文全体を置き換えます
obsidian_search_dataview保管庫全体で Dataview-DQL クエリを実行し、一致する行を返します
obsidian_search_json_logic構造化されたノートのメタデータに対して JsonLogic クエリを実行します
obsidian_simple_search前後のコンテキストを任意で含めて、プレーンテキストのあいまい検索を実行します
obsidian_list_vault_root保管庫のルートにあるすべてのファイルとディレクトリを一覧表示します
obsidian_list_vault_directory保管庫内の特定のフォルダーにあるファイルとディレクトリを一覧表示します
obsidian_delete_file保管庫内の特定のファイル(またはディレクトリ)を削除します
obsidian_get_file保管庫内のファイルのコンテンツを取得します(Markdown または JSON 表示)
obsidian_patch_file見出し、ブロック参照、またはフロントマターのフィールドを基準に、任意のファイルのコンテンツを挿入または置換します
obsidian_post_fileファイルの末尾に Markdown を追加します(存在しない場合は作成します)
obsidian_put_file新しいファイルを作成するか、既存ファイルの本文全体を置き換えます

詳細については、Obsidian の Local REST API 仕様をご覧ください。


プロンプトの例
# Summarize the latest “architecture call” note
# (Claude will transparently call list_files_in_vault → get_file_contents)
Get the contents of the last “architecture call” note and summarize them.

# Find all mentions of Cosmos DB
Search for all files where “Azure CosmosDb” is mentioned and explain the context briefly.

# Create a summary note
Summarize yesterday’s meeting and save it as “summaries/2025-04-24-meeting.md”. Add a short intro suitable for e-mail.

⚙️ 設定

Obsidian REST API キー

Obsidian API キーをサーバーに渡す方法は 2 つあります。

  1. サーバー設定(推奨) — Claude(またはその他のクライアント)の MCP サーバー宣言にある env フィールドを介して渡します。
// claude_desktop_config.json
{
  "mcpServers": {
    "@fazer-ai/mcp-obsidian": {
      "command": "bunx",
      "args": ["@fazer-ai/mcp-obsidian@latest"],
      "env": {
        "OBSIDIAN_API_KEY": "your-obsidian-api-key"
      }
    }
  }
}

メモ

@fazer-ai/mcp-obsidian@latest を使用すると、常にサーバーの最新バージョンを実行できます。

  1. または、.env ファイルを使用できます。上記で作成した .env にキーを記述してください。MCP サーバーが実行される作業ディレクトリに配置する必要があります。
環境変数

.env.example ファイルを参考にして、独自の .env ファイルを作成できます。

OBSIDIAN_API_KEY=   # Obtain this from the plugin settings in Obsidian
OBSIDIAN_PROTOCOL=http
OBSIDIAN_HOST=localhost
OBSIDIAN_PORT=27123 # Port the Local REST API plugin is bound to

🛠 開発

Claude Desktop でローカル版を実行する

このリポジトリをクローンした後、Claude の設定を更新すると、npm から取得する代わりにサーバーのローカル版を実行できます。 公開する前に変更をすばやくテストするのに便利です。

メモ

コードに加えた変更は、Claude Desktop アプリを再起動してから反映されることに注意してください。

  1. このリポジトリをクローンし、bun install を実行して依存関係をインストールします。
  2. claude_desktop_config.json を更新して、サーバーのローカル版を指定します。
// claude_desktop_config.json
{
  "mcpServers": {
    "@fazer-ai/mcp-obsidian": {
      "command": "bun",
      "args": ["/path/to/repo/src/index.ts"],
      "env": {
        "OBSIDIAN_API_KEY": "your-obsidian-api-key"
      }
    }
  }
}

重要

ここでは bunx ではなく bun を使用していることに注意してください。

デバッグ

MCP サーバーは stdio 経由で通信するため、通常のデバッガーは役に立ちません。
MCP Inspector を使用してください。

npx @modelcontextprotocol/inspector bun /path/to/repo/src/index.ts

出力された URL を開くと、リクエストを順に確認し、ツールの呼び出しを調べ、ログをリアルタイムで確認できます(通常は http://localhost:6274)。


📦 公開

  1. package.json のバージョンを更新します。
  2. GitHub リリースを作成します。
  3. bun publish を実行します。

ライセンス

MIT – LICENSE を参照してください。

コメント

MCP は初めてですか?

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

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