Full coverage of the Obsidian Local REST API v3.5.0 (OpenAPI 3.0.2) for reading, writing, and managing notes in an Obsidian vault
Server has 12 tools with basic descriptions and input schemas present. However, critical gaps undermine quality: (1) Parameter descriptions are minimal or missing context (e.g., 'include_metadata' accepts string 'true'/'false' instead of boolean enum); (2) No output schemas documented, LLMs cannot predict response structure; (3) Error handling returns raw API errors without recovery guidance; (4) No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels; (5) Parameter types are strings where enums or booleans would be clearer. Naming is verb-forward and clear (read_note, create_or_replace_note, delete_note), which is a strength. Descriptions exist but are brief (avg ~80 chars) and lack context on when to use each tool or what to do on failure.
Append content to the end of an existing note. Creates the file if it does not exist.
Create a new note or replace the content of an existing one.
Delete a note from the vault.
Get the currently active file in Obsidian. Set include_metadata to 'true' for tags, frontmatter, and stats.
Download the self-signed certificate used by the Local REST API.
Get the structure of a note: headings, block references, and frontmatter field names.
No output schemas documented. LLMs cannot predict response structure or plan downstream tool calls. E.g., read_note returns unstructured text; LLMs don't know if it includes metadata fields, tags, or file stats.
Boolean/enum parameters passed as strings ('true'/'false'). patch_note has 8 string params (operation, target_type, trim_target_whitespace, create_if_missing) that should be enums or booleans. Invites hallucinated invalid values.
Error handling returns raw API errors without recovery guidance. E.g., 'API Error 404: Not found' tells LLM nothing about what to do next. Should include 'Try list_directory() to find available files.'
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | <=2025-11-25 | v2 |
Get the OpenAPI YAML spec describing the Local REST API capabilities.
Get server status, version info, and authentication status.
List files and folders inside a specific vault directory.
List all files and folders in the vault root directory.
Patch a note relative to a heading, block reference, or frontmatter field. Operations: append, prepend, replace. Use content_type 'application/json' for table rows or frontmatter values.
Read a note from the vault. Set include_metadata to 'true' for tags, frontmatter, and file stats.
No tool annotations despite clear risk levels. delete_note is destructive but has no destructiveHint. read_note is read-only but has no readOnlyHint. Agents cannot distinguish safe from dangerous operations.
Parameter descriptions lack context on format/constraints. E.g., 'filepath' has no guidance on path format (relative? absolute? with/without .md extension?). 'target_delimiter' defaults to '::' but no explanation of when to override.