Skip to main content
Glama

obsidian-mcp

An MCP (Model Context Protocol) server that lets AI coding agents (Claude Code, Codex CLI, etc.) read, write, search, and organize notes in an Obsidian vault. It works directly on the filesystem, so Obsidian doesn't need to be running — Obsidian picks up external changes automatically.

Community project — not affiliated with Obsidian.

Setup

git clone https://github.com/Mochiduki-0715/obsidian-mcp.git
cd obsidian-mcp
npm install
npm run build

Configuration is done through environment variables:

Variable

Description

Default

OBSIDIAN_VAULT_PATH

Absolute path to your vault folder

(required)

OBSIDIAN_DAILY_DIR

Folder for daily notes, relative to the vault root

Daily

OBSIDIAN_TEMPLATE_DIR

Folder for templates, relative to the vault root

Templates

Related MCP server: Obsidian MCP Server

Registering with agents

Claude Code

claude mcp add --scope user obsidian \
  --env OBSIDIAN_VAULT_PATH=$HOME/path/to/your/vault \
  -- node /path/to/obsidian-mcp/dist/index.js

Codex CLI

Add to ~/.codex/config.toml:

[mcp_servers.obsidian]
command = "node"
args = ["/path/to/obsidian-mcp/dist/index.js"]

[mcp_servers.obsidian.env]
OBSIDIAN_VAULT_PATH = "/path/to/your/vault"

Tools

Tool

Description

list_notes

List notes, newest first; optionally restricted to a subfolder

read_note

Read a note, returning parsed frontmatter and the markdown body

create_note

Create a note (pass overwrite: true to replace an existing one)

append_note

Append text; with heading, insert at the end of that section

edit_note

Edit by exact string replacement (old_text / new_text)

update_frontmatter

Update YAML frontmatter by key: merge set values, delete remove keys, body untouched

search_notes

Case-insensitive full-text search, with optional tag, frontmatter, and regex filters

move_note

Move/rename a note and rewrite [[wikilinks]] across the vault

delete_note

Move a note to the vault's .trash/ folder (safe delete); warns if the note is still linked from elsewhere

backlinks

List notes that link to a given note, with file/line/link-type

daily_note

Get or create the daily note for today or a given date

get_outline

Get a note's heading outline (level/text/line) and line count, skipping code fences

create_from_template

Create a note from a template in OBSIDIAN_TEMPLATE_DIR, substituting {{date}}, {{title}}, and custom {{variables}}

Testing

npm test

Runs the TypeScript build followed by Node's built-in test runner (node --test) against the compiled dist/*.test.js files.

Safety

  • Every path is resolved inside the vault root; .. escapes are rejected

  • Deleting moves notes to Obsidian's standard .trash/ folder instead of removing them

  • create_note never silently overwrites an existing note (an explicit flag is required)

License

MIT

Available Tools

6 tools
append_noteA

Append text to a note. With 'heading', the text is inserted at the end of that heading's section (the section is created if missing).

Inputs: path (required), text (required), heading, create_if_missing.

create_noteA

Create a new markdown note (parent folders are created automatically). Fails if the note exists unless overwrite is true.

Inputs: path (required), content (required), overwrite.

edit_noteA

Edit a note by exact string replacement. Fails if old_text is not found, or is ambiguous without replace_all.

Inputs: path (required), new_text (required), old_text (required), replace_all.

list_notesA

List markdown notes in the Obsidian vault, sorted by last modified (newest first). Optionally restrict to a subfolder.

Inputs: folder.

read_noteA

Read a note from the vault. Returns the parsed frontmatter and the markdown body.

Inputs: path (required).

update_frontmatterA

Update a note's YAML frontmatter by key: merge set values (added or overwritten) and delete remove keys. The note body is left untouched.

Inputs: path (required), set, remove.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.2/5.0

    Scored across 6 tools

    Disambiguation5/5

    Each tool targets a distinct action: listing, reading, creating, appending, editing, and updating frontmatter. No two tools overlap in purpose.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun snake_case pattern (e.g., list_notes, create_note, update_frontmatter).

    Tool Count5/5

    With 6 tools, the set is well-scoped for managing notes in a vault, covering essential operations without being overwhelming.

    Completeness3/5

    The set covers create, read, and update operations, but notably lacks a delete tool, which is a significant gap for full lifecycle management.

    Maintenance

    ActivityNo data
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to interact with Obsidian vaults through direct filesystem access, supporting note management, lightning-fast search with SQLite indexing, image analysis, tag/link management, and bulk operations.
      MIT
    • F
      license
      Not graded
      quality
      Not graded
      maintenance
      Enables AI assistants to read, write, search, and navigate Obsidian vault notes with support for CRUD operations, full-text search, graph navigation, daily notes, and frontmatter management.
      3,713 npm
      -
    • A
      license
      C
      quality
      D
      maintenance
      Enables AI assistants to search, read, create, and modify Markdown notes in local Obsidian vaults directly through filesystem operations. Supports tag-based discovery and frontmatter parsing without requiring Obsidian to be open, facilitating integration with VS Code Copilot via stdio transport.
      5
      13 npm
      4
      MIT
    • A
      license
      A
      quality
      A
      maintenance
      Standalone MCP server for Obsidian vaults - hybrid search (FTS5 + vector + cross-encoder reranking), images and PDFs in agent-readable form, Kanban-aware tasks (Tasks-plugin + Dataview formats), structured memory with topic recall, fine-grained read/write tools for optimal token efficiency, and link graph support. Run locally, self-host, or one-click deploy for remote access. OAuth 2.1.
      16
      33
      636 npm
      38
      MIT