Obsidian MCP Server
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Obsidian MCP Serversearch for notes about machine learning"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Obsidian MCP Server
MCP (Model Context Protocol) サーバーによるObsidian Vaultの管理と検索を可能にするRAG対応システム
🚀 主な改善点
1. Chroma DBによる永続化
メモリベースのベクターストアからChroma DBに移行
Embeddingの永続化により、再起動時の再計算を回避
分散環境での利用が可能
2. 差分更新システム
ファイルごとのコンテンツハッシュによる変更検出
更新日時とハッシュの二重チェックで確実な差分検出
変更されたファイルのみEmbedding再作成
3. キャッシュシステム
.embedding-cache.jsonによる状態管理ファイルごとのメタデータ(更新日時、ハッシュ、Document ID)を保存
起動時に前回の状態から差分のみ更新
4. 重複防止とID管理
決定的なDocument ID生成により重複を防止
ファイルパスとチャンクインデックスから一意のIDを生成
同じコンテンツは常に同じIDを持つ
5. 初期化の最適化
キャッシュ存在時は変更ファイルのみ読み込み
初回起動とそれ以降で異なる処理パス
メモリ使用量を削減
Related MCP server: MCP Obsidian
📊 パフォーマンス改善
Before(問題点)
起動時に全ファイルのEmbedding再作成
ファイル変更時に全Vector Store再構築
OpenAI APIの大量呼び出しによるコスト増大
同じチャンクが重複して追加される問題
After(改善後)
起動時は変更ファイルのみEmbedding作成
ファイル変更時は該当ファイルのみ更新
APIコールを最小限に削減(最大90%削減)
決定的なID生成により重複を完全に防止
2回目以降の起動時間を大幅に短縮(数秒以内)
🛠 セットアップ
1. Chroma DBのセットアップ
# Dockerでの起動(推奨)
docker run -d -p 8000:8000 chromadb/chroma
# または、ローカルインストール
pip install chromadb
chroma run --host localhost --port 80002. 環境変数の設定
# 必須
OPENAI_API_KEY=your-openai-api-key
OBSIDIAN_VAULT_PATH=/path/to/your/vault
# オプション(デフォルト: http://localhost:8000)
CHROMA_URL=http://localhost:80003. インストール
npm install
npm run build4. MCPクライアントの設定
Claude Desktop の場合 (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"obsidian-vault": {
"command": "node",
"args": ["/path/to/obsidian-mcp-server/dist/index.js"],
"env": {
"OBSIDIAN_VAULT_PATH": "/path/to/your/obsidian/vault",
"OPENAI_API_KEY": "sk-your-openai-api-key",
"CHROMA_URL": "http://localhost:8000"
}
}
}
}📝 機能
1. search_vault - セマンティック検索
{
"query": "プロジェクト管理",
"max_results": 5
}RAG対応でコンテキストを考慮した検索
類似度スコア付きの結果返却
2. add_note - ノート追加
{
"title": "2024年プロジェクト計画",
"content": "## 概要\n\n今日の会話で決定した内容...",
"tags": ["project", "2024", "planning"]
}自動的にfrontmatterとタグを付与
重複ファイル名の自動処理
3. list_recent_notes - 最近のノート一覧
{
"limit": 10
}最近更新されたノートの一覧表示
4. reset_database - データベースリセット
{
"confirm": true
}ベクターデータベースの完全リセット
キャッシュのクリアと全ファイルの再インデックス
不整合が発生した場合の復旧用
🔧 技術スタック
TypeScript: 型安全な実装
Chroma DB: ベクターデータベース(永続化対応)
LangChain: Embedding・ベクター検索フレームワーク
OpenAI Embeddings: text-embedding-3-small
MCP SDK: Model Context Protocol実装
Chokidar: ファイル監視
📂 ディレクトリ構造
obsidian-mcp-server/
├── src/
│ └── index.ts # メインサーバー実装
├── dist/ # ビルド出力
├── package.json
├── tsconfig.json
└── README.md🔍 技術仕様
ベクターストア
埋め込みモデル: OpenAI
text-embedding-3-smallチャンクサイズ: 1000文字
オーバーラップ: 200文字
永続化: Chroma DB
キャッシュシステム
キャッシュファイル:
.embedding-cache.json保存場所: Vaultディレクトリ内
内容: ファイルハッシュ、更新日時、Document ID
更新タイミング: ファイル変更検出時に自動更新
Document ID管理
ID生成方式: MD5ハッシュ(ファイルパス + チャンクインデックス)
重複防止: 決定的なID生成により同一チャンクの重複を防止
一貫性: 同じファイルの同じチャンクは常に同じIDを持つ
ファイル監視
.obsidianなどの隠しディレクトリは除外マークダウンファイル(
.md)のみを対象リアルタイムでファイルの変更を検知
🚨 注意事項
Chroma DBが起動していることを確認してください
初回起動時は全ファイルのEmbedding作成のため時間がかかります
.embedding-cache.jsonはVaultディレクトリに自動生成されます大規模なVault(1000ファイル以上)の場合、初回起動に数分かかる場合があります
2回目以降の起動は差分のみ処理するため高速です(通常数秒以内)
データベースの不整合が発生した場合は
reset_databaseツールを使用してください
🐛 トラブルシューティング
Chroma DBに接続できない
# Dockerが起動しているか確認
docker ps | grep chroma
# 起動していない場合
docker run -d -p 8000:8000 chromadb/chromaベクターストアが初期化されない
OpenAI APIキーが正しく設定されているか確認
Vault内にマークダウンファイルが存在するか確認
キャッシュが効かない
.embedding-cache.jsonの権限を確認ディスク容量が十分にあるか確認
重複エントリが発生する場合
// reset_databaseツールを使用してリセット
{
"tool": "reset_database",
"confirm": true
}データベースとキャッシュを完全にリセットして再構築
全ファイルの再インデックスが実行される
パフォーマンスの問題
初回起動が遅い: 全ファイルのEmbedding作成のため正常な動作です
2回目以降も遅い: キャッシュが正しく動作していない可能性
.embedding-cache.jsonが存在するか確認ファイルの読み書き権限を確認
📄 ライセンス
MIT
This server cannot be installed
Maintenance
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
- Flicense-qualityDmaintenanceProvides semantic search capability over Obsidian vaults and exposes recent notes as resources to Claude through the MCP protocol.9
- Flicense-qualityFmaintenanceEnables semantic search across Obsidian vaults using vector embeddings and ChromaDB. Supports multiple vaults with real-time indexing and provides both MCP server and CLI interfaces for natural language querying of notes.4
- AlicenseBqualityDmaintenanceEnables interaction with Obsidian vaults through MCP, supporting note creation from templates, link management, backlink analysis, tag operations, and automatic Map of Contents generation.116,1041MIT
- Flicense-qualityDmaintenanceEnables semantic search over an Obsidian vault using ChromaDB, allowing users to search, read, and list notes via natural language.
Related MCP Connectors
Search and reason over your Obsidian-style Markdown vault, right from ChatGPT.
Token-efficient MCP memory for Markdown vaults. Tiered search, GraphRAG, AI memories.
Search your Obsidian vault to quickly find notes by title or keyword, summarize related content, a…
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/toshitana/obsidian-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server