MCP server for interacting with Obsidian markdown vaults
Server has 4 tools with minimal quality. Tool names are verb-based (count_, get_, create_, get_) but descriptions are sparse or missing parameter details. Only create_markdown_file has a structured schema with typed parameters; others have empty input objects. No output schemas documented. Error handling is minimal, create_markdown_file returns success/error objects, but others return raw data without guidance. No pagination, no per-item error reporting, no idempotency hints. Descriptions are in Chinese, limiting LLM comprehension in English-first environments. get_all_markdown_contents returns unbounded results (all .md files) without pagination or limits, risking context window exhaustion.
获取 Obsidian 库中所有 Markdown 文件的数量
在 Obsidian 库中创建一个新的 Markdown 文件 Args: filename: Markdown 文件名 (不需要 .md 后缀,会自动添加) content: 文件的初始内容 (可选)
获取 Obsidian 库中所有 Markdown 文件的内容
获取下载文件夹下的文件列表
Three tools (count_markdown_files, get_all_markdown_contents, get_downloads_files) have empty input schemas ({}), providing no parameter guidance to LLMs.
get_all_markdown_contents returns unbounded results (all .md files in vault) without pagination, limit, or offset parameters. Large vaults will exhaust context windows.
No output schemas documented for any tool. LLMs cannot predict return structure or plan downstream calls. create_markdown_file returns {success, path/error} but this is undocumented.
All descriptions are in Chinese. English-first LLMs may misinterpret or ignore non-English descriptions, reducing tool discoverability and selection accuracy.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 43 | <=2025-11-25 | v2 |
create_markdown_file accepts 'filename' but does not validate against path traversal (e.g., '../../../etc/passwd'). No input sanitization visible.