Obsidian Vectorize MCP
Indexes Obsidian vaults for semantic search and retrieval of notes.
Allows ChatGPT to search and retrieve notes from an Obsidian vault.
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 Vectorize MCPsearch my 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 Vectorize MCP
A modern, serverless solution for indexing Obsidian notes using Cloudflare's official OAuth 2.1 pattern, Vectorize, and Workers AI, with native Model Context Protocol (MCP) support.
š Key Features
Cost Effective: ~$0-10/month for typical personal use (250 - 2.5k Notes)
Affordable Embedding Costs: Workers AI embedding models used - no OpenAI API fees needed
Official Cloudflare OAuth 2.1: Uses
@cloudflare/workers-oauth-providerStandards Compliant: Follows MCP v2025-03-26 specification with Streamable HTTP transport
Global Edge Performance: 300+ locations worldwide
Serverless Simplicity: No infrastructure management required
15-Minute Setup: Get running quickly with simple commands
Related MCP server: MCP Obsidian
š Quick Start
1. Clone & Setup
Note: This project requires git clone to access all necessary configuration files and source code for deployment. Runtime: Node.js 20.3.0 or newer is required because the project now pins Wrangler 4.80.0.
# Clone the repository
git clone https://github.com/ben-vargas/obsidian-vectorize-mcp.git
cd obsidian-vectorize-mcp
# Use the repo's Node version
nvm use || nvm install
# Install dependencies
npm ci
# Optional: install obvec CLI globally
npm install -g .
# Copy and configure your deployable Wrangler config
cp wrangler.toml.example wrangler.toml
# Login to Cloudflare
obvec login
# Create KV namespaces
wrangler kv:namespace create kv
wrangler kv:namespace create oauth_tokens
# Update wrangler.toml with the returned namespace IDs
# Create R2 bucket
wrangler r2 bucket create obsidian-vectorize
# Set your password
wrangler secret put MCP_PASSWORD2. Deploy & Index
Option A: Deploy to Cloudflare (Recommended)
# Deploy your MCP server
obvec deploy
# Create and configure .env file (required)
cp .env.example .env
# Edit .env with:
# WORKER_URL=https://obvec.<your-cloudflare-subdomain>.workers.dev
# MCP_PASSWORD=your-secure-password-here
# OBSIDIAN_VAULT_PATH=/path/to/your/vault
# Index your vault
obvec indexOption B: Local Development
# Create .dev.vars for local Worker environment
echo "MCP_PASSWORD=your-local-password" > .dev.vars
# Create .env for CLI scripts
cp .env.example .env
# Edit .env with:
# WORKER_URL=http://localhost:8787
# MCP_PASSWORD=your-local-password
# OBSIDIAN_VAULT_PATH=/path/to/vault
# Start local development server
obvec dev
# In another terminal, index your vault
obvec index3. Connect to MCP Clients
Note about Connectors: Claude.ai uses "Connectors" to integrate with MCP servers. If you add a Connector on claude.ai (Web), it will also appear in Claude Desktop - no additional configuration needed. However, Claude Code requires separate MCP configuration.
claude.ai (Web) & Claude Desktop
On claude.ai, add a custom MCP Connector:
Go to Settings ā Connectors
Click "Add Custom Connector"
Enter your MCP endpoint:
Streamable HTTP:
https://obvec.<account_subdomain>.workers.dev/mcp(recommended - current MCP spec)SSE:
https://obvec.<account_subdomain>.workers.dev/sse(deprecated - only use if required)
Note: The MCP specification deprecated SSE on March 26, 2025. We recommend using the Streamable HTTP endpoint.
When you first connect, a browser window will open for OAuth authentication. Enter your password to authorize access. This Connector will automatically sync to your Claude Desktop app.
Claude Code (CLI)
Add via command line:
claude mcp add -s user -t http obvec https://obvec.<account_subdomain>.workers.dev/mcpBreaking this down:
claude mcp add- The command to add an MCP server-s user- Scope set to "user" (applies to all your projects, not just the current one)-t http- Transport type for the new Streamable HTTP protocolobvec- The name you want to give the serverhttps://obvec.<account_subdomain>.workers.dev/mcp- The URL of your MCP endpoint
Note for Claude Code users: OAuth tokens now default to 30 days to prevent frequent re-authentication. If you still experience timeouts, see troubleshooting.
Manual Claude Desktop Configuration (Optional)
If you prefer to configure Claude Desktop directly instead of using Connectors, add to your claude_desktop_config.json:
{
"mcpServers": {
"obvec": {
"type": "http",
"url": "https://obvec.<account_subdomain>.workers.dev/mcp"
}
}
}Replace <account_subdomain> with your actual Cloudflare Workers subdomain in all examples.
ChatGPT Integration
Connect your Obsidian vault to ChatGPT as a searchable knowledge source:
Add as ChatGPT Connector:
Go to ChatGPT Settings ā Connectors
Add connector with URL:
https://obvec.<account_subdomain>.workers.dev/chatgpt/mcpAuthenticate via OAuth when prompted
Select the connector in any chat where Connectors are supported
Basic Configuration:
# In wrangler.toml OBSIDIAN_VAULT_NAME = "YourVaultName" # For proper Obsidian URL generation CHATGPT_MIN_SCORE = "0.3" # Result threshold (lower = more results)Works with all ChatGPT features where Connectors are available (except GPT-5 Pro mode)
š For advanced configuration, QDF support, and troubleshooting, see docs/chatgpt-integration.md
š Authentication & Security
OAuth 2.1 Flow
Standards Compliant: Uses Cloudflare's official OAuth Provider Library
PKCE Security: Proof Key for Code Exchange for enhanced security
Simple Setup: One password via
wrangler secret put MCP_PASSWORDMCP Compatible: Works with claude.ai, Claude Desktop, Cursor, Windsurf out of the box
For Repository Cloners/Forkers
Each person who clones this repo gets:
Their own Worker deployment and URL
Their own password protection (
MCP_PASSWORDsecret)Their own OAuth KV namespace
Complete isolation from other deployments
š Project Structure
obvec/
āāā bin/
ā āāā obvec.js # CLI executable
āāā docs/ # Documentation
ā āāā advanced-configuration.md # Smart re-indexing and OAuth setup
ā āāā architecture.md # Technical architecture details
ā āāā mcp-implementation.md # MCP protocol details
ā āāā pricing-and-performance.md # Cost analysis and performance info
ā āāā troubleshooting.md # Common issues and diagnostics
āāā scripts/
ā āāā index-vault.ts # Vault indexing script
ā āāā search-notes.ts # CLI search utility
ā āāā get-stats.ts # Index statistics
ā āāā reset-index.ts # Clear all indexed data
ā āāā cleanup-orphaned.ts # Remove deleted notes
āāā src/
ā āāā api/ # API endpoints
ā ā āāā cleanup.ts # Cleanup orphaned notes
ā ā āāā index.ts # Index management
ā ā āāā list-indexed.ts # List indexed notes
ā ā āāā router.ts # API router
ā ā āāā search.ts # Search functionality
ā ā āāā stats.ts # Statistics endpoint
ā ā āāā test-mcp.ts # MCP testing utilities
ā āāā auth/ # Authentication UI
ā ā āāā app.ts # OAuth app handler
ā āāā mcp/ # MCP server implementations
ā ā āāā server.ts # Standard MCP server (full tools)
ā ā āāā server-chatgpt.ts # ChatGPT-specific server (search/fetch only)
ā āāā types/ # TypeScript types
ā ā āāā index.ts # Type definitions
ā āāā utils/ # Utility functions
ā ā āāā auth.ts # Authentication utilities
ā ā āāā embeddings.ts # Embedding generation
ā ā āāā formatting.ts # Text formatting
ā ā āāā hash.ts # Hashing utilities
ā ā āāā security.ts # Security utilities
ā ā āāā validation.ts # Input validation
ā āāā index.ts # Main Worker entry
āāā .env.example # Environment variables template
āāā .gitignore # Git ignore patterns
āāā .mcp.json.example # MCP configuration example
āāā LICENSE # MIT License
āāā README.md # This file
āāā package.json # NPM package config
āāā tsconfig.json # TypeScript config
āāā wrangler.toml.example # Cloudflare Worker config templateš ļø CLI Commands
Core Operations
obvec login # Login to Cloudflare (alias for wrangler login)
obvec deploy # Deploy to production (alias for wrangler deploy)
obvec dev # Start local development (alias for wrangler dev)
npm run build # Build with the checked-in build-only Wrangler configVault Management
obvec index # Index your Obsidian vault
obvec search "AI" # Search your notes from CLI
obvec reset # Clear and reset the entire index
obvec cleanup # Remove orphaned notes (deleted from vault)
obvec info # Show MCP connection informationSearch Options
# Basic search
obvec search "machine learning"
# Limit results
obvec search "productivity" --limit 20
# JSON output for scripting
obvec search "meetings" --json
# Verbose mode (includes up to 1000 chars from vectorize index)
obvec search "projects" --verboseAuthentication
# Set your MCP password
wrangler secret put MCP_PASSWORD
# Create OAuth KV namespace
wrangler kv:namespace create oauth_tokens
# View deployment logs
wrangler tailš Troubleshooting
For common issues and debugging tips, see docs/troubleshooting.md.
š Performance & Costs
For detailed pricing information, free tier limits, and cost scenarios, see docs/pricing-and-performance.md.
āļø Cloudflare Resources Overview
This project automatically creates and configures the following Cloudflare resources:
Vectorize Index:
obsidian-notes(1024 dimensions, cosine similarity)KV Namespaces: OAuth token storage and caching
R2 Bucket: Full note content storage and retrieval
Workers AI: Embedding generation (included with Workers subscription)
These resources are created during the setup process and work together to provide semantic search across your Obsidian vault.
š§ Advanced Configuration
For advanced features like smart re-indexing, timestamp queries, custom embedding models, and OAuth configuration, see docs/advanced-configuration.md.
š Documentation
For detailed guides, see:
ChatGPT Integration - ChatGPT connector setup and configuration
Architecture - Technical implementation details
Advanced Configuration - Power user features
Pricing & Performance - Cost analysis and limits
Troubleshooting - Common issues and debugging
MCP Implementation - MCP protocol details
š¤ Contributing
Fork the repository
Create a feature branch
Test with your own Obsidian vault
Submit a pull request
š License
MIT License - see LICENSE file for details
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.Last updated9
- 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.Last updated4
- Alicense-qualityDmaintenanceEnables Claude to read, write, search, and manage Obsidian vault notes through a serverless MCP server deployed on Cloudflare Workers and R2 storage, utilizing Obsidian Sync for seamless bidirectional synchronization without requiring local NAS or tunnel infrastructure.Last updated3,689MIT
- Alicense-qualityAmaintenanceMCP server that indexes Obsidian notes and enables hybrid search (full-text, fuzzy, semantic) for AI assistants to find and read notes.Last updated60893MIT
Related MCP Connectors
Token-efficient MCP memory for Markdown vaults. Tiered search, GraphRAG, AI memories.
Hosted MCP memory: save sessions/decisions once, search from Claude, Cursor, ChatGPT. EU-hosted FTS.
Search, read, and write your Apple Notes from ChatGPT/Claude via a local Mac agent + MCP relay.
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/ben-vargas/obsidian-vectorize-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server