obsidian-connector
A local MCP connector that lets you read, write, and search an Obsidian vault directly on disk — no plugins or running Obsidian instance required.
Read & Browse
List notes and folders (recursively or not); read full notes, a specific heading's section, or a line range
Get note metadata (created/modified dates, size, tags, frontmatter keys, link & task counts)
Search notes by text or regex, with optional tag, folder, and path-glob filters
List all tags with usage counts; get backlinks to a note; list outgoing links (flagging unresolved ones)
List tasks (
- [ ]/- [x]) across the vault or a single note, filterable by statusRead daily, weekly, or monthly periodic notes for today or a specific date
Write & Modify
Create notes with optional YAML frontmatter; append text to notes (optionally under a heading)
Edit notes via find/replace or by rewriting an entire heading section
Update or remove YAML frontmatter fields without touching the body
Toggle task checkboxes by line number
Move/rename notes with automatic
[[wikilink]]rewriting across the vaultDelete notes (moved to
.trash— recoverable)Append to or create daily, weekly, or monthly periodic notes
Create notes from templates with
{{title}},{{date}},{{time}}, and custom variable substitution
Safety
All file access is sandboxed to the configured vault folder; path-traversal is blocked
Deletions move files to
.trashrather than permanently removing them
Provides tools for reading, writing, searching, and managing Markdown notes in an Obsidian vault, including listing notes and folders, reading note content, full-text and tag search, getting backlinks, creating and appending notes, managing daily notes, and updating YAML frontmatter.
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-connector search notes tagged #meetings"
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.
Vault Connector for Obsidian
A local MCP connector that lets Claude read, write and search any Obsidian vault. It works directly with the Markdown files on disk — no community plugins, and Obsidian does not need to be running.
Independent project, not affiliated with or endorsed by Obsidian. "Obsidian" is a trademark of Dynalist Inc.
All access is sandboxed to the single vault folder you configure; the server refuses any path that would escape it.
Tools
Tool | Access | Description |
| read | List Markdown notes, optionally within a folder |
| read | List sub-folders of the vault or a folder |
| read | Read a note — or just one heading's section / a line range |
| read | Note metadata: dates, size, tags, link & task counts |
| read | Text or regex search, with |
| read | List every tag in the vault with usage counts |
| read | Find notes linking to a target via |
| read | List links a note points to, flagging unresolved ones |
| read | List task checkboxes ( |
| write | Create a note with optional YAML frontmatter |
| write | Append text to a note, optionally under a heading |
| write | Find/replace text, or rewrite a heading's section |
| write | Set or remove YAML frontmatter fields |
| write | Toggle a task checkbox on a given line |
| write | Move/rename a note and rewrite |
| write (destructive) | Move a note to the vault's |
| write | Append an entry to today's (or a given date's) daily note |
| write | Append to a daily, weekly or monthly note |
| read | Read a daily, weekly or monthly note |
| write | Create a note from a template with |
Also exposes MCP prompts (summarize_note, daily_review) and a resource
(obsidian://vault/structure) describing the vault layout.
Related MCP server: @kazuph/mcp-obsidian
Configuration
The server is configured through environment variables (set automatically from the connector settings when installed as a Desktop Extension):
Variable | Required | Default | Purpose |
| yes | — | Absolute path to the vault folder |
| no | `` (root) | Vault-relative folder for daily notes |
| no |
| Daily-note filename format |
| no | daily folder | Folder for weekly notes |
| no |
| Weekly-note format ( |
| no | daily folder | Folder for monthly notes |
| no |
| Monthly-note filename format |
| no | `` (root) | Folder holding note templates |
Development
npm install
npm run build # compile TypeScript to dist/
npm run inspect # open the MCP Inspector against the serverTry it locally in Claude Desktop
Add to claude_desktop_config.json:
{
"mcpServers": {
"obsidian": {
"command": "node",
"args": ["/absolute/path/to/dist/index.js"],
"env": {
"OBSIDIAN_VAULT_PATH": "/absolute/path/to/your/Vault",
"OBSIDIAN_DAILY_FOLDER": "Log"
}
}
}
}Package as a Desktop Extension (.mcpb)
npm run pack # builds and produces obsidian-connector.mcpbThe resulting .mcpb can be installed in Claude Desktop with one click, or submitted to the
Claude connector directory via the
Desktop Extension submission form.
License
MIT
Available Tools
20 toolsappend_to_daily_noteAppend to daily noteA
Append an entry to today's (or a given date's) daily note, creating it with a heading if missing. Folder/format come from settings.
Inputs: content (required), date, heading.
append_to_noteAppend to noteA
Append text to a note, optionally under a specific heading. Creates the note if missing.
Inputs: path (required), content (required), heading.
append_to_periodic_noteAppend to periodic noteA
Append an entry to a daily, weekly or monthly note (created with a heading if missing). Folder/format per period come from settings.
Inputs: period (required), content (required), date, heading.
create_noteCreate noteA
Create a new note with optional YAML frontmatter. Fails if it exists unless 'overwrite' is true.
Inputs: path (required), content (required), overwrite, frontmatter.
create_note_from_templateCreate note from templateA
Create a note from a template file, substituting {{title}}, {{date}}, {{time}} and any custom {{variables}}.
Inputs: path (required), template (required), title, overwrite, +1 more.
delete_noteDelete noteADestructive
Move a note to the vault's .trash folder (recoverable; not a permanent delete).
Inputs: path (required).
edit_noteEdit noteA
Edit an existing note: either find/replace text, or replace the entire body under a heading. Use 'find'+'replace' for text edits, or 'section'+'replace' to rewrite a heading's content.
Inputs: path (required), replace (required), find, section, +1 more.
get_backlinksGet backlinksARead-only
Find notes that link to the target note via [[wikilinks]] (matched on file name).
Inputs: path (required).
get_note_infoGet note infoARead-only
Return metadata for a note (created/modified time, size, tags, frontmatter keys, outgoing link and task counts) without its full body.
Inputs: path (required).
get_outgoing_linksGet outgoing linksARead-only
List the [[wikilinks]] and ![[embeds]] a note points to, marking which targets exist in the vault.
Inputs: path (required).
list_foldersList foldersARead-only
List immediate sub-folders of the vault or a given folder.
Inputs: folder.
list_notesList notesARead-only
List Markdown notes in the vault, optionally limited to a sub-folder.
Inputs: folder, recursive.
list_tagsList tagsARead-only
List every tag used in the vault with the number of notes using each.
Inputs: folder.
list_tasksList tasksARead-only
List Markdown task checkboxes (- [ ] / - [x]) across the vault or a note, with file and line.
Inputs: path, folder, status.
move_noteMove or rename noteA
Move or rename a note and rewrite [[wikilinks]] in other notes that point to it. Refuses to overwrite an existing file unless 'overwrite' is true.
Inputs: to (required), from (required), overwrite, update_links.
read_noteRead noteARead-only
Read a note. Optionally return only a single heading's section, or a line range, to save tokens on large notes.
Inputs: path (required), heading, to_line, from_line.
read_periodic_noteRead periodic noteARead-only
Read the daily, weekly or monthly note for today or a given date.
Inputs: period (required), date.
search_notesSearch notesARead-only
Search the vault by text or regular expression, optionally filtered by tag and path glob. Returns matching notes with snippets.
Inputs: tag, limit, query, regex, +4 more.
toggle_taskToggle taskA
Toggle a Markdown task checkbox on a given line (use list_tasks to find the line number).
Inputs: line (required), path (required).
update_frontmatterUpdate frontmatterAIdempotent
Set or remove YAML frontmatter fields on an existing note without touching its body.
Inputs: path (required), set, unset.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 20 tools
Each tool has a distinct purpose. While there are several 'append' and 'list' tools, they target different entities (daily note, periodic note, tasks, tags, etc.) and are clearly differentiated by name and description.
All tool names use consistent verb_noun snake_case pattern (e.g., append_to_note, create_note, list_tasks, read_note). The verb choice is appropriate and uniform across the set.
20 tools is on the higher side but each tool addresses a specific need in Obsidian interaction (CRUD notes, tasks, tags, links, folders, search, frontmatter). The set is comprehensive without being bloated.
Covers all core operations: creating, reading, editing, deleting, moving notes; managing tasks; searching; frontmatter; backlinks/outgoing links; periodic notes; tags; folders. Only minor attachments or graph operations are missing, which are niche.
Maintenance
Related MCP Connectors
Notes and memory assistant: one Markdown vault that Claude, ChatGPT and any MCP client can share.
Hosted MCP server for Obsidian Sync vaults: read, search, edit notes. Not affiliated with Obsidian.
Zotero MCP server for Claude and ChatGPT: search, citations, safe writes, PDF passages and pages.
Read and write your Fresh Jots notes from Claude, Cursor, and any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceThis is a connector to allow Claude Desktop (or any MCP client) to read and search any directory containing Markdown notes (such as an Obsidian vault).837 npm1,352AGPL 3.0
- AlicenseNot gradedqualityNot gradedmaintenanceObsidian vault connector for Claude Desktop - enables reading and writing Markdown notes using Model Context Protocol (MCP)17 npm5-
- AlicenseAqualityAmaintenanceStandalone 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.1633429 npm38MIT
- AlicenseNot gradedqualityDmaintenanceProvides Claude with read, search, and write access to an Obsidian vault through MCP tools.7,397 npmApache 2.0