obsidian-rag-mcp
v1.1.0
Published
MCP server for semantic search in Obsidian notes via RAG
Maintainers
Readme
Obsidian RAG MCP Server
MCP server for semantic search in your Obsidian notes via Claude Code.
Features
- Semantic search (vector + fuzzy hybrid)
- Multi-tenant authentication via VibeAcademy
- Filter by project, folder, or category
- Obsidian URL links in results
Prerequisites
- Node.js 18+
- A VibeAcademy account with API key
- Indexed notes via the RAG webapp (https://obsidian-rag.matthieucousin.com)
Installation
# Install globally
npm install -g obsidian-rag-mcp
# Or use directly with npx
npx obsidian-rag-mcpConfiguration
Claude Code Configuration
Add to your Claude Code MCP settings (~/.config/claude/settings.json or project .mcp.json):
{
"mcpServers": {
"obsidian-rag": {
"command": "npx",
"args": ["obsidian-rag-mcp"],
"env": {
"VIBEACADEMY_API_KEY": "your-api-key"
}
}
}
}That's it! Only one environment variable needed.
Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| VIBEACADEMY_API_KEY | Yes* | Your VibeAcademy API key |
| RAG_API_URL | No | API URL (default: https://obsidian-rag.matthieucousin.com) |
| VIBEACADEMY_ID | No | Direct user ID (dev mode only, bypasses API key verification) |
*VIBEACADEMY_API_KEY is required for production use.
Available Tools
rag_search
Search the knowledge base using semantic + fuzzy search.
Parameters:
query(required): Search query in natural languageprojectId: Filter by project IDfolderIds: Filter by folder IDscategoryIds: Filter by category IDslimit: Max results (default: 10, max: 50)
Example:
Search my notes for React hooks best practicesrag_list_projects
List all available projects.
rag_list_folders
List indexed folders.
Parameters:
indexedOnly: Only return indexed folders (default: true)
rag_list_categories
List all categories.
rag_get_document
Get full content of a document.
Parameters:
filepath(required): Path to the document
Usage in Claude Code
Once configured, simply ask Claude:
Search my notes for information about authentication patternsWhat do I have in my notes about React performance?Find all documents in the "Backend" folder about database migrationsDevelopment
# Clone the repo
git clone https://github.com/vibeacademy/obsidian-rag-mcp
cd obsidian-rag-mcp
# Install dependencies
npm install
# Create .env file
cp .env.example .env
# Edit .env with your credentials
# Run in dev mode
npm run dev
# Build
npm run build
# Run built version
npm startAuthentication Flow
- On startup, the server verifies your
VIBEACADEMY_API_KEYwith the VibeAcademy API - If valid, it extracts your user ID for multi-tenant isolation
- All queries are filtered by your user ID via the RAG API
Architecture
Claude Code --> MCP Server --> RAG API --> Supabase + OpenAI
(local) (cloud)The MCP server is a thin client that calls the RAG API. All heavy lifting (embeddings, vector search, database) happens server-side.
Changelog
v1.1.0
- Simplified architecture: MCP now calls REST API instead of direct database access
- Removed Supabase, OpenAI, and Fuse.js dependencies
- Only
VIBEACADEMY_API_KEYrequired (no moreSUPABASE_*orOPENAI_*keys)
v1.0.0
- Initial release with direct Supabase/OpenAI integration
License
MIT
