Obsidian MCP Server
Read, write, search, and surgically edit Obsidian notes, tags, and frontmatter.
Connector by cyanheads · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/cyanheads-obsidian-mcp-server
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: note-taking, knowledge-base
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list, install config and code. Checked Oct 25, 2026.
- Tools
- 5 read · 1 write · 8 delete
- Secrets
- 1 (API keys, tokens or passwords)
- Install scripts
- None found
- Runs as
- Node.js package
Tools by what they do 14
Read from the source code; the running server may list different tools.
Read 5 · Look things up without changing anything.
obsidian_get_noteobsidian_list_commandsobsidian_list_notesobsidian_list_tagsobsidian_search_notes
Write 1 · Create, change, send or run things.
obsidian_open_in_ui
Delete 8 · Delete, drop, revoke or wipe things.
obsidian_append_to_noteobsidian_delete_noteobsidian_execute_commandobsidian_manage_frontmatterobsidian_manage_tagsobsidian_patch_noteobsidian_replace_in_noteobsidian_write_note
Secrets and settings it asks for
Secrets: values you paste in that let it act as you.
OBSIDIAN_API_KEY
Other settings (environment variables or headers).
MCP_LOG_LEVELOBSIDIAN_BASE_URLOBSIDIAN_DELETE_ELICITATIONOBSIDIAN_ENABLE_COMMANDSOBSIDIAN_OMNISEARCH_URLOBSIDIAN_READ_ONLYOBSIDIAN_READ_PATHSOBSIDIAN_REQUEST_TIMEOUT_MSOBSIDIAN_VERIFY_SSLOBSIDIAN_WRITE_PATHS
Network hosts it talks to 6
blacksmithgu.github.io· found in codecaseyjhand.com· found in codegithub.com· found in codejson.schemastore.org· found in codejsonlogic.com· found in codemyurl.com· found in code
Tools (14)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
obsidian_append_to_notecan change or delete dataAppend content to a note. **Without `section`: appends to the end of the file, or creates the file if it does not exist (your content becomes the full file).** When an existing file does not end in a line break, one is inserted before your content. On a case-insensitive filesystem, a path that differs from an existing note only in letter case fails with `case_variant_exists` (`existingPath` names the note when the folder listing shows exactly one case match). With `section`: appends to the end of that heading/block/frontmatter (on Local REST API v5.0 and later, content appended to a heading is…
obsidian_delete_notecan change or delete dataDescription is built at runtime.
obsidian_execute_commandcan change or delete dataExecute an Obsidian command by ID (from `obsidian_list_commands`). Behaviour depends on the command — some are destructive (delete file, close vault), some open UI. Commands run with the same authority as a user invoking them from the keyboard.
obsidian_get_noteread-onlyRead a note from the vault — by path, the active file, or a periodic note. Choose a `format` projection: raw body, full object, structural document map, or a single section. A `path` with no exact match but a single case-insensitive match in its folder reads that file instead and reports the path as sent in `requestedPath`; write and delete tools match paths exactly.
obsidian_list_commandsread-onlyList the Obsidian command-palette commands available in the active vault, with their IDs and display names. Filter to a subset with the optional `nameRegex` matched against the display name.
obsidian_list_notesread-onlyDescription is built at runtime.
obsidian_list_tagsread-onlyDescription is built at runtime.
obsidian_manage_frontmattercan change or delete dataGet, set, or delete a single frontmatter key on a note, atomically. `set` requires a JSON-typed `value` (string, number, boolean, array, or object).
obsidian_manage_tagscan change or delete dataAdd, remove, or list a note's tags. Defaults to the frontmatter `tags:` array — set `location` to `inline` or `both` to mutate the note body. `add` ensures the tag is present in the requested location(s); `remove` strips it; `both` reconciles across both representations. Inline `#tag` detection skips what Obsidian indexes no tag in: code (fenced, indented, and inline), wikilinks (`[[...]]` — so a heading anchor, block anchor, or wikilink alias is never read as a tag or rewritten by a removal), images, a markdown link's destination or label (its text is read), HTML blocks and comments (`<!-- … …
obsidian_open_in_uiOpen a file in the Obsidian app UI. By default fails when the path does not exist; the `failIfMissing` flag controls the open-or-create behavior. Opening an existing file needs read access; opening a missing one creates it, so that case needs write access to the path. A path with no exact match but a single case-insensitive match in its folder opens that file instead and reports the path as sent in `requestedPath`.
obsidian_patch_notecan change or delete dataEdit a heading, block reference, or frontmatter field in place — append to, prepend to, or replace the target's body. On Local REST API v5.0 and later, content appended or prepended to a heading is separated from the section’s existing content by a blank line, except a list item appended to a section that ends in a list and has no sub-headings, or prepended to one that opens with a list, which continues that list. Use `obsidian_get_note` with `format: "document-map"` to discover available targets first. Name a heading by its full `Parent::Child` path as the document map lists it, or by a bare …
obsidian_replace_in_notecan change or delete dataSearch and replace inside a single note, literally or by regex. Replacements run in array order, each over the previous one's output, and cover the note body only unless `scope` says otherwise — the YAML frontmatter block is left byte-identical by default, because a prose edit that lands in a scalar can silently invalidate the whole block. Use for edits that don't fit `obsidian_patch_note`'s structural targets — e.g., body-wide find-and-replace. Prefer `obsidian_manage_frontmatter` for typed edits to a single property.
obsidian_search_notesread-onlyDescription is built at runtime.
obsidian_write_notecan change or delete dataCreate or overwrite a note. With `section`, replaces just that heading/block/frontmatter section in place — use `obsidian_get_note` with `format: "document-map"` to discover available targets. Name a heading by its full `Parent::Child` path as the document map lists it, or by a bare leaf name matched at any depth. A leaf shared by several headings is rejected with `ambiguous_section`, unless one of them has no parent heading, in which case the write targets that one; a full path that occurs more than once in the note is rejected with `ambiguous_section` too. Whole-file writes fail with `file_e…
Signals
- Stars
- 701
- Forks
- 107
- Open issues
- 10
- Last commit
- Oct 24, 2026 (5 days ago)
- Last release
- Oct 26, 2026 (3 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- Registry name
io.github.cyanheads/obsidian-mcp-server- Version
- 3.7.2
- Auth
- No auth
- Packages
- npm obsidian-mcp-servernpm obsidian-mcp-server
- License
- Apache-2.0
- Repository
- github.com/cyanheads/obsidian-mcp-server
- First seen
- Oct 24, 2026
- Last checked
- Oct 26, 2026
More from cyanheads
- 0.655score
MCP Ts Template
cyanheads
TypeScript template for building MCP servers with declarative tooling, observability, and auth.
ConnectorAFreshness: ARemoteLocalRead-only★ 152Claude Code +5 - 0.625score
Git MCP Server
cyanheads
Comprehensive Git MCP server enabling native git tools including clone, commit, worktree, & more.
ConnectorBFreshness: BRemoteLocal★ 242↓ 1.6K/wkClaude Code +5 - 0.597score
PubMed MCP Server
cyanheads
Search PubMed/Europe PMC, fetch articles and full text (PMC/EPMC/Unpaywall), citations, MeSH terms.
ConnectorAFreshness: ARemoteLocalRead-only★ 162↓ 1.6K/wkClaude Code +5 - 0.545score
Ntfy MCP Server
cyanheads
Send, manage, and replay ntfy push notifications.
ConnectorAFreshness: ARemoteLocal★ 23Claude Code +5 - 0.542score
Brapi MCP Server
cyanheads
Collaborative BrAPI v2.1 MCP workspace: studies, germplasm, genotypes across Breedbase, T3, more.
ConnectorAFreshness: ARemoteLocal★ 4↓ 660/wkClaude Code +5 - 0.541score
Toolkit MCP Server
cyanheads
Generate IDs, QR codes, and hashes, encode values, geolocate IPs, plus gated host diagnostics.
ConnectorAFreshness: ARemoteLocalRead-only★ 18↓ 133/wkClaude Code +5
Cite this page
Obsidian MCP Server. Agent Mart. https://agentmart.dev/connectors/cyanheads-obsidian-mcp-server (last updated 2026-10-26)