mcp-obsidian
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HTTP_HOST | No | HTTP server bind address (only used when MCP_TRANSPORT=http). | 0.0.0.0 |
| MCP_HTTP_PORT | No | HTTP server port (only used when MCP_TRANSPORT=http). | 3004 |
| MCP_TRANSPORT | No | Transport mode: 'stdio' (default) or 'http' (Streamable HTTP). | stdio |
| OBSIDIAN_VAULT_PATH | Yes | Absolute path to the local Obsidian vault (required to start). |
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
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_notesA | Lists the vault's notes (.md), optionally restricted to a subfolder. Ignores hidden folders (.obsidian, .git, .trash). |
| read_noteA | Reads the content of a vault note, returning frontmatter, body, and wikilinks found. |
| search_notesA | Searches text across all notes in the vault, returning file, line, and snippet for each match. |
| get_backlinksA | Lists the notes in the vault that reference the given note via [[wikilink]]. |
| create_noteA | Creates a new note in the vault. Fails if the note already exists, unless overwrite=true. Creates intermediate subfolders if needed. |
| append_to_noteA | Appends text to the end of an existing note. Fails if the note does not exist. |
| delete_noteA | Deletes a note from the vault. Requires explicit confirm=true as a guardrail against accidental deletion. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
Each tool targets a clearly distinct operation: listing, reading, searching, backlink lookup, creating, appending, and deleting. The read operations are differentiated by what they return, and the write operations are cleanly separated by semantics.
All tool names follow a consistent verb_noun snake_case pattern (list_notes, read_note, search_notes, create_note, etc.). The naming style is uniform and predictable.
Seven tools is well-scoped for an Obsidian vault server. Each tool covers a necessary note operation without redundancy or bloat.
Core note lifecycle operations are covered: list, read, search, create, append, delete, and backlink discovery. Minor gaps like rename/move or direct edit-by-section exist, but they are workable via create with overwrite and append.