Home/Data & Retrieval/obsidian-mcp-server
obsidian-mcp-server logo

obsidian-mcp-server

cyanheads/obsidian-mcp-server

A tool for manipulating and interacting with Obsidian vaults through Model Context Protocol.

GraphCanon updated 3w · GitHub synced 3w

642 stars99 forksLast push 1mo TypeScript Apache-2.0

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
npm

Similar 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.

Node.js runtimeNode.js

Source: README excerpt (regex_v1, Jul 27, 2026)

Or with npx (no Bun required):
Source link
stdio transportstdio

Source: README excerpt (regex_v1, Jul 27, 2026)

"type": "stdio",
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
  1. Navigate into the directory:

    cd obsidian-mcp-server
    
  2. Install dependencies:

    bun install
    
  3. 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.

Was this helpful?

Anonymous feedback helps us improve pages and translations.