Skip to main content
Glama
digster

obsidian-cli-mcp

by digster

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
OBSIDIAN_VAULTYesVault name this instance targets (injected as vault= on every call).
OBSIDIAN_TIMEOUTNoPer-command subprocess timeout (seconds).30
OBSIDIAN_CLI_PATHNoPath to the CLI binary if it isn't on PATH.obsidian
OBSIDIAN_GUARD_TTLNoSeconds to cache a successful vault-guard check.5
OBSIDIAN_LOG_LEVELNoLog level (logs go to stderr).INFO
OBSIDIAN_VERIFY_READSNoRun the vault guard before reads too (not just writes).true
OBSIDIAN_ALLOW_PERMANENT_DELETENoAllow delete_note(permanent=True) to bypass trash.false

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
logging
{}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
extensions
{
  "io.modelcontextprotocol/ui": {}
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
read_noteA

Read a note's full Markdown contents.

Specify the note by file (name) or path (exact). If both are omitted, the currently active note in Obsidian is used.

search_vaultA

Search the vault for text and return matching files (JSON).

Set context=True to also get the matching lines around each hit, path to limit to a folder, limit to cap results, and case=True for case-sensitive matching.

list_filesC

List files in the vault, optionally filtered by folder and/or ext.

list_foldersA

List folders in the vault, optionally under a parent folder.

note_infoB

Show metadata for a note (size, dates, counts). Defaults to the active note.

list_backlinksC

List notes that link to the target note (JSON). counts=True adds link counts.

list_tagsC

List tags in the vault, or for a specific note (JSON). counts=True adds counts.

list_tasksB

List tasks across the vault or a note (JSON).

Filter with todo=True (incomplete), done=True (completed), or a specific status character (e.g. "/" for in-progress).

list_propertiesB

List frontmatter properties for the vault or a specific note (JSON).

read_propertyB

Read a single frontmatter property name from a note.

vault_infoA

Show info about the configured vault (name, path, file/folder counts, size).

list_vaultsA

List all Obsidian vaults known to this machine, with their paths.

Useful for discovering the exact vault name to put in OBSIDIAN_VAULT. This is a machine-level query, so it is not scoped to the configured vault.

create_noteA

Create a new note.

Use name for a simple title or path for an exact location. Optionally seed content or apply a template. Set overwrite=True to replace an existing note (otherwise creation fails if it exists).

add_to_noteA

Append or prepend content to an existing note.

position is "append" (default) or "prepend". inline=True adds the content without a leading/trailing newline.

set_propertyC

Set a frontmatter property name=value on a note.

type may be one of text, list, number, checkbox, date, datetime.

remove_propertyC

Remove a frontmatter property name from a note.

move_noteC

Move a note to a destination folder or path (to).

rename_noteB

Rename a note to a new name (keeping it in the same folder).

delete_noteA

Delete a note (moves it to trash by default — recoverable).

permanent=True bypasses trash and is only allowed when the server is configured with OBSIDIAN_ALLOW_PERMANENT_DELETE=true.

update_taskA

Update a task's status.

Identify the task by ref ("path:line") or by file/path + line. action is "toggle", "done", or "todo". Alternatively pass a status character to set it directly (e.g. "/" for in-progress).

run_obsidianA

Run any Obsidian CLI command not covered by a dedicated tool (power users).

Pass the command name (e.g. "bookmarks", "wordcount", "history") and a params mapping of CLI options. Boolean flags should be passed as true (e.g. {"total": true}); value options as strings (e.g. {"format": "json"}). Set json=True to parse the output as JSON. The configured vault is injected automatically and the vault guard still applies.

Disruptive commands (restart, reload, eval, devtools, plugins:restrict) and all dev:* commands are rejected.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/digster/obsidian-cli-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server