Headless MCP server for safely operating a Markdown and Obsidian vault
Strong foundation with 16 well-defined tools, comprehensive schemas, and tool annotations. All tools have descriptions (avg 65 chars) and input schemas with type constraints. Path traversal protection is consistently documented. However, parameter descriptions lack actionable guidance on formats/ranges, error handling is minimal, and some tools combine multiple concerns. Output schemas are defined but not all are visible in the provided code excerpt. Tool naming is clear and verb-driven (vault_list, vault_read, vault_write, vault_delete, vault_move, vault_search_*, vault_patch, vault_export, vault_import). Composition is generally sound with single responsibilities, though vault_patch is complex with 8 optional parameters that could benefit from clearer dependency documentation.
Append content to a file in the vault
Append content to the default inbox directory
Audit asset references in the vault
Create a directory in the vault
Delete a file or directory from the vault
Get document structure map (headings, blocks, links, tags)
Export a file from the vault
Import a file into the vault
vault_patch combines 8 optional parameters with complex interdependencies (targetType, targetScope, operation, contentType, etc.). Parameter descriptions lack guidance on which combinations are valid. LLMs will struggle to compose valid patch requests without trial-and-error.
Parameter descriptions lack actionable format guidance. E.g., 'path' is described as 'Vault-relative file path' but does not specify: must it start with '/'? Can it contain '..'? What is the max length? LLMs cannot infer these constraints from names alone.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2025-06-18+ | v2 |
List vault files and directories
List vault files and directories with detailed metadata
Move or rename a file in the vault
Patch a Markdown file in the vault
Read a file from the vault
Search vault using Obsidian query syntax
Search vault files by filename and content
Write a file to the vault
Error handling is not documented. Tools do not describe what errors can occur (e.g., 'file not found', 'permission denied', 'path traversal detected') or how to recover. LLMs cannot plan retries or fallbacks without this guidance.
vault_search_simple and vault_search_query lack pagination parameters (limit, offset, cursor). Large result sets will blow context windows. No indication of result count or truncation.
Destructive operations (vault_delete, vault_move, vault_write) lack confirmation or dry-run support. Agents can accidentally delete or overwrite files without a safety gate.