Provides tools for managing an Obsidian vault, including creating and editing notes, searching content, managing daily notes, creating TODOs with priorities and due dates, discovering backlinks, and saving coding session reports with metadata.
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 MCP Servercreate a daily note for today with my meeting notes"
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 MCP Server
An MCP (Model Context Protocol) server for integrating AI assistants with your Obsidian vault. Supports both stdio and HTTP/SSE transports for maximum compatibility.
Features
Session Reports: Automatically save coding session summaries with metadata
Note Management: Create, read, append, and search notes
Daily Notes Integration: Append to daily notes automatically
TODO Tracking: Create and manage TODOs with priorities and due dates
Backlink Discovery: Find notes that link to a specific note
Smart Linking: Get suggestions for related notes based on keywords
Dual Transport: Supports both stdio (direct) and HTTP/SSE (networked) modes
Quick Start with Docker (Recommended)
The easiest way to run the server is with Docker Compose:
The server will be available at http://localhost:9111/mcp.
Installation (Local)
Prerequisites
Node.js 18+
npm or pnpm
Steps
Client Setup
Claude Code (CLI)
Claude Code supports HTTP transport natively. Add to your global config at ~/.claude.json:
Or for stdio transport (direct, no Docker):
After adding, restart Claude Code or run /mcp to reconnect.
Claude Desktop
Claude Desktop only supports stdio transport, so use mcp-remote as a bridge for HTTP servers.
Config location:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%\Claude\claude_desktop_config.json
For HTTP transport (with Docker):
For stdio transport (direct, no Docker):
Restart Claude Desktop after changes.
Cursor
Cursor supports MCP servers with stdio, SSE, and HTTP transports.
Config location:
Global:
~/.cursor/mcp.jsonProject:
.cursor/mcp.json
For stdio transport:
For HTTP transport:
Or configure via UI: File → Preferences → Cursor Settings → MCP
Documentation: Cursor MCP Docs
Windsurf
Windsurf uses the same config format as Claude Desktop.
Config location: ~/.codeium/windsurf/mcp_config.json
Or configure via UI: Windsurf Settings → Cascade → Plugins
Documentation: Windsurf MCP Docs
Zed
Zed has built-in MCP support but currently only supports stdio transport (not HTTP).
Config location: ~/.config/zed/settings.json
To verify: Check the Agent Panel settings - a green indicator means the server is active.
Documentation: Zed MCP Docs
VS Code with Continue
Continue supports MCP servers via YAML configuration files.
Config location: Create .continue/mcpServers/obsidian.yaml in your workspace or home directory:
For stdio transport:
For HTTP transport:
Documentation: Continue MCP Docs
VS Code with Cline
Cline supports both stdio and SSE transports.
Click the MCP Servers icon in Cline's top navigation → Configure → Advanced MCP Settings
For stdio transport:
For SSE/HTTP transport:
Documentation: Cline MCP Docs
JetBrains IDEs (IntelliJ, WebStorm, PyCharm, etc.)
JetBrains AI Assistant supports MCP servers starting from version 2025.1.
Setup via UI:
Go to Settings → Tools → AI Assistant → Model Context Protocol (MCP)
Click + to add a new server
Configure the server
For stdio transport:
Note: MCP tools only work with "Codebase" mode enabled in the chat window.
Documentation: JetBrains MCP Docs
Generic HTTP Client
For any client supporting HTTP/SSE MCP transport:
Endpoint:
http://localhost:9111/mcpHealth check:
http://localhost:9111/healthProtocol: MCP over Streamable HTTP (SSE responses)
Required headers:
Accept: application/json, text/event-stream
Example initialization request:
Transport Modes
HTTP/SSE Transport (Default for Docker)
Best for:
Multiple clients connecting simultaneously
Networked/remote access
Containerized deployments
Stdio Transport (Default for local)
Best for:
Direct integration with IDEs
Single client usage
Lower latency
Available Tools
Tool | Description |
| Save coding session summaries with metadata |
| Create or overwrite a note |
| Append content to an existing note |
| Append to today's daily note |
| Search notes by content, tags, or folder |
| Read a note's content and frontmatter |
| List recently modified notes |
| Find notes linking to a specific note |
| Create a TODO item |
| Get suggestions for related notes |
Tool Details
Environment Variables
Variable | Description | Default |
| Path to Obsidian vault | Required |
| Transport mode: |
|
| HTTP server port (when using http transport) |
|
Vault Structure
The server creates/uses this structure:
Development
Troubleshooting
"Server not initialized" error
The MCP client has a stale session. Solutions:
Claude Code: Run
/mcpto reconnectClaude Desktop: Restart the app
Docker: Run
docker compose restart
Connection refused
Ensure the server is running:
Permission denied writing notes
If using Docker, ensure the vault is mounted with write access (:rw not :ro) in your .env file.
MCP tools not appearing
Check server logs:
docker compose logsVerify configuration path is correct
Restart your IDE/client
For JetBrains: Ensure "Codebase" mode is enabled
Zed shows "Server not active"
Zed doesn't support HTTP transport yet. Use stdio configuration instead.
License
MIT