Skip to main content
Glama
t-rhex

mcp-obsidian-vault

by t-rhex

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
GIT_BRANCHNoDefault branchmain
GIT_REMOTENoDefault remoteorigin
WEBHOOK_URLNoComma-separated webhook URLs for task event notifications
TASKS_FOLDERNoTask notes subfolderTasks
USAGE_FOLDERNoToken usage records subfolderUsage
AGENTS_FOLDERNoAgent profile notes subfolderAgents
GIT_AUTO_SYNCNoAuto commit + push after every writefalse
GIT_TIMEOUT_MSNoGit operation timeout30000
WEBHOOK_SECRETNoHMAC-SHA256 secret for signing webhook payloads
GIT_PULL_REBASENoUse --rebase on pulltrue
NOTE_EXTENSIONSNoNote file extensions.md,.markdown
TRASH_ON_DELETENoMove to .trash/ instead of permanent deletetrue
DECISIONS_FOLDERNoDecision records subfolderDecisions
DAILY_NOTE_FOLDERNoSubfolder for daily notesDaily Notes
SEARCH_TIMEOUT_MSNoSearch timeout30000
DISCOVERIES_FOLDERNoDiscovery notes subfolderDiscoveries
MAX_SEARCH_RESULTSNoMax search results50
WEBHOOK_TIMEOUT_MSNoWebhook HTTP request timeout5000
MAX_FILE_SIZE_BYTESNoMax file size (10 MB)10485760
OBSIDIAN_VAULT_PATHYesAbsolute path to your Obsidian vault (required)
GIT_AUTO_SYNC_DEBOUNCE_MSNoDebounce interval5000
GIT_COMMIT_MESSAGE_PREFIXNoAuto-commit message prefixvault:

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
{
  "listChanged": true
}
prompts
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
read_noteA

Read a note's content, frontmatter, tags, and metadata from the vault. Returns parsed frontmatter, markdown content, tags (from frontmatter and inline), and file stats.

create_noteA

Create a new note in the vault with optional YAML frontmatter. Parent folders are created automatically. Fails if the note already exists (unless overwrite=true).

update_noteA

Update an existing note. Supports three modes: 'replace' (overwrite body), 'append' (add to end), or 'prepend' (add to beginning). Can also merge new frontmatter fields into existing frontmatter.

delete_noteA

Delete a note from the vault. By default moves to .trash/ (Obsidian convention) instead of permanent deletion. Set permanent=true for hard delete.

search_vaultA

Full-text search across all notes in the vault. Supports plain text and regex patterns. Returns matching files with line numbers and context. Can filter by folder.

list_vaultA

List files and folders in the vault. Supports recursive listing with depth control. Hidden folders (.obsidian, .trash, .git) are excluded by default.

manage_tagsA

Read, add, or remove tags on a note. Tags are managed in YAML frontmatter. Also reads inline #tags from the note content. Handles deduplication automatically.

daily_noteB

Get, create, or append to a daily note. Supports 'today', 'yesterday', 'tomorrow', or any date string (YYYY-MM-DD). Daily notes are stored in a configurable folder.

git_syncA

Git version control for your vault. Actions: 'status' (show changes), 'commit' (stage all + commit), 'pull' (fetch remote changes), 'push' (push to remote), 'sync' (pull+commit+push in one operation), 'log' (commit history), 'diff' (show changes), 'init' (initialize git repo + .gitignore), 'remote_add' (add remote), 'remote_list' (list remotes).

wikilinksA

Navigate Obsidian [[wikilinks]]. Actions: 'resolve' (find file a wikilink points to), 'backlinks' (find all notes linking to a note), 'outlinks' (list all links from a note), 'unresolved' (find broken wikilinks across the vault). Supports [[note]], [[note|alias]], [[note#heading]], and [[note#^blockid]] syntax.

create_taskA

Create a new task in the vault's task queue with structured YAML frontmatter. Tasks are markdown notes in the Tasks/ folder. Supports priority, type, dependencies, scope isolation, context notes, and acceptance criteria. Auto-refreshes the task dashboard.

list_tasksA

Query tasks by status, priority, type, or assignee. Returns a filtered, sorted list of tasks from the vault's task queue. Use to find available work or monitor progress.

claim_taskA

Atomically claim a pending task for an agent. Sets status to 'claimed' and records the assignee. Prevents race conditions — if two agents try to claim the same task, the second gets a clear error. Checks dependency completion before allowing claim.

update_taskA

Update a task's status, priority, type, or assignee. Append progress entries to the Agent Log. Validates status transitions (e.g. cannot go from 'pending' to 'completed' — must claim first). Use this to move tasks through the workflow.

complete_taskA

Mark a task as completed (or failed/cancelled) with a summary and optional deliverables. Records completed_at timestamp, appends to Agent Log, links deliverable files/URLs, and automatically unblocks dependent tasks.

create_projectA

Create a project with multiple sub-tasks in one call. Use depends_on_indices to wire up task dependencies by array position. Independent tasks can be claimed by different agents in parallel. Returns all task IDs for immediate claiming. Append mode: pass project_id to add new sub-tasks to an existing project.

get_project_statusA

Get rollup status of a project: progress percentage, status breakdown, active agents, overdue tasks, and blockers. Use list_tasks(type: 'project') to find project IDs.

get_contextA

Get a structured briefing of the vault's current state. Returns active projects, in-progress work, pending tasks, blockers, failures, recent decisions, recent discoveries, and pinned notes. Call this FIRST in any new session to understand what's going on.

log_decisionA

Log an architectural or design decision as a structured record. Captures context, rationale, alternatives considered, and consequences. Future agents can find these via get_context to understand WHY things were done.

log_discoveryA

Log a discovery, gotcha, or TIL (Today I Learned) as a structured note. Captures what was found, its impact, and recommendations. Prevents future agents from re-discovering the same things.

review_taskA

Approve or reject a task in needs_review status. Used by humans to gate high-risk work. Approve sends to completed and unblocks dependents. Reject sends to revision_requested.

register_agentA

Register an agent with capabilities, tags, and capacity. Creates or updates an agent profile in the Agents/ folder. Used for capability-based task routing.

list_agentsA

List registered agents. Filter by capability, tag, status, or availability. Shows current workload and capacity for each agent.

suggest_assigneeA

Given a task ID, suggest the best agents to assign based on capability match, tag overlap, availability, and success rate. Returns ranked suggestions.

check_timeoutsA

Scan for overdue and failed tasks. Auto-retry failed tasks within max_retries, escalate exhausted tasks to escalate_to agent/human, release timed-out tasks. Use dry_run=true to preview actions without making changes.

log_usageA

Record token/cost usage for a task or agent. Stores structured usage records in the Usage/ folder. Optionally appends usage summary to the task's Agent Log.

get_usage_reportA

Aggregate token and cost usage across tasks, agents, projects, and time ranges. Returns totals and breakdowns by agent and model.

Prompts

Interactive templates invoked by user choice

NameDescription
task-workerSystem prompt for an AI agent that finds, claims, and completes tasks from the vault's task queue. Use this when spawning a coding agent (Claude Code, Codex, etc.) that should work on tasks autonomously.
project-managerSystem prompt for an AI agent that plans projects, decomposes them into tasks, and monitors progress across multiple worker agents. This agent creates work — it doesn't do the implementation.
vault-assistantSystem prompt for an AI agent that helps manage an Obsidian vault — reading, writing, searching, and organizing notes. Does not handle tasks or projects.

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A3.6/5.0

Scored across 27 tools

Disambiguation4/5

Most tools target a distinct resource and action (notes, tasks, agents, usage, git), so boundaries are generally clear. Minor overlap exists between log_discovery/log_decision and manage_tags/update_note, but descriptions make the intended use recognizable.

Naming Consistency4/5

The overwhelming majority of tools follow a clean verb_noun pattern (create_note, list_tasks, get_usage_report, complete_task). The exceptions are daily_note, git_sync, and wikilinks, which break the pattern but are still readable and predictable.

Tool Count2/5

At 27 tools, this exceeds the 25-tool threshold and feels overloaded for a single MCP server. The server combines note management, task/project management, agent routing, usage tracking, and git operations, which would be better split into separate focused servers.

Completeness4/5

Notes have full CRUD plus search, tags, wikilinks, daily notes, and git sync, while tasks cover create, claim, update, complete, review, timeouts, and project rollups. Notable gaps include no get_task/delete_task, no update/delete_project, and no explicit agent deactivation, but agents can work around these.

Maintenance

ActivityInactive
ResponsivenessNo issues