obsidian-mcp

obsidian-mcp

Bridges Obsidian vaults with MCP-compatible AI tools, enabling read/write/search of notes, task management, and vault operations through 34 tools and prompt templates.

Category
Visit Server

README

Obsidian MCP

npm License: MIT Node.js CodeQL CI Conventional Commits CodeRabbit

Access your Obsidian vault from Claude Desktop, Claude Code, and other AI tools that support the Model Context Protocol.

Obsidian 1.12 introduced a powerful CLI, but it isn't directly accessible from GUI-based AI tools like Claude Desktop. This MCP server bridges that gap — giving any MCP-compatible client full access to your vault through 34 tools and prompt templates.

Features: read/write/search notes, manage properties and tasks, run pre-built prompt workflows — all validated with Zod schemas and powered by the official Obsidian CLI.

Prerequisites

  • Obsidian 1.12+ (tested through 1.12.7) with the CLI enabled: Settings → General → Advanced → Command Line Interface → Enable
  • Obsidian app must be running (the CLI communicates with the app)

Setup

Install the package from npm and configure your MCP client to use it. The server runs locally on your machine and communicates with the Obsidian app via its CLI.

How it works

Your machine
┌─────────────────────────────┐
│ Claude Desktop / Claude Code│
│   ↕ stdio (stdin/stdout)    │
│ obsidian-mcp (Node.js)      │ ──CLI──→  Obsidian App (running)
└─────────────────────────────┘

Each user runs the server locally via npx. The server receives tool calls from Claude over stdio and executes Obsidian CLI commands against the running app.

Claude Desktop

Add to your claude_desktop_config.json:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "obsidian": {
      "command": "npx",
      "args": ["-y", "@zethictech/obsidian-mcp"],
      "env": {
        "OBSIDIAN_VAULT": "MyVault"
      }
    }
  }
}

Restart Claude Desktop after saving.

Claude Code

claude mcp add obsidian --env OBSIDIAN_VAULT="My Vault" -- npx -y @zethictech/obsidian-mcp

To make it available across all projects, add --scope user:

claude mcp add obsidian --scope user --env OBSIDIAN_VAULT="My Vault" -- npx -y @zethictech/obsidian-mcp

The -- separator is required so the command and its args aren't parsed as claude mcp add flags.

Environment Variables

Variable Required Description
OBSIDIAN_VAULT Yes Vault name or ID
OBSIDIAN_CLI_PATH No Override path to obsidian binary (auto-detected by default)
OBSIDIAN_TIMEOUT No CLI timeout in milliseconds (default: 30000)

Available Tools (34)

Read-only tools (20)

Tool Description
read_note Read the full content of a note
get_file_info Get metadata about a file
list_files List files in the vault
list_folders List folders in the vault
search Search the vault for text
search_with_context Search with surrounding line context
get_backlinks List incoming links to a note
get_links List outgoing links from a note
find_unresolved_links Find broken/unresolved links
find_orphan_notes Find notes with no incoming links
get_outline Get heading structure of a note
get_properties List frontmatter properties
read_property Read a specific property value
list_tags List tags in the vault or a note
list_tasks List tasks (checkboxes)
daily_read Read today's daily note
daily_path Get the daily note file path
get_vault_info Get vault info (name, path, size)
wordcount Count words/characters in a note
get_help Get CLI help for any command

Write tools (9)

Tool Description
create_note Create a new note
append_note Append content to a note
prepend_note Prepend content to a note
set_property Set a frontmatter property
daily_create Open/create today's daily note
daily_append Append to today's daily note
daily_prepend Prepend to today's daily note
update_task Toggle or update a task's status
add_bookmark Add a bookmark

Destructive tools (5)

Tool Description
move_note Move a note (updates all links)
rename_note Rename a note (updates all links)
delete_note Delete a note (trash or permanent)
remove_property Remove a frontmatter property
run_command Run any CLI command directly

run_command is an escape hatch that gives you access to all ~100 CLI commands not covered by the structured tools above (sync, plugins, themes, templates, workspaces, publish, dev tools, etc.). Use get_help to discover available commands.

All tool inputs are validated at runtime using Zod schemas. Invalid inputs return clear error messages before any CLI command is executed.


Prompts

Five pre-built MCP Prompts provide templated workflows. These gather vault data via CLI calls and return structured messages for the LLM.

Prompt Arguments Description
analyze_vault Vault health overview: orphan notes, unresolved links, tags
summarize_note file required Read and summarize a specific note
find_related file required Find related notes via backlinks, links, and shared tags
daily_review Review today's daily note and suggest follow-up actions
suggest_links file required Suggest wikilinks to add based on note content

Troubleshooting

Server not starting?

  • Verify OBSIDIAN_VAULT is set and matches your vault name exactly
  • Ensure Obsidian 1.12+ is installed with the CLI enabled
  • Run npx @zethictech/obsidian-mcp --version to verify the package loads

Obsidian app not detected?

  • The CLI requires Obsidian to be running — start the app and try again
  • If Obsidian just launched, wait a few seconds for it to fully initialize

Stale npx cache?

npx --yes @zethictech/obsidian-mcp

License

MIT

Recommended Servers

playwright-mcp

playwright-mcp

A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.

Official
Featured
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

graphlit-mcp-server

The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.

Official
Featured
TypeScript
Kagi MCP Server

Kagi MCP Server

An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured
Exa Search

Exa Search

A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.

Official
Featured