Obsidian MCP サーバー
LLMがObsidian Vaultと連携できるように設計されたモデルコンテキストプロトコルサーバーです。TypeScriptで構築され、安全なAPI通信、効率的なファイル操作、包括的な検索機能を備えており、AIアシスタントはシンプルで柔軟なツールインターフェースを通じてナレッジベースをシームレスに管理できます。
モデル コンテキスト プロトコル (MCP) により、AI モデルは標準化されたインターフェースを通じて外部のツールやリソースと対話できるようになります。
Obsidian のLocal REST API プラグインが必要です。
📋 目次
機能|インストール|設定|ツール|リソース|プロジェクト構造|貢献|公開|ライセンス
✨ 特徴
- ファイル操作: 検証、リソース監視、エラー処理を備えたアトミックなファイル/ディレクトリ操作。
- 検索システム: 構成可能なコンテキスト、高度な JsonLogic クエリ、glob パターン、および frontmatter フィールドのサポートによるフルテキスト検索。
- プロパティ管理: YAML フロントマター解析、インテリジェントなマージ、自動タイムスタンプ、カスタム フィールドのサポート。
- セキュリティとパフォーマンス: API キー認証、レート制限、SSL オプション、リソース監視、正常なシャットダウン。
🚀 インストール
注: Obsidian で Node.js とLocal REST API プラグインが有効になっている必要があります。
オプション 1: クローンとビルド (開発または直接使用用)
- Obsidian でローカル REST API プラグインを有効にします。
- リポジトリをクローンし、依存関係をインストールして、プロジェクトをビルドします。
- 環境変数を使用してサーバーを構成します (以下の構成セクションを参照)。
- MCPクライアント設定(例:
claude_desktop_config.json
またはcline_mcp_settings.json
)にサーバーを追加してください。詳細は設定セクションをご覧ください。
オプション 2: npm 経由でインストール (依存関係としてまたはグローバルに)
- Obsidian でローカル REST API プラグインを有効にします。
- npm を使用してパッケージをインストールします。
- MCPクライアント設定(例:
claude_desktop_config.json
またはcline_mcp_settings.json
)にサーバーを追加してください。詳細は設定セクションをご覧ください。
⚙️ 構成
MCP クライアント設定に追加します (例: claude_desktop_config.json
またはcline_mcp_settings.json
):
環境変数:
OBSIDIAN_API_KEY
(必須): Obsidian のローカル REST API プラグイン設定からの API キー。VERIFY_SSL
(デフォルト:false
):SSL検証を有効にします。自己署名証明書またはローカルでの使用の場合はfalse
に設定してください。OBSIDIAN_PROTOCOL
(デフォルト:"https"
): プロトコル (http
またはhttps
)。OBSIDIAN_HOST
(デフォルト:"127.0.0.1"
): ホストアドレス。OBSIDIAN_PORT
(デフォルト:27124
): ポート番号。REQUEST_TIMEOUT
(デフォルト:5000
): リクエストのタイムアウト (ミリ秒)。MAX_CONTENT_LENGTH
(デフォルト:52428800
[50MB]): 応答コンテンツの最大長 (バイト)。MAX_BODY_LENGTH
(デフォルト:52428800
[50MB]): リクエスト本体の最大長 (バイト)。RATE_LIMIT_WINDOW_MS
(デフォルト:900000
[15 分]): レート制限ウィンドウ (ミリ秒)。RATE_LIMIT_MAX_REQUESTS
(デフォルト:200
): ウィンドウあたりの最大リクエスト数。TOOL_TIMEOUT_MS
(デフォルト:60000
[1 分]): ツール実行のタイムアウト(ミリ秒)。
🛠️ ツール
道具 | 説明 | パラメータ |
---|---|---|
obsidian_list_files_in_vault | Obsidian Vault のルート内にあるすべてのファイルとディレクトリを一覧表示します。ファイル、フォルダ、およびその種類を階層構造で詳細に表示します。 | なし |
obsidian_list_files_in_dir | Obsidian Vault内の特定のフォルダ内のファイルとディレクトリを一覧表示します。階層構造を返します。注:空のディレクトリは結果に含まれない場合があります。Vaultの構成を調べるのに役立ちます。 | dirpath* : ファイルの一覧を表示するパス(Vault ルートからの相対パス)。空のディレクトリは返されないことに注意してください。 |
obsidian_get_file_contents | Obsidian Vault内の指定されたファイルの全コンテンツを取得します。様々な読み取り可能なファイル形式をサポートしています。 | filepath* : 関連ファイルへのパス (Vault ルートからの相対パス)。 |
obsidian_append_content | 指定されたコンテンツを、ボールト内の指定されたファイルの末尾に追加します。ファイルが存在しない場合は、作成されます。 | filepath* : ファイルへのパス(ボールトルートからの相対パス) content* : ファイルに追加するコンテンツ |
黒曜石の更新内容 | 指定されたファイルの内容全体を、指定された内容でボールト内に上書きします。ファイルが存在しない場合は、新規に作成されます。 | filepath* : ファイルへのパス (Vault ルートに対する相対パス) content* : ファイルの新しい完全なコンテンツ (既存のコンテンツを上書きします)。 |
obsidian_find_in_file | Obsidian Vault 内のすべてのファイルを対象に全文検索を実行します。一致したファイルとその前後のコンテキストを返します。5件を超えるファイルが一致した場合は、過剰な出力を避けるため、ファイル名と一致件数のみが返されます。特定のテキスト、タグ、またはパターンを検索するのに最適です。 | query* : 検索するテキストパターン。タグ、キーワード、またはフレーズを含めることができます。contextLength : コンテキストを提供するために一致する文字列を囲む文字数( contextLength : 10)。 |
黒曜石複合体の検索 | JsonLogicクエリを使用して、パスパターンに基づいてファイルを検索します。パターンマッチングには主にglob (例:'*.md')を使用し、'path'変数へのアクセスにはvar サポートします。注:コンテンツベースの検索(全文検索、コンテンツ内のタグ、日付)には、 obsidian_find_in_file 使用してください。 | query* : ファイルパスを対象とするJsonLogicクエリオブジェクト。例: {"glob": ["*.md", {"var": "path"}]} すべてのマークダウンファイルに一致します。 |
obsidian_get_tags | Obsidian Vault 内の Markdown ファイルの YAML フロントマターで定義されているすべてのタグと、その使用回数、および関連ファイルパスを取得します。オプションで、検索対象を特定のフォルダに限定することもできます。 | path : タグ検索を制限するためのオプションのフォルダー パス (Vault ルートからの相対パス)。 |
obsidian_get_properties | 指定されたObsidianノートのYAMLフロントマターからプロパティ(タイトル、タグ、ステータスなど)を取得します。カスタムフィールドを含む、定義済みのすべてのプロパティを返します。 | filepath* : ノートファイルへのパス(ボールトルートからの相対パス) |
obsidian_update_properties | 指定されたObsidianノートのYAMLフロントマター内のプロパティを更新します。デフォルトでは、配列プロパティ(タグ、タイプ、ステータスなど)はマージされます。代わりに「replace」オプションを使用して上書きします。カスタムフィールドを処理し、タイムスタンプを自動的に管理します。サポートされている標準フィールド(タイトル、作成者、タグ、ステータスなど)については、スキーマを参照してください。 | filepath* : ノートファイルへのパス(Vaultルートからの相対パス) properties* : 更新するプロパティreplace : trueの場合、配列プロパティ(タグ、ステータスなど)は既存の値とマージされるのではなく、指定された値に完全に置き換えられます。デフォルトはfalse(マージ)です。 |
🔗 リソース
リソース | 説明 | 返品 |
---|---|---|
黒曜石://タグ | Obsidian Vault で使用されているすべてのタグとその使用回数のリスト | アプリケーション/json |
📁 プロジェクト構造
このプロジェクトは、関心事が明確に分離されたモジュール型アーキテクチャを採用しています。
👥 貢献する
- リポジトリをフォークする
- 機能ブランチを作成する
- プルリクエストを送信する
バグや機能については、 https://github.com/cyanheads/obsidian-mcp-server/issuesで問題を作成してください。
📄 ライセンス
Apacheライセンス2.0
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Tools
モデル コンテキスト プロトコルを通じて LLM と Obsidian ボールト間の相互作用を可能にし、安全なファイル操作、コンテンツ管理、高度な検索機能をサポートします。
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityA Model Context Protocol server that enables LLMs to interact with Salesforce data through SOQL queries, SOSL searches, and various API operations including record management.Last updated -1077PythonMIT License
- AsecurityAlicenseAqualityAdds powerful Hacker News integration to LLM clients, allowing users to access stories, comments, user profiles, and search functionality through the Model Context Protocol.Last updated -9254JavaScriptMIT License
- -securityAlicense-qualityA Model Context Protocol server enabling LLMs to search, retrieve, and manage documents through Rememberizer's knowledge management API.Last updated -24PythonApache 2.0
- -securityAlicense-qualityFEGIS is a Model Context Protocol server that gives LLMs structured, persistent and portable memory through customizable cognitive tools defined in schema.Last updated -16PythonMIT License