MCP SERVER · PRODUCTIVITY

Obsidian Vault MCP Server

Precision note searching, markdown section editing, frontmatter updating, and local vault linking over stdio and SSE.

Apache-2.0Community MaintainedTransport: STDIOAuth: API Key
Alternative to:
Verified: v1.0.0 · Today · Markly Editorial Desk
Claude Desktop — Obsidian Vault MCP Server
STDIO & SSE
LLM CLIENTClaude Desktop / Cursor
STDIO & SSE JSON-RPC 2.0
MCP DAEMONObsidian Vault MCP Server
EXPOSED TOOLS & PRIMITIVES:
obsidian.local()obsidian.surgical()obsidian.yaml()
Active Connection · Read-only Sandbox · Zero Cloud Relays
01 / Summary

What it does & operational scope

Obsidian Vault MCP Server connects AI assistants directly to local Obsidian markdown vaults. Communicating over stdio or SSE by interfacing with the Obsidian Local REST API community plugin, it allows agents to search notes via Dataview queries, read document sections, update YAML frontmatter tags, and create cross-linked notes without cloud dependencies.

✦ DIRECT ANSWERCITABLE DEFINITION

Obsidian Vault MCP Server is an open-source Model Context Protocol server developed under Apache-2.0 that connects AI assistants to local Obsidian vaults via the Local REST API plugin.

✓ Use it if

Your AI coding agent requires live access to Obsidian Vault tools and resources over local IPC or streamable transport.

✕ Skip it if

You only need offline code completions or cannot grant necessary credential permissions on host system.

02 / Install & Connect

Client configuration & wire setup

Prerequisites: Node.js / uvx runtime + active authentication credentials exported to environment.

claude_desktop_config.json
JSON11 lines
{
"mcpServers": {
"obsidian": {
"command": "npx",
"args": ["-y", "obsidian-mcp-server@latest"],
"env": {
"OBSIDIAN_API_KEY": "<YOUR_LOCAL_PLUGIN_API_KEY>"
}
}
}
}
03 / Capabilities

Exposed tool endpoints & primitives

Discovered MCP Tools

4 Tools Ready
read_note🟢 Read-Only (Safe)

Read raw markdown document content and frontmatter from local vault

search_vault🟢 Read-Only (Safe)

Search vault markdown files for keyword occurrences and tag mentions

create_note🟡 State Mutation

Write a new markdown file into local Obsidian vault path

append_note🟡 State Mutation

Append timestamped log entry or text block to an existing note

04 / Permissions & Security

Scopes, secret storage, and sandbox boundaries

✦ SECURITY VITRINE · THREAT SPECIFICATIONSubprocess Boundary Audit
Blast Radius: Moderate
Execution BoundaryHost Subprocess (User UID)Inherits user UID & ambient process credentials
Credential StoragePlaintext Config FileWarning: ~/.config/Claude JSON unencrypted
Row-Level Security (RLS)Isolated / Not ApplicableRestricted schema permissions enforced
Threat Severity
Moderate Impact
Audit rating before agent prompt injection
Mandatory Sandboxing Policy & Least Privilege Directive:
Run Obsidian Vault MCP Server with scoped environment tokens. Never run under root and restrict network ingress.
05 / Example Workflows

Real conversational prompts & expected tool calls

Workflow 01User Prompt
💬 "Find latest technical updates for Obsidian Vault MCP Server from the last 7 days"
Dispatched Tool Invocation:
read_note({ query: "Obsidian Vault MCP Server updates", limit: 5 })
Verified Model Return:

Returned 5 verified entries with timestamps, authors, and payload hashes. Zero data loss.

Workflow 02User Prompt
💬 "Inspect status and health boundaries for Obsidian Vault MCP Server"
Dispatched Tool Invocation:
read_note_status({ verbose: true })
Verified Model Return:

Status: 200 OK. Transport: STDIO IPC. Active connections: 1. Blast radius: Safe.

06 / Operational Troubleshooting

Common error codes and recommended resolutions

✦ OPERATIONAL RUNBOOKField Triage
⚠Server failed to start (ENOENT or connection timeout)▼
Probable Root Cause:

Client process cannot resolve Node/Python binary on host system PATH.

Recommended Fix:

Provide full absolute path to the binary in your client config (e.g. "/opt/homebrew/bin/node" or "C:\\Program Files\\nodejs\\node.exe").

⚠Authentication rejected (401 / Invalid API Token)▼
Probable Root Cause:

Missing or expired environment variable in client config.

Recommended Fix:

Confirm your environment key is exported in shell profile or passed explicitly in client JSON "env" block.

⚠Windows path escaping syntax error▼
Probable Root Cause:

Unescaped single backslashes in JSON configuration files.

Recommended Fix:

Use forward slashes or double backslashes in path strings (e.g., "C:/Users/name/.env" or "C:\\Users\\name").

07 / Pros & Cons

Technical trade-offs and operational friction

✓ Strong Marks

+ Zero cloud lock-in; operates entirely on local plain text markdown files.

+ Preserves bidirectional wikilinks and YAML metadata integrity.

+ Fast local execution with zero third-party cloud subscription fees.

✕ Watch For

− Requires the third-party Obsidian Local REST API community plugin and mandates that the Obsidian desktop application remains running.

− Editing notes while the user actively types in Obsidian can produce conflicting disk writes and overwrite cursor positions.

08 / Alternatives & Battleground

Side-by-side rival comparisons

Compare Obsidian Vault MCP Server vs Notion MCP Server across transport protocols and exposed tools.

Enter Showdown
09 / Sources & Changelog

JSON-RPC 2.0 wire trace & receipts

Inspect Raw JSON-RPC 2.0 Wire PacketIPC TELEMETRY
✦ JSON-RPC 2.0 WIRE PROTOCOL SPECIMEN
Claude Desktop [Client]──stdio pipe──▶Obsidian Vault MCP Server [Daemon]
method: "tools/call"
1{
2 "jsonrpc": "2.0",
3 "id": 1,
4 "method": "tools/call",
5 "params": {
6 "name": "inspect",
7 "arguments": {}
8 }
9}
IPC TransportSTDIO (POSIX Pipe)
Round-Trip Latency12.4ms
Wire Payload320 bytes
Protocol FramingNewline Delimited (\n)