obsidian-mcp-guard
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| WRITE_VAULT | No | Name of the only vault where write operations are permitted | Claude |
| HOST_VAULT_PATH | Yes | Absolute path to the directory containing your vaults as subdirectories |
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 | {
"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
| Name | Description |
|---|---|
| read_noteA | Return the full markdown content of a note. source is in vault/relative/path.md format, as returned by search_notes. The full filesystem path is HOST_VAULT_PATH / source. |
| list_notesA | List note paths within a vault, optionally scoped to a subfolder. Returns paths in vault/relative/path.md format — the same format as the source field from search_notes — so results can be passed directly to read_note. Set recursive=False to list only the immediate folder (non-recursive). |
| create_noteA | Create a new note at source (vault/relative/path.md format). Refuses with a structured error if the target vault is not WRITE_VAULT. Refuses to overwrite an existing file unless overwrite=True. Creates intermediate directories as needed. |
| update_noteA | Update an existing note. mode must be 'overwrite' (replace entire content) or 'append' (add content to the end of the file). Refuses with a structured error if the target vault is not WRITE_VAULT. |
| delete_noteA | Move a note to the .trash folder at the vault root rather than deleting it permanently. The directory structure within the vault is preserved under .trash so the file can be recovered if needed. Refuses with a structured error if the target vault is not WRITE_VAULT. |
| move_noteA | Move a note from source_path to dest_path (vault/relative/path.md format). Both paths must be within WRITE_VAULT. Fails if dest_path already exists — there is no overwrite option. If create_dirs=True (default), creates missing parent directories. After a successful move, wikilinks in all vault .md files that referenced the old filename are rewritten to use the new filename. Returns {"success": bool, "source": str, "destination": str, "links_updated": int}. |
| lint_noteA | Pre-validate markdown content without writing it to disk. Returns {"valid": bool, "errors": [...], "warnings": [...]}. Use this to check content before calling create_note or update_note. |
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 distinct operation: create, read, update, delete, move, list, and lint. No two tools overlap in purpose, so an agent can clearly differentiate them.
All tool names follow the verb_note/verb_notes pattern (delete_note, move_note, lint_note, read_note, list_notes, create_note, update_note), demonstrating a highly consistent naming convention.
Seven tools is a well-scoped set for a note management server, covering the essential operations without unnecessary bloat or sparse coverage.
The set covers the full CRUD lifecycle plus move, list, and lint, but the descriptions reference a search_notes tool that is not exposed. This creates a potential dead end for agents that rely on that referenced capability.