obsidian-mcp
This server exposes an Obsidian vault to MCP clients through Obsidian CLI tools, enabling note access, search, editing, organization, and workflow automation.
Read, search, and inspect notes, files, folders, metadata, outlines, word counts, and vault info.
Analyze links, backlinks, unresolved links, orphan notes, tags, properties, and tasks.
Read and create daily notes, and append/prepend to notes or daily notes.
Create notes and set frontmatter properties.
Update task statuses and add bookmarks.
Move, rename, delete notes, and remove properties.
Run arbitrary Obsidian CLI commands via an escape hatch.
Use built-in prompt workflows for vault analysis, note summarization, related-note discovery, daily review, and link suggestions.
Provides tools and prompts to interact with an Obsidian vault, including reading, writing, searching notes, managing properties and tasks, and running various CLI commands.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@obsidian-mcp find all orphan notes in my vault"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Obsidian MCP
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)
Related MCP server: Obsidian MCP Server
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-mcpTo make it available across all projects, add --scope user:
claude mcp add obsidian --scope user --env OBSIDIAN_VAULT="My Vault" -- npx -y @zethictech/obsidian-mcpThe -- separator is required so the command and its args aren't parsed as claude mcp add flags.
Environment Variables
Variable | Required | Description |
| Yes | Vault name or ID |
| No | Override path to |
| No | CLI timeout in milliseconds (default: |
Available Tools (34)
Read-only tools (20)
Tool | Description |
| Read the full content of a note |
| Get metadata about a file |
| List files in the vault |
| List folders in the vault |
| Search the vault for text |
| Search with surrounding line context |
| List incoming links to a note |
| List outgoing links from a note |
| Find broken/unresolved links |
| Find notes with no incoming links |
| Get heading structure of a note |
| List frontmatter properties |
| Read a specific property value |
| List tags in the vault or a note |
| List tasks (checkboxes) |
| Read today's daily note |
| Get the daily note file path |
| Get vault info (name, path, size) |
| Count words/characters in a note |
| Get CLI help for any command |
Write tools (9)
Tool | Description |
| Create a new note |
| Append content to a note |
| Prepend content to a note |
| Set a frontmatter property |
| Open/create today's daily note |
| Append to today's daily note |
| Prepend to today's daily note |
| Toggle or update a task's status |
| Add a bookmark |
Destructive tools (5)
Tool | Description |
| Move a note (updates all links) |
| Rename a note (updates all links) |
| Delete a note (trash or permanent) |
| Remove a frontmatter property |
| Run any CLI command directly |
run_commandis 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.). Useget_helpto 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 |
| — | Vault health overview: orphan notes, unresolved links, tags |
|
| Read and summarize a specific note |
|
| Find related notes via backlinks, links, and shared tags |
| — | Review today's daily note and suggest follow-up actions |
|
| Suggest wikilinks to add based on note content |
Troubleshooting
Server not starting?
Verify
OBSIDIAN_VAULTis set and matches your vault name exactlyEnsure Obsidian 1.12+ is installed with the CLI enabled
Run
npx @zethictech/obsidian-mcp --versionto 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-mcpLicense
MIT
Built by Zethic
obsidian-mcp is built and maintained by Zethic, a software and AI engineering studio in Bengaluru.
Need AI assistants built on your team's knowledge? We do agentic AI development — hire dedicated engineers or talk to us about consulting →
Available Tools
34 toolsadd_bookmarkA
Add a bookmark to a file, folder, search, or URL.
Inputs: file, path, folder, search, +2 more.
append_noteA
Append content to the end of a note.
Inputs: content (required), file, path, inline.
create_noteA
Create a new note. Can optionally use a template and set initial content.
Inputs: name, path, content, template, +3 more.
daily_appendB
Append content to today's daily note.
Inputs: content (required), inline, paneType, open.
daily_createAIdempotent
Open/create today's daily note in Obsidian.
Inputs: paneType.
daily_pathARead-onlyIdempotent
Get the expected file path for today's daily note.
Inputs: no named parameters.
daily_prependA
Prepend content to today's daily note (after frontmatter).
Inputs: content (required), inline, paneType, open.
daily_readBRead-onlyIdempotent
Read today's daily note content.
Inputs: no named parameters.
delete_noteADestructive
Delete a note. By default moves to trash; use permanent=true to skip trash.
Inputs: file, path, permanent.
find_orphan_notesARead-onlyIdempotent
Find notes with no incoming links (orphans).
Inputs: total.
find_unresolved_linksARead-onlyIdempotent
Find all broken/unresolved links in the vault.
Inputs: total, counts, verbose, format.
get_backlinksARead-onlyIdempotent
List all notes that link to the specified note (incoming links).
Inputs: file, path, counts, total, +1 more.
get_file_infoBRead-onlyIdempotent
Get metadata about a file (size, dates, type).
Inputs: file, path.
get_helpARead-onlyIdempotent
Get help for Obsidian CLI commands. Omit command for the full command list.
Inputs: command.
get_linksARead-onlyIdempotent
List all outgoing links from the specified note.
Inputs: file, path, total.
get_outlineARead-onlyIdempotent
Get the heading structure/outline of a note.
Inputs: file, path, format, total.
get_propertiesARead-onlyIdempotent
List properties (frontmatter) of a note or across the vault.
Inputs: file, path, name, sort, +4 more.
get_vault_infoARead-onlyIdempotent
Get information about the current vault (name, path, file count, size).
Inputs: info.
list_filesARead-onlyIdempotent
List files in the vault, optionally filtered by folder or extension.
Inputs: folder, ext, total.
list_foldersBRead-onlyIdempotent
List folders in the vault.
Inputs: folder, total.
list_tagsBRead-onlyIdempotent
List tags used in the vault or a specific note.
Inputs: file, path, sort, total, +3 more.
list_tasksCRead-onlyIdempotent
List tasks (checkboxes) in the vault or a specific note.
Inputs: file, path, daily, status, +6 more.
move_noteBDestructive
Move or rename a note to a new path. Automatically updates all links.
Inputs: to (required), file, path.
prepend_noteB
Prepend content to a note (after frontmatter).
Inputs: content (required), file, path, inline.
read_noteARead-onlyIdempotent
Read the full content of a note. Provide either file (wikilink name) or path (exact vault path).
Inputs: file, path.
read_propertyARead-onlyIdempotent
Read the value of a specific property from a note.
Inputs: name (required), file, path.
remove_propertyBDestructiveIdempotent
Remove a frontmatter property from a note.
Inputs: name (required), file, path.
rename_noteADestructive
Rename a note (preserves extension). Updates all links.
Inputs: name (required), file, path.
run_commandADestructive
Run any Obsidian CLI command directly. Use get_help to discover available commands. This is an escape hatch for the ~80 CLI commands not exposed as dedicated tools (sync, plugins, themes, templates, workspaces, publish, dev tools, etc.).
Inputs: command (required), args, flags.
searchBRead-onlyIdempotent
Search the vault for text matching a query.
Inputs: query (required), path, limit, format, +2 more.
search_with_contextARead-onlyIdempotent
Search the vault with surrounding line context for each match.
Inputs: query (required), path, limit, format, +1 more.
set_propertyBIdempotent
Set a frontmatter property on a note.
Inputs: name (required), value (required), file, path, +1 more.
update_taskBIdempotent
Update a task's status (toggle, mark done/todo, or set custom status).
Inputs: file, path, daily, ref, +5 more.
wordcountBRead-onlyIdempotent
Count words and/or characters in a note.
Inputs: file, path, words, characters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
TDQS
Scored across 34 tools
Most tools have clearly distinct purposes, such as create_note vs append_note vs prepend_note. However, a few pairs like get_properties (retrieve all properties) and read_property (single property value) could cause minor confusion, but descriptions clarify the difference.
The naming follows a highly consistent verb_noun pattern (e.g., create_note, delete_note, list_files, search_with_context). The only minor outlier is 'wordcount', but it is still descriptive and does not break the overall pattern.
With 34 tools, the server exceeds the typical well-scoped range (3-15) and enters the 'too many' category. While the domain is rich, the large number may overwhelm agents and suggests some tools could be consolidated.
The tool set covers most CRUD operations for notes, properties, daily notes, links, tasks, and tags. Notable gaps include no explicit folder creation/deletion tools, but the run_command escape hatch provides flexibility, and core workflows are well supported.
Maintenance
Related MCP Connectors
Connect AI assistants to your GitHub-hosted Obsidian vault to seamlessly access, search, and analy…
Shared long-term memory vault for AI agents with 20 MCP tools.
Search and reason over your Obsidian-style Markdown vault, right from ChatGPT.
Notes and memory assistant: one Markdown vault that Claude, ChatGPT and any MCP client can share.
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables AI assistants to search, create, and manage notes in an Obsidian vault via 40+ local tools.527 npmMIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to manage Obsidian vaults programmatically with 28 tools for reading, writing, editing, and analyzing notes.MIT
- AlicenseNot gradedqualityCmaintenanceExposes Obsidian vault tools via Model Context Protocol (MCP) server over stdio, HTTP, or SSE transports, enabling AI assistants to read, write, search, and manage vault notes with 28+ built-in tools and CLI bridge integration.1PolyForm Noncommercial 1.0.0
- FlicenseNot gradedqualityCmaintenanceEnables reading, writing, searching, and managing Obsidian vault notes through MCP tools and prompts, allowing AI agents to interact with local knowledge bases.-