Overview
Obsidian MCP Server is a Model Context Protocol server designed for large language models (LLMs) to interact with Obsidian vaults, enabling AI assistants to manage knowledge bases effectively.
To use the server, install Node.js, enable the Local REST API plugin in Obsidian, and clone the repository or install it via npm. Configure the MCP client settings with your API key and other parameters.
- Atomic file operations with validation and resource monitoring. - Full-text search capabilities with advanced querying options. - YAML frontmatter parsing and intelligent property management. - API key authentication with rate limiting and SSL options.
- Managing and searching through large collections of notes in Obsidian.
- Automating file operations and updates in an Obsidian vault.
- Integrating AI assistants to enhance knowledge management workflows.
Add to your AI client
Use these steps to connect Obsidian MCP Server in Cursor, Claude, VS Code, and other MCP-compatible apps. The same JSON appears in the Use with menu above for one-click copy.
Cursor
Add this to your .cursor/mcp.json file in your project root, then restart Cursor.
.cursor/mcp.json
{
"mcpServers": {
"cyanheads-obsidian-mcp-server-mcp-mirror": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-cyanheads-obsidian-mcp-server-mcp-mirror"
]
}
}
}Claude Desktop
Add this server entry to the mcpServers object in your Claude Desktop config, then restart the app.
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)
{
"mcpServers": {
"cyanheads-obsidian-mcp-server-mcp-mirror": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-cyanheads-obsidian-mcp-server-mcp-mirror"
]
}
}
}Claude Code
Add this to your project's .mcp.json file. Claude Code will detect it automatically.
.mcp.json (project root)
{
"mcpServers": {
"cyanheads-obsidian-mcp-server-mcp-mirror": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-cyanheads-obsidian-mcp-server-mcp-mirror"
]
}
}
}VS Code (Copilot)
Add this to your .vscode/mcp.json file. Requires the GitHub Copilot extension with MCP support enabled.
.vscode/mcp.json
{
"servers": {
"cyanheads-obsidian-mcp-server-mcp-mirror": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-cyanheads-obsidian-mcp-server-mcp-mirror"
]
}
}
}Windsurf
Add this to your Windsurf MCP config file, then restart Windsurf.
~/.codeium/windsurf/mcp_config.json
{
"mcpServers": {
"cyanheads-obsidian-mcp-server-mcp-mirror": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-cyanheads-obsidian-mcp-server-mcp-mirror"
]
}
}
}Cline
Open Cline settings, navigate to MCP Servers, and add this server configuration.
Cline MCP Settings (via UI)
{
"mcpServers": {
"cyanheads-obsidian-mcp-server-mcp-mirror": {
"command": "npx",
"args": [
"-y",
"@modelcontextprotocol/server-cyanheads-obsidian-mcp-server-mcp-mirror"
]
}
}
}FAQ
What is the Model Context Protocol?
The Model Context Protocol (MCP) allows AI models to interact with external tools and resources through a standardized interface.
Do I need to install any plugins?
Yes, you need to enable the Local REST API plugin in Obsidian to use this server.
Is there a limit on API requests?
Yes, the server includes rate limiting to manage the number of requests.7:["$","div",null,{"className":"container mx-auto flex flex-col gap-4","children":["$L26","$L27",["$","$L28",null,{"currentProject":{"id":1365,"uuid":"3e56085d-f659-4568-a5c4-d8a119dac329","name":"cyanheads_obsidian-mcp-server","title":"Obsidian MCP Server","description":"Mirror of","avatar_url":"https://avatars.githubusercontent.com/u/192820360?v=4","created_at":"2025-02-20T15:30:46.833Z","updated_at":"2025-02-23T07:12:23.443Z","status":"created","author_name":"MCP-Mirror","author_avatar_url":"https://avatars.githubusercontent.com/u/192820360?v=4","tags":"obsidian,mcp-server,model-context-protocol","category":"developer-tools","is_featured":false,"sort":1,"url":"https://github.com/MCP-Mirror/cyanheads_obsidian-mcp-server","target":"_self","content":"$29","summary":"$2a","img_url":"https://camo.githubusercontent.com/ddf9d95e0bc00f1978f55318172b6e41110b72526ba6fab0a0b7c1716623a9af/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f547970655363726970742d352e332d626c75652e737667","type":null,"metadata":null,"user_uuid":null,"tools":null,"sse_url":null,"sse_provider":null,"sse_params":null,"is_official":false,"server_command":null,"server_params":null,"server_config":null,"allow_call":false,"is_innovation":false,"is_dxt":false,"dxt_manifest":null,"dxt_file_url":null,"is_audit":false},"randomProjects":[],"currentServerKey":"$undefined"}]]}]