🚀 Obsidian MCP Server
Obsidian MCP Serverは、Local REST APIプラグインを通じて、AIエージェントがObsidianボールト内で高度な知識発見と分析を実行できるようにするMCP(Model Context Protocol)サーバーです。このサーバーにより、ObsidianボールトをAIエージェント用の強力な知識ベースに変え、複雑な多段階ワークフローを可能にします。
🚀 クイックスタート
Obsidian MCP Serverを使用することで、AIエージェントがObsidianボールト内の知識を効率的に活用できます。以下の手順に従ってセットアップしてください。
✨ 主な機能
このサーバーは、ObsidianボールトをAIエージェント用の強力な知識ベースに変え、以下のような複雑な多段階ワークフローを可能にします。
- 「2024年4月1日以降に作成され、タイトルに「ロードマップ」または「タイムライン」が含まれる「Projects/Planning」フォルダ内のノートを取得し、それらを分析して障害要因や依存関係を特定し、ソースノートへの参照付きで統合されたリスク評価を提示する」
- 「先月からの「research」または「analysis」タグが付けられたすべてのノートを見つけ、それらの内容を不完全なセクションや未解決の質問についてスキャンし、「Team/Expertise」ノートと照合して、各ギャップを解決するのに役立つ同僚を提案する」
- 「「Leadership/Quarterly」内の「予算」または「人員数」が含まれる会議ノートの完全な内容を取得し、それらを分析して自分の部署に割り当てられたアクションアイテムを特定し、ソースノートへの参照付きで時系列のタイムラインを作成する」
サーバーの高度なフィルタリング、正規表現サポート、および完全な内容取得機能により、エージェントは手動では数時間かかるような繊細な知識作業を実行できます。
📦 インストール
PyPIからのインストール(推奨)
pip install obsidian-api-mcp-server
uv pip install obsidian-api-mcp-server
MCP設定への追加
MCPクライアント設定(例:Claude Desktop)に以下を追加します。
{
"mcpServers": {
"obsidian-api-mcp-server": {
"command": "uvx",
"args": [
"--from",
"obsidian-api-mcp-server>=1.0.1",
"obsidian-api-mcp"
],
"env": {
"OBSIDIAN_API_URL": "https://localhost:27124",
"OBSIDIAN_API_KEY": "your-api-key-here"
}
}
}
}
ソースからのインストール(開発用)
git clone https://github.com/pmmvr/obsidian-api-mcp-server
cd obsidian-api-mcp-server
uv pip install -e .
pip install -e .
📚 ドキュメント
前提条件
- ObsidianボールトにObsidian Local REST APIプラグインをインストールします。
- Obsidian設定でプラグインを構成し、有効にします。
- API URL(デフォルト:
https://localhost:27124
)とAPIキー(設定した場合)をメモします。
設定
Obsidian APIの環境変数を設定します。
export OBSIDIAN_API_URL="https://localhost:27124"
export OBSIDIAN_API_KEY="your-api-key-here"
⚠️ 重要提示
OBSIDIAN_API_KEY
をスクリプトに直接ハードコードしたり、バージョン管理にコミットしたりしないでください。.env
ファイル(このプロジェクトの.gitignore
に含まれています)とpython-dotenv
のようなライブラリを使用してAPIキーを管理するか、オペレーティングシステムまたはシェルが管理する環境変数を使用してください。
💡 使用建议
サーバーはデフォルトでHTTPSを使用し、ローカルのObsidianインスタンスで一般的に使用される自己署名証明書のSSL証明書検証を無効にします。HTTP接続の場合は、OBSIDIAN_API_URL="http://localhost:27123"
を設定してください。
使用方法
MCPサーバーを起動します。
obsidian-mcp
利用可能なツール
サーバーは3つの強力なツールを提供します。
-
search_vault
- 柔軟なフィルターと完全な内容取得機能を備えた高度な検索
query
- ノート内容全体でのテキストまたは正規表現検索(オプション)
query_type
- 検索タイプ:"text"(デフォルト)または "regex"
search_in_path
- 特定のフォルダパスに検索を制限
title_contains
- ノートタイトル内のテキストでフィルタリング(文字列、配列、またはJSON文字列)
title_match_mode
- 複数の用語をどのようにマッチさせるか:"any"(OR)または "all"(AND)
tag
- タグでフィルタリング(文字列、配列、またはJSON文字列 - フロントマターとインライン #タグを検索)
tag_match_mode
- 複数のタグをどのようにマッチさせるか:"any"(OR)または "all"(AND)
context_length
- 返す内容の量(完全な内容を取得するには高い値に設定)
include_content
- すべての一致するノートの完全な内容を取得するかどうかを示すブール値
created_since/until
- 作成日でフィルタリング
modified_since/until
- 変更日でフィルタリング
page_size
- ページごとの結果数
max_matches_per_file
- ノートごとの一致数を制限
主要機能:
query
が提供されない場合、フィルターのみの検索で自動的に完全な内容を返します。
include_content=True
で、どの検索でも完全な内容を強制的に取得します。
- 複雑なテキストマッチング(OR条件、大文字小文字を区別しない検索など)のための正規表現パターンをサポートします。
-
get_note_content
- パスで特定のノートの完全な内容とメタデータを取得
-
browse_vault_structure
- ボールトのディレクトリ構造を効率的にナビゲート
path
- 参照するディレクトリ(デフォルトはボールトのルート)
include_files
- ファイルを含めるかどうかを示すブール値(デフォルト:False、速度のためにフォルダのみ)
recursive
- すべてのネストされたディレクトリを参照するかどうかを示すブール値
利用例
基本的な検索
- 特定のフォルダ内でタイトルでノートを検索する
search_vault(
search_in_path="Work/Projects/",
title_contains="meeting"
)
- 複数のタイトル用語でノートを検索する(OR論理)
search_vault(
title_contains=["foo", "bar", "fizz", "buzz"],
title_match_mode="any"
)
- すべてのタイトル用語でノートを検索する(AND論理)
search_vault(
title_contains=["project", "2024"],
title_match_mode="all"
)
- 最近のすべてのノートの完全な内容を取得する
search_vault(
modified_since="2025-05-20",
include_content=True
)
- コンテキスト付きのテキスト検索
search_vault(
query="API documentation",
search_in_path="Engineering/",
context_length=500
)
- タグで検索する
search_vault(
tag="project"
)
- 正規表現を使用したOR条件の検索
search_vault(
query="foo|bar",
query_type="regex",
search_in_path="Projects/"
)
- 特定の人物に割り当てられたタスクの正規表現検索
search_vault(
query="(TODO|FIXME|ACTION).*@(alice|bob)",
query_type="regex",
search_in_path="Work/Meetings/"
)
高度な多段階ワークフロー
これらの例は、エージェントが高度な知識発見タスクを連鎖させる方法を示しています。
- 戦略的なプロジェクト分析
search_vault(
search_in_path="Projects/Infrastructure/",
title_contains=["planning", "requirements", "architecture"],
title_match_mode="any",
include_content=True
)
search_vault(
tag=["infrastructure", "technical-debt"],
tag_match_mode="any",
modified_since="2025-04-01",
include_content=True
)
エージェントはその後、依存関係を分析し、リスクを特定し、リソース配分を提案できます
- 会議アクションアイテムのマイニング
search_vault(
search_in_path="Meetings/",
title_contains=["standup", "planning", "retrospective"],
title_match_mode="any",
created_since="2025-05-01",
include_content=True
)
エージェントは内容をアクションアイテムについてスキャンし、割り当てを抽出し、時系列の追跡を作成します
- 研究ギャップ分析
search_vault(
query="(TODO|QUESTION|INVESTIGATE|UNCLEAR)",
query_type="regex",
tag=["research", "analysis"],
tag_match_mode="any",
include_content=True
)
search_vault(
search_in_path="Team/",
tag=["expertise", "skills"],
tag_match_mode="any",
include_content=True
)
エージェントは知識ギャップを特定し、各ギャップを解決するのに役立つチームメンバーを提案します
- ボールト構造の探索
browse_vault_structure(recursive=True)
browse_vault_structure(
path="Projects/CurrentSprint/",
include_files=True,
recursive=True
)
- タグベースの知識マッピング
search_vault(
tag=["project", "urgent"],
tag_match_mode="all",
include_content=True
)
search_vault(
tag=["architecture", "design", "implementation"],
tag_match_mode="any",
modified_since="2025-04-15"
)
開発
uv pip install -e ".[test]"
python -m obsidian_mcp.server
uv run behave features/blackbox_tests.feature
python run_tests.py
📄 ライセンス
このプロジェクトはMITライセンスの下でライセンスされています。詳細についてはLICENSEファイルを参照してください。