mcpField
O
Obsidian MCP Server

Obsidian MCP Server

ローカル
github.com/pmmvrメモリ・ナレッジ2174 週間前に更新

Obsidian MCP Server について

Obsidian MCP Server は、Obsidian Local REST API プラグインを通じて、AI エージェントが Obsidian のボルトを検索・分析できるようにするサーバーです。正規表現、タグ、パス、日付による絞り込みを使い、ノートを対象とした複数段階の分析を行いたい利用者に向いています。

主な機能

  1. 01ノート内容のテキスト検索と正規表現検索
  2. 02タイトル、タグ、フォルダパスによる絞り込み
  3. 03作成日・更新日による日付フィルター
  4. 04ノートの全文取得
  5. 05ボルト内のディレクトリ構造の参照

活用シーン

  1. 01フォルダ内のプロジェクトノートを要約しリスクを特定
  2. 02会議メモからアクションアイテムを抽出し日付順に整理
  3. 03タグ付きの調査ノートから未解決の質問を探す

MCP 対応

このプロジェクトは MCP サーバーであり、search_vault、get_note_content、browse_vault_structure の各ツールを MCP クライアントに提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

Obsidian MCP サーバー

Local REST API プラグインを通じて、AI エージェントが Obsidian の Vault 全体から高度なナレッジの発見と分析を行えるようにする MCP(Model Context Protocol)サーバーです。

Obsidian Server MCP server

これが重要な理由

このサーバーは Obsidian の Vault を AI エージェント向けの強力なナレッジベースに変え、次のような複雑な複数ステップのワークフローを可能にします。

  • 「'Projects/Planning' フォルダーから、タイトルに 'roadmap' または 'timeline' を含み、4 月 1 日以降に作成されたノートを取得し、障害や依存関係がないか分析して、参照元のノートを示した総合的なリスク評価を提示してください」

  • 「先月の 'research' または 'analysis' タグが付いたすべてのノートを検索し、内容を確認して未完了のセクションや未解決の質問がないか調べてください。次に、'Team/Expertise' のノートと相互参照し、それぞれの課題の解決を支援できる同僚を提案してください」

  • 「'Leadership/Quarterly' にある、'budget' または 'headcount' を含む会議メモの全内容を取得し、私の部署に割り当てられたアクションアイテムを分析して、参照元のノートを示した時系列を作成してください」

高度なフィルタリング、正規表現のサポート、全内容の取得機能により、このサーバーを使うエージェントは、手作業では何時間もかかるような細やかなナレッジ作業を実行できます。

前提条件

  1. Obsidian の Vault に Obsidian Local REST API プラグインをインストールします
  2. Obsidian の設定でプラグインを構成し、有効にします
  3. API URL(デフォルト:https://localhost:27124)と、設定している場合は API キーを確認します

インストール

PyPI から(推奨)
# Install from PyPI
pip install obsidian-api-mcp-server

# Or with uv
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"
      }
    }
  }
}
ソースから(開発用)
# Clone the repository
git clone https://github.com/pmmvr/obsidian-api-mcp-server
cd obsidian-api-mcp-server

# Install with uv
uv pip install -e .

# Or with pip
pip install -e .

設定

Obsidian API 用の環境変数を設定します。

# Required: Obsidian API URL (HTTPS by default)
export OBSIDIAN_API_URL="https://localhost:27124"  # Default

# Optional: API key if you've configured authentication
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つの強力なツールを利用できます。

  1. 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 - 1ページあたりの結果数
    • max_matches_per_file - ノートごとの一致数の上限

    主な機能:

    • queryを指定しない場合、フィルターのみの検索ではコンテンツ全体を自動的に返します
    • include_content=Trueを指定すると、どの検索でもコンテンツ全体を取得します
    • 複雑なテキスト照合(OR条件、大文字と小文字を区別しない検索など)に使える正規表現パターンをサポートします
  2. get_note_content - パスを指定して、特定のノートのコンテンツ全体とメタデータを取得

  3. browse_vault_structure - 保管庫のディレクトリー構造を効率的に確認:

    • path - 確認するディレクトリー(デフォルトは保管庫のルート)
    • include_files - ファイルを含めるかどうかを指定するブール値(デフォルト:False。速度を優先してフォルダーのみを表示)
    • recursive - すべてのサブディレクトリーも確認するかどうかを指定するブール値

使用例

基本的な検索
  1. 特定のフォルダー内でタイトルからノートを検索:

    search_vault(
      search_in_path="Work/Projects/",
      title_contains="meeting"
    )
    
  2. 複数のタイトル語句を含むノートを検索(ORロジック):

    search_vault(
      title_contains=["foo", "bar", "fizz", "buzz"],
      title_match_mode="any"  # Default
    )
    
  3. すべてのタイトル語句を含むノートを検索(ANDロジック):

    search_vault(
      title_contains=["project", "2024"],
      title_match_mode="all"
    )
    
  4. 最近のノートをすべてコンテンツ全体とともに取得:

    search_vault(
      modified_since="2025-05-20",
      include_content=True
    )
    
  5. コンテキスト付きのテキスト検索:

    search_vault(
      query="API documentation",
      search_in_path="Engineering/",
      context_length=500
    )
    
  6. タグで検索:

    search_vault(
      tag="project"
    )
    
  7. OR条件を使った正規表現検索:

    search_vault(
      query="foo|bar",
      query_type="regex",
      search_in_path="Projects/"
    )
    
  8. 特定の人物に割り当てられたタスクを正規表現で検索:

    search_vault(
      query="(TODO|FIXME|ACTION).*@(alice|bob)",
      query_type="regex",
      search_in_path="Work/Meetings/"
    )
    
高度なマルチステップワークフロー

以下の例では、エージェントが複雑なナレッジ発見タスクを連続して実行する方法を示します。

  1. プロジェクトの戦略分析:

    # Step 1: Get all project documentation
    search_vault(
      search_in_path="Projects/Infrastructure/",
      title_contains=["planning", "requirements", "architecture"],
      title_match_mode="any",
      include_content=True
    )
    
    # Step 2: Find related technical discussions
    search_vault(
      tag=["infrastructure", "technical-debt"],
      tag_match_mode="any",
      modified_since="2025-04-01",
      include_content=True
    )
    

    エージェントはその後、依存関係を分析し、リスクを特定して、リソース配分を提案できます

  2. 会議のアクションアイテムの抽出:

# Get all recent meeting notes with full content
search_vault(
  search_in_path="Meetings/",
  title_contains=["standup", "planning", "retrospective"],
  title_match_mode="any",
  created_since="2025-05-01",
  include_content=True
)

エージェントがコンテンツを確認してアクションアイテムを探し、担当者を抽出して、時系列で追跡できるようにします

  1. 調査におけるギャップ分析:
# Find research notes with questions or gaps
search_vault(
  query="(TODO|QUESTION|INVESTIGATE|UNCLEAR)",
  query_type="regex",
  tag=["research", "analysis"],
  tag_match_mode="any",
  include_content=True
)

# Cross-reference with team expertise
search_vault(
  search_in_path="Team/",
  tag=["expertise", "skills"],
  tag_match_mode="any",
  include_content=True
)

エージェントがナレッジの不足を特定し、支援できるチームメンバーを提案します

  1. 保管庫の構造を確認:
# Quick organizational overview
browse_vault_structure(recursive=True)

# Deep dive into specific areas
browse_vault_structure(
  path="Projects/CurrentSprint/",
  include_files=True,
  recursive=True
)
  1. タグベースのナレッジマッピング:
# Find notes with multiple tags (AND logic)
search_vault(
  tag=["project", "urgent"],
  tag_match_mode="all",
  include_content=True
)

# Find notes with any relevant tags (OR logic)
search_vault(
  tag=["architecture", "design", "implementation"],
  tag_match_mode="any",
  modified_since="2025-04-15"
)

開発

# Install with test dependencies
uv pip install -e ".[test]"

# Run the server
python -m obsidian_mcp.server

# Run tests
uv run behave features/blackbox_tests.feature
# Or use the test runner
python run_tests.py

ライセンス

このプロジェクトはMITライセンスのもとで公開されています。詳細はLICENSEファイルをご覧ください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。