Borrowing it
Nothing to install: this file belongs to emguide/headless-obsidian-mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/emguide/headless-obsidian-mcp/main/CLAUDE.mdgit clone --depth 1 https://github.com/emguide/headless-obsidian-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/instructions/emguide/headless-obsidian-mcp/claude-md)<a href="https://agentmods.dev/instructions/emguide/headless-obsidian-mcp/claude-md"><img src="https://agentmods.dev/badge/instructions/emguide/headless-obsidian-mcp/claude-md.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.25068 | $0.25068 |
| Opus 5 | $0.12534 | $0.12534 |
| Sonnet 5 | $0.05014 | $0.05014 |
| Haiku 4.5 | $0.02507 | $0.02507 |
Grade A, and why
headless-obsidian-mcp CLAUDE.md scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 5d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Runs shell commandslowCapability
Expected in a hook, worth knowing in a rule or an instructions file.
- Node's built-in `node:path`, `node:fs/promises`, and `node:child_process` How it starts
The opening of the file, as written. The whole thing — 1,072 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Headless Obsidian MCP
This is a headless MCP (Model Context Protocol) server for interacting with Obsidian vaults. It provides tools to search, read, navigate the link graph, and edit notes in an Obsidian vault — without the Obsidian GUI.
Development workflow
Anything beyond trivial work (a single-line fix or a pure question) should be done in a git worktree, so parallel development tasks stay isolated from each other and from the main checkout. Trivial changes may be made in place.
Design records
Design specs (brainstorming output) go in design/specs/, implementation plans
(writing-plans output) in design/plans/ — not the superpowers skills'
default docs/superpowers/, which this project does not use. Keep the skills'
YYYY-MM-DD-<topic>-design.md / YYYY-MM-DD-<feature-name>.md filenames.
docs/ is reserved for user-facing reference (docs/CLI.md,
docs/TOOLS.md); design/ is contributor-facing.
These records are written before implementation and are not maintained afterwards — they capture why a decision was made, not what the code currently does. CLAUDE.md and README.md are the current source of truth; a spec that disagrees with them is stale, not authoritative.
Setup
- Set the
OBSIDIAN_VAULT_PATHenvironment variable to point to your Obsidian vault directory - Ensure
ripgrep(rg) is installed on your system - Install dependencies and build:
npm install && npm run build - Run with:
npm startormise run start(if using mise)
Tools
Naming conventions
Tool names follow a fixed verb taxonomy. A new tool reuses an existing verb; it does not coin a synonym. The verb encodes the tool's scope and addressing so an agent can predict behavior from the name alone.
get_— return one addressed thing: a note by path (get_links,get_outline,get_frontmatter,get_property,get_related_notes), or the vault as a single object (get_vault_stats). A collection-valued return is fine when it is about one addressed note (get_related_notes); it is notget_when it enumerates a vault-wide collection — that islist_.list_— enumerate a vault-wide collection, optionally scoped or parameterized:list_notes,list_files,list_folders,list_tags,list_properties,list_property_values,list_recent_notes,list_vault_issues. A required argument does not demote it toget_(list_property_values(key),list_vault_issues(kind)).search_— text query over content (search_notes,search_notes_ranked).read_— return body text from disk (read_notes,read_section).resolve_— map a human name to a canonical path (resolve_note,resolve_daily_note— a date is a human-facing name too).find_by_X— retrieval by one named criterion (find_by_tag).query_— retrieval by a condition object (query_notes);whereis the single condition language, anchored byquery_notes, and reused verbatim by every tool that filters notes.- Writes name the mutation:
write/append/prepend/delete/move,add/remove_tag,set_frontmatter,add/remove_property_values,rename_property,add/append_to/replace_section,patch_note,bulk_edit. The_property_valuesnoun is per-note when prefixedadd_/remove_(writes) and vault-wide when prefixedlist_(read) — the verb, not the noun, carries the scope.create_is the folder-only create verb (create_folder):write_implies content, which a folder has none of, so a folder's creation is named for what it actually does. On folders the mutation verbs otherwise carry over unchanged (move_folder,delete_folder).
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 5d ago First seen · 1,072 lines · 25,068 tokens per session scan A fbe6e6dae029
headless-obsidian-mcp CLAUDE.md is an instructions file published in the GitHub repository emguide/headless-obsidian-mcp (0 stars, last pushed 1mo ago), licensed MIT. It adds 25,068 tokens to every session, about $0.1253 per session on Opus 5. A static security scan graded it A with 1 finding (runs shell commands). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other instructions, from other repositories
next.js AGENTS.md
AGENTS.md instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.
codex AGENTS.md
AGENTS.md instructions for openai/codex, covering rust/codex-rs, the codex-core crate, code review rules, crate api surface and model visible context.
vscode buildNext.instructions.md
Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).
vscode oss-third-party-notices.instructions.md
Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, applying the notice (cutover) and fallback chain (never fail the build).
langchain AGENTS.md
AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.
spec-kit AGENTS.md
AGENTS.md instructions for github/spec-kit, covering agents.md, about spec kit and specify, quickstart — add a new integration in 5 steps, integration architecture and integrationmanifest — file tracking.