🚀 Obsidian MCP サーバープラグイン
この Obsidian プラグインは、ローカルの MCP(モデルコンテキストプロトコル)サーバーを実行し、外部アプリケーション(AI アシスタント、スクリプト、その他のツールなど)が標準化されたインターフェースを介して、あなたの Obsidian ナレッジベースと相互作用できるようにします。
このプラグインは開発中です。現在は機能は利用可能ですが、いくつかのエラーや未完成の機能が存在する可能性があります。何か問題が発生した場合は、いつでも報告してください。私の TypeScript のスキルが不十分なため、セキュリティや信頼性に関する問題がある可能性があります。GitHub を通じて問題を報告したり、プルリクエストを送信したりすることができ、私はできるだけ早く返信します。
✨ 主な機能
- ローカル MCP サーバー:設定されたポートで、ストリーミングプロトコル(SSE)に基づく MCP サーバーを実行します。
- セマンティック検索をサポートするナレッジベースのインデックス:
- Markdown ノートの内容を Orama ベクトルデータベースにインデックス化します。
- OpenAI 互換の埋め込みモデル(例:OpenAI、互換エンドポイントを介して接続されたローカルの Ollama モデル)を使用して埋め込みを生成します。
- テキストチャンクのパラメータ(サイズ、重複、区切り文字)を設定できます。
.gitignore
のような構文で特定のファイルやパターンを除外できます。
- Obsidian との統合:
- コマンド:Obsidian のコマンドパレットに以下のコマンドを提供します。
- MCP サーバーの起動/停止。
- ナレッジベース全体の再インデックス化(時間がかかる場合があり、埋め込みプロバイダーによっては費用が発生する場合があります)。
- ベクトルデータベースのインデックスを手動で保存。
- 設定パネル:以下の設定を行うための専用の設定タブを提供します。
- サーバーのポートと自動起動の設定。
- 埋め込みモデルの詳細(API エンドポイント、モデル名、API キー)。
- インデックス化時に除外するファイルやパターンの設定。
- チャンクのパラメータ。
- 埋め込みプロバイダーの接続状態の検証。
- 機能アイコン:Obsidian のタイトルバーに、MCP サーバーが起動中か停止中かを示す状態アイコンを追加します。
- 多言語対応:Obsidian の言語設定に応じて、英語と中国語のインターフェースをサポートします。
- コマンド:Obsidian のコマンドパレットに以下のコマンドを提供します。
📦 MCP ツール
- MCP ツール:このプラグインが公開するツールは、設定されたポートを介して外部アプリケーションで使用できます。デフォルトでは、これらのツールは HTTP エンドポイントを介してアクセスできます。
📚 設定方法
-
config.json
ファイルを編集する:- MCP サーバーが使用するポートを指定します。
{ "port": 3000, ... }
-
Obsidian でプラグインを有効にした後、http://localhost:<指定ポート>/api にアクセスして、利用可能なツールを確認します。
🔧 既知の問題と制限
-
ファイルサイズの制限:ナレッジベースに大量のノートが含まれている場合、
orama.json
ファイルが 512MB を超えると、インデックス化が失敗する可能性があります。現時点で解決策はありませんが、ノート/チャンクの数を減らすことで緩和できます。 -
数値の保存:OramaDB は浮動小数点数を生の文字列として保存するため、データベースのサイズが急速に増加する可能性があります。
開発について
このプロジェクトは TypeScript を使用しています。Node.js と npm がインストールされていることを確認してください。
- リポジトリをクローンします。
npm install
を実行して依存関係をインストールします。npm run dev
を実行してプラグインをコンパイルし、ファイルの変更を監視します。- 生成された
main.js
、manifest.json
、styles.css
ファイルをあなたの Obsidian ナレッジベースの.obsidian/plugins/mcp-server/
ディレクトリにコピーします。 - Obsidian を再読み込みし、プラグインを有効にします。
使用方法
-
MCP サーバーを起動する:
- Obsidian でプラグインを有効にした後、http://localhost:<指定ポート>/api にアクセスして、利用可能なツールを確認します。
-
MCP ツールを使用する:
- 外部アプリケーションを設定して、公開された HTTP エンドポイントとやり取りします。
-
MCP サーバーを停止する:
- 「MCP サーバーを停止」コマンドを使用してサービスを停止し、リソースの浪費を避けます。
注意事項
⚠️ 重要提示
埋め込みモデルの性能と動作は、使用する具体的なモデルによって異なる場合があります。
💡 使用建议
OramaDB の保存メカニズムにより、データベースファイルが急速に増加する可能性があります。定期的にファイルサイズを監視し、不要なデータを削除してください。
このプラグインを使用することで、Obsidian ナレッジベースを外部ツールやサービスと簡単に統合し、その機能と適用シーンを拡張することができます。







