Obsidian MCP Server について
Obsidian MCP Serverは、ローカルでSSEベースのMCPサーバーを動かし、外部アプリから標準インターフェースでVaultを操作できるObsidianプラグインです。Markdownノートのベクトルインデックスによるセマンティック検索と、ファイル・フォルダー操作を備えています。
主な機能
- 01ローカルSSE MCPサーバーの実行
- 02Markdownノートのベクトル索引化
- 03ノートのセマンティック検索
- 04ファイルの読み書きと管理
- 05埋め込みモデルと索引設定
- 06パターンによるファイル除外
活用シーン
- 01Vault内の内容のセマンティック検索
- 02外部アプリからのノート閲覧・編集
- 03MCPクライアント経由のファイル作成・削除
- 04索引対象ノートの選択
MCP 対応
ObsidianプラグインがローカルSSE MCPサーバーを実行し、ノート検索、ファイル操作、フォルダー管理のツールをMCPクライアントに公開します。ポートと個別ツールはプラグイン設定で変更できます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
Obsidian MCP サーバー
英語 | 中文文档(机翻)
この Obsidian プラグインはローカル MCP(Model Context Protocol)サーバーを実行し、外部アプリケーション(AI アシスタント、スクリプト、その他のツールなど)が標準化されたインターフェースを通じて Obsidian の保管庫とやり取りできるようにします。
機能
- ローカル MCP サーバー: 設定可能なポートで SSE ベースの MCP サーバーを実行します。
- セマンティック検索のための保管庫のインデックス作成:
- Markdown ノートの内容を Orama ベクトルデータベースにインデックス化します。
- 設定可能な OpenAI 互換の埋め込みモデル(OpenAI、互換エンドポイント経由のローカル Ollama モデルなど)を使用して埋め込みを生成します。
- テキストの分割パラメーター(サイズ、オーバーラップ、区切り文字)を設定できます。
.gitignore構文を使用して、特定のファイルやパターンをインデックス作成の対象から除外できます。
- Obsidian との統合:
- コマンド: Obsidian のコマンドパレットから次の操作を実行できます。
- MCP サーバーの起動/停止。
- 保管庫全体のインデックスを再作成します(埋め込みプロバイダーによっては時間がかかり、費用が発生する可能性があります)。
- ベクトルデータベースのインデックスを手動で保存します。
- 設定タブ: 次の項目を設定する専用パネルを利用できます。
- サーバーのポートと自動起動の動作。
- 埋め込みプロバイダーの詳細(API エンドポイント、モデル名、API キー)。
- インデックス作成時のファイル除外パターン。
- 分割パラメーター。
- 埋め込みプロバイダーへの接続確認。
- リボンアイコン: MCP サーバーの実行中/停止中を示すステータスアイコンを Obsidian のリボンに追加します。
- 国際化: Obsidian の言語設定に基づき、英語と中国語のインターフェースに対応します。
- コマンド: Obsidian のコマンドパレットから次の操作を実行できます。
MCP ツール
simple_vector_search:ベクトル埋め込みを使用してノートをセマンティック検索します。count_entries:Orama データベース内のインデックス化されたノートとチャンクの数を数えます。list_files:指定したディレクトリ内のファイルとフォルダーを一覧表示します。read_file:特定のファイルの内容を読み取ります。create_file:新しいファイルを作成します。edit_file:既存のファイル内の特定範囲の行を編集します。delete_file:ファイルを削除します。create_folder:フォルダーを作成します。delete_folder:フォルダーを削除します。
TODO
- 多言語対応(英語、中国語)
- 基本的なファイル/フォルダー操作ツール(作成、読み取り、編集、削除)を提供
- Obsidian テンプレートに基づいてノートを生成するツールを追加
- メタデータ(frontmatter)によるフィルタリングを伴う検索を実装
- 新しいノートや編集内容のライブ追跡と更新を実装
設定
Obsidian 内でプラグインの設定を開き、次の項目を設定します。
- サーバー設定: ポート番号と、Obsidian の起動時にサーバーを自動起動するかどうかを設定します。
- 埋め込みモデル: 選択した OpenAI 互換の埋め込みプロバイダーの URL、モデル名、API キーを入力します。用意されているボタンを使用して接続を確認できます。
- ベクトルストア:
- インデックス作成から特定のファイルやフォルダーを除外するファイルパターン(
.gitignore形式)を定義します。保管庫の.gitignoreファイルからパターンを直接コピーできます。 - 必要に応じて分割パラメーター(サイズ、オーバーラップ、区切り文字)を調整します。ただし、通常はデフォルト値で問題ありません。
- インデックス作成から特定のファイルやフォルダーを除外するファイルパターン(
- MCP ツール: 設定の切り替えボタンを使って、サーバーが提供する各ツール(
read_file、create_folderなど)を個別に有効化または無効化できます。変更を反映するには(設定内のボタンを使用して)サーバーを再起動する必要があります。
使用方法
- 設定: Obsidian の設定パネルでプラグインを設定します。特に埋め込みモデルの詳細を設定してください。
- Vault のインデックス作成: Obsidian のコマンドパレットから「Re-index Vault (MCP Server)」コマンドを実行します。
simple_vector_searchツールを機能させるために必要です。インデックス作成が完了するまで待ってください(通知が表示されます)。 - サーバーの起動: MCP サーバーが実行中であることを確認します。設定で「Auto Start MCP」を有効にするか、「Start MCP Server」コマンドを使用してください。
- 外部ツールへの接続: MCP クライアント(MCP を使用するように設定した AI アシスタントなど)を、設定に表示されるサーバーエンドポイント(例:
http://localhost:8080/sse)に接続します。 - ツールの利用: 接続したクライアントから、利用可能な MCP ツール(
simple_vector_search、list_files、read_fileなど)を使用して Obsidian の Vault を操作します。 - お好みの MCP 対応クライアントで、MCP を SSE モードに設定し、エンドポイントを
http://localhost:8080/sse(または設定したポート)に指定します。これで、このプラグインが公開するツールを使用できます。 - サーバーの停止: 使用しないときは、「Stop MCP Server」コマンドを使用してサーバーを停止します。
開発
このプロジェクトでは TypeScript を使用しています。Node.js と npm がインストールされていることを確認してください。
- リポジトリをクローンします。
npm installを実行して依存関係をインストールします。npm run devを実行してプラグインをコンパイルし、変更を監視します。main.js、manifest.json、styles.cssファイルを、Obsidian Vault の.obsidian/plugins/mcp-server/ディレクトリにコピーします。- Obsidian を再読み込みし、プラグインを有効にします。
ステータスと制限事項
開発中のプロジェクトです。機能しており日常的に使用されていますが、まだ不安定な部分があることをご了承ください。
セキュリティ対策は未検証として扱ってください。サーバーはローカルポート経由で Vault への読み取りおよび書き込みアクセスを公開するため、信頼できるマシンでのみ実行し、ポートは localhost にバインドしたままにしてください。インデックス作成では、ノートの内容が設定した埋め込みエンドポイントに送信されます。ローカルモデルを指定しない限り、これはサードパーティのエンドポイントになります。
問題の報告やプルリクエストを歓迎します。できるだけ迅速に対応するよう努めています。
既知の問題
-
ファイルサイズの上限: Vault に多数のノートが含まれている場合、
orama.jsonファイルが 512MB を超えるとインデックス作成に失敗することがあります。現在、ノート数やチャンク数を減らす以外に回避策はありません。 -
数値の保存: OramaDB は浮動小数点数を生の文字列として保存するため、データベースのサイズが急速に増加する可能性があります。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。