obsidian-mcp-server
A tool for manipulating and interacting with Obsidian vaults through Model Context Protocol.
GraphCanon updated 3w · GitHub synced 3w
Decision brief
The obsidian-mcp-server is a specialized utility for interacting with Obsidian vaults using the Model Context Protocol over STDIO or Streamable HTTP.
Good fit when
- When requiring precise manipulation of content, tags, and metadata within an Obsidian knowledge base through automated scripts or third-party applications that support the Model Context Protocol.
- For developers who need to integrate Obsidian data retrieval and modification functionalities directly into their TypeScript-based projects.
Avoid when
- When working with non-Obsidian knowledge bases as this tool is specifically designed for manipulating content within an Obsidian vault framework.
- If your project does not require the Model Context Protocol for communication, as this introduces a specific layer of protocol handling that may be unnecessary overhead.
- Pricing:
- freemium - Freely accessible and distributable with commercial usage allowed.
- Requirements:
- The software requires a running Obsidian vault, basic knowledge of TypeScript, and an understanding of Model Context Protocol for effective use.
Observed Jul 15, 2026 · Source: enrich:decision_facts
Verify the decision
Adoption
Package downloads where a registry match exists. GitHub stars (642) are secondary evidence.
- npm downloads (30d)
- 15,280·npm downloads API·3w
Maintenance and security
Full trust report- Maintenance
- Active (27d since push)
- As of 3w
- Provenance
- Not a fork · Personal account
- As of 3w
- Security (OSV)
- No lockfile
- As of 4w
Public GitHub metadata and optional OSV scans. Signals, not a guarantee. Trust methodology.
Install
npm install obsidian-mcp-server npmSimilar tools
Same-category neighbours. No typed graph edges are catalogued for this tool yet.
Evidence and technical details
Sourced facts, taxonomy, compatibility claims, README excerpt, and machine-readable endpoints.
Overview
cyanheads/obsidian-mcp-server enables reading, writing, searching, and editing notes within Obsidian knowledge bases using the Model Context Protocol over STDIO or Streamable HTTP.
Capability facts
- Deploy
- Self-host
Source: dockerfile:Dockerfile · Jul 27, 2026
- Docker
- Dockerfile present
Source: dockerfile:Dockerfile · Jul 27, 2026
- CLI
- CLI entrypoint
Source: package.json:bin|scripts · Jul 27, 2026
- MCP server
- No MCP server detected
Source: repo_scan · Jul 27, 2026
- Languages
- typescript, javascript
Source: github.language+package.json · Jul 27, 2026
Categories
Compatibility
Sourced claims from the README excerpt - not unsourced marketing copy.
Source: README excerpt (regex_v1, Jul 27, 2026)
Or with npx (no Bun required):Source link
Tags
README
Getting started
Add the following to your MCP client configuration file. The Obsidian Local REST API plugin must be installed and enabled in your vault — see Prerequisites.
{
"mcpServers": {
"obsidian-mcp-server": {
"type": "stdio",
"command": "bunx",
"args": ["obsidian-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info",
"OBSIDIAN_API_KEY": "your-local-rest-api-key"
}
}
}
}
Or with npx (no Bun required):
{
"mcpServers": {
"obsidian-mcp-server": {
"type": "stdio",
"command": "npx",
"args": ["-y", "obsidian-mcp-server@latest"],
"env": {
"MCP_TRANSPORT_TYPE": "stdio",
"MCP_LOG_LEVEL": "info",
"OBSIDIAN_API_KEY": "your-local-rest-api-key"
}
}
}
}
For Streamable HTTP, set the transport and start the server. Inline env vars work for one-off runs; for repeated use, copy values into .env (see .env.example) and run bun run start:http.
MCP_TRANSPORT_TYPE=http OBSIDIAN_API_KEY=... bun run start:http
---
### Installation
1. **Clone the repository:**
```sh
git clone https://github.com/cyanheads/obsidian-mcp-server.git
-
Navigate into the directory:
cd obsidian-mcp-server -
Install dependencies:
bun install -
Configure environment:
cp .env.example .env # edit .env and set OBSIDIAN_API_KEY
Docker
docker build -t obsidian-mcp-server .
docker run --rm -e OBSIDIAN_API_KEY=your-key -p 3010:3010 obsidian-mcp-server
The Dockerfile defaults to HTTP transport, stateless session mode, and logs to /var/log/obsidian-mcp-server. OpenTelemetry peer dependencies are installed by default — build with --build-arg OTEL_ENABLED=false to omit them.
The image binds to 0.0.0.0 inside the container (required for Docker port mapping). For any deployment reachable beyond your own machine, set MCP_AUTH_MODE=jwt (with MCP_AUTH_SECRET_KEY) or oauth — otherwise the listener forwards your OBSIDIAN_API_KEY to the vault on behalf of every caller.
License
Apache-2.0 — see LICENSE for details.
For agents
This page has a .md twin and JSON over the API.