A Model Context Protocol (MCP) server that enables AI assistants to interact with your Obsidian vault
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"obsidian": {
"env": {
"OBSIDIAN_API_KEY": "your-api-key-here",
"OBSIDIAN_BASE_URL": "http://127.0.0.1:27123"
},
"command": "/path/to/ObsidianMCPServer"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Connect your AI assistant to Obsidian! This Model Context Protocol (MCP) server enables Claude, Cursor, and other AI tools to read, write, search, and manage your Obsidian notes through the Local REST API.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Click any tool to inspect its schema.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in productivity
Persistent memory using a knowledge graph
Dynamic problem-solving through sequential thought chains
mini cli search engine for your docs, knowledge bases, meeting notes, whatever. Tracking current sota approaches while being all local
Official Miro MCP server - Supports context to code and creating diagrams, docs, and data tables.
MCP Security Weekly
Get CVE alerts and security updates for ObsidianMCPServer and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Connect your AI assistant to Obsidian! This Model Context Protocol (MCP) server enables Claude, Cursor, and other AI tools to read, write, search, and manage your Obsidian notes through the Local REST API.
http://127.0.0.1:27123 (default)Option A: Install from source code directly
git clone https://github.com/otaviocc/ObsidianMCPServer.git
cd ObsidianMCPServer
swift build -c release
# The executable will be at: .build/release/ObsidianMCPServer
Option B: Install via Brew 🤩
brew tap otaviocc/mcp
brew install obsidian-mcp-server
# The executable will be at: `/opt/homebrew/bin/obsidian-mcp-server`
Option C: Install via Mint
mint install otaviocc/ObsidianMCPServer
# The executable will be at: `$HOME/.mint/bin/ObsidianMCPServer`
Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"obsidian": {
"command": "/path/to/ObsidianMCPServer",
"env": {
"OBSIDIAN_BASE_URL": "http://127.0.0.1:27123",
"OBSIDIAN_API_KEY": "your-api-key-here"
}
}
}
}
Cursor: Add the same configuration in Settings → Tools & Integration
Replace /path/to/ObsidianMCPServer with your actual path:
.build/release/ObsidianMCPServer (from your build directory)/opt/homebrew/bin/obsidian-mcp-server$HOME/.mint/bin/ObsidianMCPServerAlso replace your-api-key-here with your plugin's API key.
Server: Basic server identification and connection information for the Obsidian MCP interface.
getServerInfo(): Get Obsidian server detailsActive Note: Operations for working with the currently open note in Obsidian's interface, providing direct access to read, modify, and manage the active document and its metadata.
getActiveNote(): Get currently active noteupdateActiveNote(content): Replace active note contentdeleteActiveNote(): Delete active notesetActiveNoteFrontmatterString(key, value): Set frontmatter string fieldappendToActiveNoteFrontmatterString(key, value): Append to frontmatter string fieldsetActiveNoteFrontmatterArray(key, values): Set frontmatter array fieldappendToActiveNoteFrontmatterArray(key, values): Append to frontmatter array fieldVault Note: File operations for any note in the vault by filename, enabling programmatic access to create, read, update, delete notes and manage their frontmatter throughout the entire vault structure.
getNote(filename): Get any note by filenamecreateOrUpdateNote(filename, content): Create or update a noteappendToNote(filename, content): Append content to a notedeleteNote(filename): Delete specific notesetNoteFrontmatterString(filename, key, value): Set frontmatter string fieldappendToNoteFrontmatterString(filename, key, value): Append to frontmatter string fieldsetNoteFrontmatterArray(filename, key, values): Set frontmatter array fieldappendToNoteFrontmatterArray(filename, key, values): Append to frontmatter array field**Dir