MCP server for Obsidian (TypeScript + Bun) について
Local REST API プラグインを介して Obsidian の保管庫を操作する MCP サーバーです。MCP 対応クライアントからノートの管理や検索、Obsidian コマンドの実行ができます。
主な機能
- 01アクティブノートの読み取りと編集
- 02定期ノートの管理
- 03保管庫ファイルの読み取りと編集
- 04Dataview と JsonLogic による検索
- 05Obsidian コマンドの実行
活用シーン
- 01保管庫のノートを取得して要約
- 02トピックに関するノートの検索
- 03日次ノートへの内容追加
MCP 対応
Obsidian の状態確認、ノートやファイルの操作、検索、コマンド実行をツールとして MCP クライアントに提供します。Local REST API コミュニティプラグインを通じて Obsidian に接続します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Obsidian 用 MCP サーバー(TypeScript + Bun)
Claude(または MCP 互換の LLM)が、Local REST API コミュニティプラグインを介して Obsidian の保管庫を操作できる Model-Context-Protocol(MCP)サーバーです。TypeScript で記述され、bunx で実行できます。
✨ コンポーネント
ツール
| ツール名 | 説明 |
|---|---|
| obsidian_status | Obsidian Local REST API サーバーと認証ステータスの基本情報を返します |
| obsidian_delete_active | Obsidian UI で現在アクティブなノートを削除します |
| obsidian_get_active | アクティブなノートの全コンテンツを取得します(Markdown または JSON 表示) |
| obsidian_patch_active | 見出し、ブロック参照、またはフロントマターのフィールドを基準に、アクティブなノートのコンテンツを挿入、置換、または先頭に追加します |
| obsidian_post_active | アクティブなノートの末尾に Markdown を追加します |
| obsidian_put_active | アクティブなノートの本文全体を置き換えます |
| obsidian_get_commands | Obsidian のコマンドパレットで使用できるすべてのコマンドを一覧表示します |
| obsidian_execute_command | ID を指定して 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 つあります。
- サーバー設定(推奨) — 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を使用すると、常にサーバーの最新バージョンを実行できます。
- または、
.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 アプリを再起動してから反映されることに注意してください。
- このリポジトリをクローンし、
bun installを実行して依存関係をインストールします。 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)。
📦 公開
package.jsonのバージョンを更新します。- GitHub リリースを作成します。
bun publishを実行します。
ライセンス
MIT – LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。