Skip to main content
Glama
thoreinstein

obsidian-mcp

by thoreinstein

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OBSIDIAN_MCP_CONFIGNoOverride the path to the config file. Default: ~/.config/obsidian-mcp/config.json
OBSIDIAN_VAULT_PATHNoPath to the Obsidian vault. Resolution order: obsidian_set_vault tool / vault_path argument, then this env var, then config file.
OBSIDIAN_MCP_DATA_DIRNoOverride the directory for config, LanceDB index, and file-hash cache. Default: ~/.config/obsidian-mcp

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
obsidian_set_vaultC

Set the default Obsidian vault path for this session.

obsidian_list_notesC

List markdown files in the vault or a subdirectory.

obsidian_read_noteC

Read the content of a specific note (Markdown).

obsidian_create_noteC

Create a new note with the given content.

obsidian_append_noteC

Append text to the end of an existing note.

obsidian_get_daily_noteB

Get (or create) today's daily note.

obsidian_search_notesB

Search for notes containing specific text (simple text match).

obsidian_rag_indexA

Index the vault for semantic search (RAG). If file_path is provided, only that file is re-indexed. Incremental by default — only re-embeds changed files. Use force_reindex to rebuild from scratch.

obsidian_rag_queryC

Perform a semantic search on the indexed vault.

obsidian_get_backlinksC

Find all notes that link to a specific note.

obsidian_get_linksC

Get all outgoing links from a specific note.

obsidian_move_noteC

Move or rename a note.

obsidian_update_frontmatterB

Update YAML frontmatter of a note safely. Supports single key/value or batch updates.

obsidian_append_daily_logB

Append text to a specific heading in today's daily note.

obsidian_replace_sectionB

Replace the body under a heading (up to the next heading of equal/higher level, or EOF). The heading line itself is preserved.

obsidian_insert_at_headingA

Insert content under a specific heading. If heading not found, appends it as a new ## section.

obsidian_replace_in_noteA

Replace the first occurrence of a specific text string in a note. Use for surgical inline edits, e.g. adding a wikilink to existing text.

obsidian_get_broken_linksA

Find all wikilinks in the vault (or a subfolder) that point to non-existent notes. Returns broken links grouped by source file.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.5/5.0

Scored across 18 tools

Disambiguation5/5

Tools target distinct Obsidian operations: file CRUD, daily notes, linking, frontmatter, search, and RAG. Overlaps like append_note vs. append_daily_log and replace_in_note vs. replace_section are clearly differentiated by descriptions. An agent can reliably select the intended tool.

Naming Consistency5/5

All 18 tools use the obsidian_ prefix and snake_case, mostly verb_noun patterns. Minor variation for rag_index/rag_query and daily-note composites, but convention is highly predictable.

Tool Count4/5

18 tools is slightly above the ideal 3-15 range, but the domain is feature-rich and each tool covers a distinct capability. It does not feel redundant or bloated.

Completeness4/5

The surface covers read/list/create/append, surgical edits, frontmatter, links/backlinks, search/RAG, daily notes, and move/rename. A delete-note operation is missing, but most lifecycle workflows are covered or workable.

Maintenance

ActivityMaintained
ResponsivenessNo issues