OpenViSTAI · Agents · Blockchain · Crypto
Menu
MCP & Tooling

Obsidian MCP Server

Obsidian MCP Server is a TypeScript MCP server that connects MCP-compatible clients to an Obsidian vault through the Local REST API plugin. It exposes tools and resources for reading, searching, creating and editing notes, tags and frontmatter, with STDIO and Streamable HTTP transports.

Independent OpenViST project profile, based on linked sources.

Obsidian MCP Server — OpenViST project profile in MCP & Tooling.
OpenViST project illustration. See the linked sources for product details.
Understand the project

Practical overview

When it fits

Use it when an MCP-compatible client needs structured access to an Obsidian vault for note retrieval, search or editing.

Who it is for

  • Obsidian users who want an MCP-compatible assistant to retrieve or manage vault content.
  • Developers building assistant workflows around an Obsidian knowledge base.

Documented uses

  • Find vault notes using text search or, when available, Omnisearch.
  • Read note content, sections, metadata and tags.
  • Create or update notes and make targeted changes to headings, blocks, tags or frontmatter.
  • Expose vault content and status through MCP resources.
Before you choose

Requirements & limits

The server requires an enabled Obsidian Local REST API plugin and its API key. Documented runtime options are Bun 1.4.0 or later, or Node.js 24 or later.

  • Choose between STDIO and Streamable HTTP based on the MCP client and connection setup.
  • The Local REST API plugin is a required dependency, not an optional integration.
  • Read and write path allowlists can scope vault access; read-only mode disables writes.
  • Omnisearch-based ranking is available only when the Omnisearch plugin endpoint is reachable.
  • Command-palette tools are opt-in, and deletion confirmation depends on client elicitation support.

Check current requirements in the official documentation. Source-based guidance does not mean OpenViST has run or independently tested this project.

Source-based practical guide

Configure the server for a local MCP client

Add an STDIO server entry to an MCP client using the documented npx configuration.

Before you start

  • An MCP client with a server configuration file
  • Node.js 24 or later, or Bun 1.4.0 or later
  • The Obsidian Local REST API plugin version 4.0.0 or later, enabled in the vault
  • An API key generated in the plugin settings

Steps

  1. Add an MCP server entry with command npx, arguments -y and obsidian-mcp-server@latest, and transport type stdio.

  2. Set MCP_TRANSPORT_TYPE to stdio in the entry’s environment.

  3. Set OBSIDIAN_API_KEY to the Local REST API plugin key.

  4. Set MCP_LOG_LEVEL to info if following the complete documented example.

Expected outcome

The MCP client configuration includes the server command and the credentials it needs to connect to the vault’s Local REST API.

Guide limitations

  • The guide describes configuration only; it does not verify a successful connection.
  • The plugin must allow its non-encrypted HTTP server for the default local address, or the server must use the plugin’s HTTPS address.
Source-based practical guide

Start the Streamable HTTP server

Use the repository’s documented command and environment variables to start the HTTP transport.

Before you start

  • Bun 1.4.0 or later
  • The Obsidian Local REST API plugin version 4.0.0 or later, enabled in the vault
  • An API key generated in the plugin settings

Steps

  1. Set MCP_TRANSPORT_TYPE=http.

  2. Set OBSIDIAN_API_KEY to the Local REST API plugin key.

  3. Run bun run start:http.

Expected outcome

The documented server listens at `http://127.0.0.1:3010/mcp` by default.

Guide limitations

  • The example does not give deployment-specific configuration.
  • The Obsidian API plugin must be reachable at the configured base URL.
Evidence and transparency

Sources & review

Source record details
Source availability
Active
Sources checked
13 October 2026
Original website title
cyanheads/obsidian-mcp-server · Official homepage title · retained in its source language