Server profile

Obsidian MCP Server

Obsidian MCP Server gives assistants note reading, search, and targeted editing in an Obsidian vault. It includes tag and frontmatter management, optional path restrictions, and stdio or streamable HTTP operation.

Server facts

Obsidian MCP Server

Tech

Runtime / language
nodeTypeScript
Transports
stdio
Remote available
No
Authentication
Not specified

Activity

GitHub stars
695
Last commit
Data as of

Tags

  • Frontmatter
  • Markdown
  • Note Editing
  • Obsidian
  • Typescript

Overview

Obsidian MCP Server gives MCP clients structured access to notes, metadata, and editing operations in an Obsidian vault. Notes can be read as raw Markdown, a full structured object, a document map, or an individual section. Document maps expose headings, blocks, and frontmatter fields that other tools can target without replacing an entire file. Search supports text and JSONLogic, with BM25-ranked Omnisearch available when its plugin HTTP service is reachable. Results use cursor pagination, and file listings support filters and bounded recursive traversal.

Editing includes appending, section patches, sequential literal or regex replacements, frontmatter changes, and tag reconciliation. Whole-file writes refuse to overwrite an existing note unless explicitly allowed. Deletion remains destructive, with interactive confirmation requested when the client supports it. Optional policies can restrict read and write paths or disable writes altogether; unset policies allow access throughout the vault. Tag aggregation is a notable exception because it remains vault-wide rather than following path narrowing. Command-palette discovery and execution are separately opt-in, since commands can have broad side effects. The README advertises stdio and streamable HTTP, and the input configuration supplies a Local REST API key setting. However, the supplied README excerpt does not include a complete runnable launch command, so a setup command cannot be reproduced from that source alone.

Install & configure

Requirements

  • An Obsidian vault
  • A Local REST API key as shown in the input configuration
  • An MCP-compatible client

No install command stated in the README — see repo.

Not stated in the supplied README excerpt: a complete runnable installation or launch command. The structured configuration suggests npx, but no command is reproduced here because the spec requires a README command. The README supports stdio and streamable HTTP. Omnisearch requires its plugin HTTP service to be reachable.

Config file · macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

Windows: %APPDATA%\Claude\claude_desktop_config.json

Use Settings → Developer → Edit Config when available. Do not assume a Linux configuration path; check the client documentation for your platform. Remote servers use the app’s connector flow when supported, not the local stdio file shown here. Merge this example with existing settings; do not overwrite unrelated servers.

No install command stated in the README — see repo. Check the client documentation for a supported connection method.

Read the Claude Desktop setup guide

Config file · Project: .cursor/mcp.json

User: ~/.cursor/mcp.json

The project path is relative to the workspace root. The tilde denotes your user home directory. Use Cursor’s MCP settings to confirm which configuration and scope your installed version is reading. Merge this example with existing settings; do not overwrite unrelated servers.

No install command stated in the README — see repo. Check the client documentation for a supported connection method.

Read the Cursor setup guide

Config file · Workspace: .vscode/mcp.json

For user scope, use the “MCP: Open User Configuration” command if available. Do not guess a user configuration path across operating systems, profiles, containers, or remote workspaces; check the client documentation. Merge this example with existing settings; do not overwrite unrelated servers.

No install command stated in the README — see repo. Check the client documentation for a supported connection method.

Read the VS Code setup guide

Config file · macOS/Linux: ~/.codeium/windsurf/mcp_config.json

Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json

Open the MCP configuration through Windsurf’s settings when possible to confirm the active file. Paths can differ in managed or future releases; check the client documentation if this location is not present. Merge this example with existing settings; do not overwrite unrelated servers.

No install command stated in the README — see repo. Check the client documentation for a supported connection method.

Read the Windsurf setup guide

Config file · Project scope: .mcp.json at the repository root

The project file uses mcpServers. For user scope, use claude mcp add --scope user rather than assuming .mcp.json in your home directory is the user configuration. Check the client documentation for managed settings and storage details. Merge this example with existing settings; do not overwrite unrelated servers.

No install command stated in the README — see repo. Check the client documentation for a supported connection method.

Read the Claude Code setup guide

Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.

Tools

Source: repository tool metadata and repository README. Tool descriptions are a documented snapshot, not a live capability check.

ToolWhat it does
obsidian_get_noteRead a note, document map, or selected section.
obsidian_list_notesList notes and directories with depth and name filters.
obsidian_list_tagsList vault tags and usage counts, including hierarchical parents.
obsidian_open_in_uiOpen a vault file in Obsidian, optionally creating a missing file.
obsidian_search_notesSearch note content or metadata with cursor-based pagination.
obsidian_write_noteCreate a note or replace content, including a targeted section.
obsidian_append_to_noteAppend to a note or section; whole-file mode can create missing notes.
obsidian_patch_noteAppend, prepend, or replace a heading, block, or frontmatter target.
obsidian_replace_in_noteApply ordered literal or regex replacements within one note.
obsidian_manage_frontmatterRead, set, or remove one frontmatter key atomically.
obsidian_manage_tagsList, add, or remove frontmatter and optional inline tags.
obsidian_delete_noteDelete a note, requesting confirmation when supported by the client.
obsidian_list_commandsDiscover command-palette commands when explicitly enabled.
obsidian_execute_commandRun an Obsidian command by ID when explicitly enabled.

Names, permissions, and defaults can change. Check the current upstream documentation before granting access.

Use cases

  • Read a section of a note without loading the full document.
  • Update headings or frontmatter without replacing the whole file.
  • Search vault content with text or metadata predicates.
  • Reconcile inline and frontmatter tags.
  • Limit an assistant to a specific writable folder.

Strengths

  • Structural note maps enable targeted edits.
  • Existing files are protected from default whole-file overwrites.
  • Supports read-only and folder-scoped policies.
  • Optional Omnisearch integration adds ranked retrieval.

Limitations

  • Tag listing remains vault-wide even with path restrictions.
  • Deletion has no API-level undo in the supplied tool facts.
  • The supplied README excerpt lacks a complete runnable setup command.

Frequently asked questions

Yes. Read a document map to discover structural targets, then use section writing or patching.

No. The README requires explicit overwrite permission for whole-file replacement of an existing note.

No. Tag listing and the tags resource remain vault-wide.

No. Both discovery and execution require OBSIDIAN_ENABLE_COMMANDS=true and are disabled in read-only mode.

Its search mode is exposed only when the plugin HTTP server is reachable at startup.

Independent listing, not an affiliation or security review. Grant the least access needed and verify the upstream instructions before running code.

Related MCP servers

MCP Server for Obsidian

Memory & Knowledge

MCP Server for Obsidian connects assistants to an Obsidian vault through the Local REST API plugin. It supports note discovery, reading, search, targeted insertion, appending, and deletion for conversational knowledge workflows.

Notion MCP Server

Memory & Knowledge

Connect an MCP client to the Notion API to work with pages and data sources. This local server supports Markdown content operations, but Notion now prioritizes its separate remote MCP service.

Memory Bank MCP Server

Memory & Knowledge

Manage project memory files through an MCP assistant using a shared storage root. The server separates projects and provides file discovery, reading, creation, and updates for memory-bank workflows.

MCP Knowledge Graph

Memory & Knowledge

Keep assistant memories as local entities, relationships, and facts across conversations. MCP Knowledge Graph supports project-specific and global JSONL stores, optional topic databases, and explicit memory editing tools.

Grounded Docs MCP Server

Memory & Knowledge

Grounded Docs MCP Server builds a documentation index that coding assistants can query by library version. It ingests websites, repositories, packages, and local files, with CLI, Web UI, and MCP access.

Context Portal MCP (ConPort)

Memory & Knowledge

Context Portal stores structured project memory for AI assistants in a workspace-specific SQLite database. It tracks decisions, progress, architecture, and custom context, with relationships and semantic search for retrieval.

Basic Memory

Memory & Knowledge

Basic Memory gives AI clients persistent knowledge stored as Markdown that people can also edit. It combines linked notes, semantic search, and optional cloud collaboration.

Qdrant MCP Server

Memory & Knowledge

Qdrant MCP Server stores information and retrieves relevant memories through semantic search. It connects MCP clients to a Qdrant service or a local database path.