Connect MCP
Provides tools for AI agents to read, edit, search notes, run Dataview queries, and execute commands within 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., "@Connect MCPshow all notes tagged 'ideas'"
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.
Connect MCP
An Obsidian plugin that runs an MCP (Model Context Protocol) server, enabling AI agents like Claude to access your vault - read, edit, search notes, and run Dataview queries.
Architecture
AI Agent (Claude Code/Desktop)
↓ (via mcp-remote bridge)
Obsidian Plugin (Express + MCP Server on port 27124)
↓
Obsidian VaultThe MCP server runs directly inside the Obsidian plugin - no separate server process needed.
Related MCP server: obsidian-local-mcp
Prerequisites
Obsidian desktop app
Dataview plugin installed in Obsidian (optional, for DQL queries)
Node.js 18+
Installation
Option A: Install via BRAT (Recommended)
Install the BRAT plugin from Community Plugins
Open BRAT settings and click "Add Beta Plugin"
Enter:
joch/obsidian-connect-mcpEnable "Connect MCP" in Community Plugins
Option B: Manual Installation
Build the plugin:
npm install npm run buildCopy the plugin files to your Obsidian vault:
mkdir -p /path/to/vault/.obsidian/plugins/connect-mcp cp main.js manifest.json styles.css /path/to/vault/.obsidian/plugins/connect-mcp/In Obsidian, go to Settings → Community plugins → Enable "Connect MCP"
Configure the plugin:
Go to Settings → Connect MCP
Click "Generate" to create an API Key
Optionally change the port (default: 27124)
Click "Start Server" or enable auto-start
2. Configure Claude Code/Desktop
Add this to your Claude Code MCP settings:
{
"mcpServers": {
"obsidian": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:27124/mcp",
"--header",
"Authorization:${AUTH}"
],
"env": {
"AUTH": "Bearer YOUR_API_KEY"
}
}
}
}Replace YOUR_API_KEY with the key generated in Obsidian settings.
Available MCP Tools
Vault Tools
Tool | Description |
| List files and folders in the vault |
| Read a note's content and frontmatter |
| Create a new note |
| Replace entire file content |
| Delete a note (moves to trash) |
| Search notes by content |
Edit Tools
Tool | Description |
| Find and replace text using fuzzy matching |
| Insert or replace content at a specific line |
| Edit a specific section: heading, block, or frontmatter |
Graph Tools
Tool | Description |
| Get link statistics for a note |
| Get backlinks and forward links for a note |
Dataview Tools
Tool | Description |
| Execute a Dataview DQL query |
Active Tools
Tool | Description |
| Get the currently open note in Obsidian |
Command Tools
Tool | Description |
| List available Obsidian commands (filter by plugin name) |
| Execute any Obsidian command by ID (Templater, MetaBind, etc.) |
Note: Command tools must be enabled in plugin settings ("Allow command execution").
Templater Integration
The command_execute tool can run Templater templates as commands, enabling AI agents to trigger your automation scripts (e.g., "consume wine bottle", "complete project", "mark article as read").
Exposing Templates as Commands
By default, Templater templates are only accessible via the UI modal. To make them available as commands:
Open Obsidian Settings → Templater
Scroll to Template Hotkeys
Click Add new template hotkey for each template you want to expose
Select the template file (e.g.,
apps/templater/wine/consume.md)Restart Obsidian to register the new commands
Each template gets two commands:
templater-obsidian:path/to/template.md- Run on active file ("Insert")templater-obsidian:create-path/to/template.md- Create new file from template
Example Usage
# List available wine commands
command_list with filter: "wine"
# Execute consume template on active bottle note
command_execute with commandId: "templater-obsidian:apps/templater/wine/consume.md"Recommended Templates to Expose
Add templates that perform actions on existing notes:
Status changes (consume bottle, complete project, mark as read)
Property updates (cycle status, change priority)
File operations (archive, move to folder)
Templates that require user input (modals, prompts) may not work well via MCP.
MCP Resources
URI | Description |
| Vault name, file counts, plugin status |
| DQL syntax quick reference |
MCP Prompts
Prompts let you give AI agents context about your vault that they can discover and use automatically. Create markdown files in the prompts folder (configurable in settings) to help agents understand your vault structure, conventions, and useful queries.
Why Use Prompts?
When an AI agent connects to your vault, it has no idea how you've organized things. Prompts solve this by providing:
Vault structure - Describe your folder hierarchy and what goes where
Dataview queries - Pre-built DQL queries for common searches in your vault
Naming conventions - Explain your file naming patterns and metadata fields
Workflows - Document how you use tags, links, or specific note types
Prompt Format
---
description: Brief description the agent sees when listing prompts
---
# My Vault Guide
## Folder Structure
- `projects/` - Active project notes with status frontmatter
- `archive/` - Completed projects
- `daily/` - Daily notes in YYYY-MM-DD format
## Useful Queries
Find incomplete tasks:
\`\`\`dataview
TASK FROM "projects" WHERE !completed
\`\`\`
Recent notes:
\`\`\`dataview
LIST FROM "" WHERE file.mtime > date(today) - dur(7 days) SORT file.mtime DESC
\`\`\`
## Conventions
- Projects use `status` field: active, waiting, done
- People notes are in `people/` with `birthday` and `company` fieldsThe filename (without .md) becomes the prompt name that agents can request.
Security Features
API Key Authentication
All requests require a valid API key in the Authorization header.
Read-Only Mode
Enable in settings to block all write operations (create, update, delete).
.mcpignore File
Create a .mcpignore file in your vault root to block access to sensitive paths:
# Block private folders
private/
journal/
# Block specific files
secrets.mdUses gitignore-style patterns.
Example DQL Queries
-- List notes with a tag
LIST FROM #project
-- Table of tasks
TABLE file.name, due, status FROM "Tasks" WHERE !completed
-- Notes modified today
LIST FROM "" WHERE file.mday = date(today)
-- Count notes by folder
TABLE length(rows) as Count FROM "" GROUP BY file.folderRemote Access (Cloud Agents)
To securely expose your MCP server to AI agents running in the cloud, use Cloudflare Tunnel. This provides HTTPS encryption without opening ports on your firewall.
Setup Cloudflare Tunnel
Install cloudflared:
# macOS brew install cloudflared # Windows winget install Cloudflare.cloudflared # Linux (Debian/Ubuntu) curl -L https://pkg.cloudflare.com/cloudflare-main.gpg | sudo tee /usr/share/keyrings/cloudflare-archive-keyring.gpg echo "deb [signed-by=/usr/share/keyrings/cloudflare-archive-keyring.gpg] https://pkg.cloudflare.com/cloudflared $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/cloudflared.list sudo apt update && sudo apt install cloudflaredCreate a quick tunnel (no Cloudflare account needed):
cloudflared tunnel --url http://localhost:27124This outputs a URL like
https://random-words.trycloudflare.comUpdate your Claude Code MCP settings to use the tunnel URL:
{ "mcpServers": { "obsidian": { "command": "npx", "args": [ "mcp-remote", "https://random-words.trycloudflare.com/mcp", "--header", "Authorization:${AUTH}" ], "env": { "AUTH": "Bearer YOUR_API_KEY" } } } }
Persistent Tunnel (Optional)
For a stable URL, create a named tunnel with a Cloudflare account:
Login to Cloudflare:
cloudflared tunnel loginCreate a named tunnel:
cloudflared tunnel create obsidian-mcpConfigure the tunnel (create
~/.cloudflared/config.yml):tunnel: obsidian-mcp credentials-file: ~/.cloudflared/<tunnel-id>.json ingress: - hostname: obsidian-mcp.yourdomain.com service: http://localhost:27124 - service: http_status:404Add DNS record:
cloudflared tunnel route dns obsidian-mcp obsidian-mcp.yourdomain.comRun the tunnel:
cloudflared tunnel run obsidian-mcp
Verifying the Setup
# Health check (no auth required)
curl http://localhost:27124/health
# MCP info
curl http://localhost:27124/mcp
# Via tunnel (if using remote access)
curl https://your-tunnel-url.trycloudflare.com/healthDevelopment
npm run dev # Watch modeLicense
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.
Latest Blog Posts
- 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/joch/obsidian-connect-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server