Skip to main content
Glama
Utkarshsharma30

Obsidian Knowledge MCP

Obsidian Knowledge MCP

読み取り専用の Obsidian-to-PostgreSQL インポーター兼 MCP サーバーです。ボールトが唯一の情報源であり、取り込み処理は Markdown ファイルを読み取るだけで、それらを編集または削除することはありません。

アーキテクチャ

Obsidian vault -> Python parser/upsert importer -> PostgreSQL -> FastMCP tools/resources -> Claude Connector

ドキュメントは相対パスと元の Markdown 本文を保持します。各ノートは document ノードになり、[[links]] は有向の related_to エッジと document_links になります。タグ、エイリアス、見出し、および認識されない frontmatter は JSONB に保持されます。存在しないリンク先はログに記録され、スキップされます。取り込みを再実行すると、ファイルパスに基づいてレコードが更新され、重複するエッジやタグが防止されます。

Related MCP server: Semantic Notes Vault MCP

セットアップ

前提条件: Python 3.11+、Docker Desktop、および手動で SQL を検査したい場合のみ PostgreSQL クライアント。

  1. .env.example.env にコピーし、POSTGRES_PASSWORD を設定し、OBSIDIAN_VAULT_PATH に既存のボールトを指定します。特に必要がなければ、ボールトをこのプロジェクト内に置かないでください。

  2. 環境を作成し、依存関係をインストールします:

    py -m venv .venv
    .\.venv\Scripts\Activate.ps1
    pip install -e ".[test]"
  3. PostgreSQL を起動します。ポートは localhost にのみバインドされています:

    docker compose up -d postgres
  4. ボールトをインポートします:

    python -m ingestion.importer
    # or: obsidian-ingest "C:\path\to\vault"
  5. 検証します:

    docker compose exec postgres psql -U knowledge_app -d knowledge -c "select count(*) from documents; select count(*) from edges;"
    pytest

スキーマは初期化スクリプトとしてマウントされます。既存のボリュームの場合は、psql -f database/schema.sql で変更を明示的に適用してください。

Render でのデプロイ

このリポジトリには、Render の無料 Web Service 用の render.yaml が含まれています。Render で、このリポジトリから新しい Blueprint を作成してデプロイしてください。Render は MCP_AUTH_TOKEN を生成し、自身の PORT を使用します。Render のマネージド PostgreSQL サービスでは支払い情報が必要になるため、Neon や Supabase などの無料の外部 PostgreSQL プロバイダーから DATABASE_URL を指定してください。クエリを実行する前に、database/schema.sql をそのデータベースに適用してください。デフォルトの公開エンドポイントは次のとおりです:

https://obsidian-knowledge-mcp.onrender.com/mcp

サービス名を変更する場合は、Render 環境の MCP_PUBLIC_URL を、結果の https://<service-name>.onrender.com URL に更新してください。MCP_PUBLIC_URL/mcp を追加しないでください。/mcp は Claude コネクタの URL にのみ含まれます。

Render サービスは Windows または OneDrive のボールトを読み取ることができません。ボールトとデータベースの両方にアクセスできるマシンから、ボールトを外部 PostgreSQL データベースにインポートするか、クエリを実行する前に、Render からアクセス可能な別のストレージ/インポートジョブを追加してください。

MCP サーバー

ローカルでは次のように実行します:

python -m mcp_server.server

デフォルトのエンドポイントは、Streamable HTTP を使用する http://127.0.0.1:8000/mcp です。ローカルクライアントの場合は、MCP_TRANSPORT=stdio を設定し、コマンドとして obsidian-mcp を使用します。サーバーは、search_knowledgeget_nodeget_documentget_related_nodesfind_pathlist_nodessearch_documents に加えて、knowledge://node/{node_name} リソースを公開します。上限は 100 に設定され、SQL はパラメータ化されています。

Claude コネクタ

Claude コネクタには、PostgreSQL エンドポイントではなく、リモートから到達可能な MCP エンドポイントが必要です。Claude Settings -> Connectors で、/mcp で終わる Render の URL(例: https://obsidian-knowledge-mcp.onrender.com/mcp)を追加します。プロンプトが表示されたら、生成された MCP_AUTH_TOKEN をベアラートークンとして使用し、Claude ワークスペースで必要な認証フローを完了してから、What do I have in my knowledge base about Python? でテストしてください。

本番環境では、静的トークンではなく、ID 認識型プロキシ(OAuth/OIDC)または mTLS を使用してください。ポート 5432 を公開しないでください。Claude が接続エラーを報告した場合は、docker compose psdocker compose logs postgres、MCP プロセスのログ、HTTPS 証明書/DNS、/mcp のプロキシ転送、およびエンドポイントがネットワークの外部から到達可能かどうかを確認してください。認証付きヘルスチェックはデータベースエラーとは別に保ち、スタックトレースを公開しないでください。

クエリ例

  • 機械学習に接続されている概念は何ですか?

  • Python と人工知能の間の関係パスを探してください。

  • RAG から 2 ホップ以内にある概念は何ですか?

  • Python と機械学習の両方に言及しているドキュメントはどれですか?

前提と拡張ポイント

このワークスペースには検査できるボールトがなかったため、パース処理は標準的な Obsidian の規約に従い、tests/test_parser.py のフィクスチャでカバーされています。Dataview 固有の構文はコンテンツとして保持されます。リポジトリ層が SQL を MCP から分離しているため、MCP の契約を変更せずに将来の双方向同期が可能です。MCP_AUTH_TOKEN は Streamable HTTP サーバーによって強制されます。より強力な本番環境のアクセス制御には、ID 認識型プロキシ(OAuth/OIDC)を使用してください。

F
license - not found
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Connects AI assistants to an Obsidian vault as a semantic knowledge graph, enabling graph navigation, semantic search, and content operations through MCP.
    12
    456
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Provides read-only access to an Obsidian vault, enabling file listing, content reading, and text search across notes via MCP.
    4
    1
    Apache 2.0
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables reading, writing, searching, and managing Obsidian vault notes through MCP tools and prompts, allowing AI agents to interact with local knowledge bases.

View all related MCP servers

Related MCP Connectors

  • Search and reason over your Obsidian-style Markdown vault, right from ChatGPT.

  • Serve a folder of Markdown notes as an MCP server: hybrid search, reading, and sourced answers.

  • Search your Obsidian vault to quickly find notes by title or keyword, summarize related content, a…

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Utkarshsharma30/obsidian-knowledge-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server