Queries org-roam's SQLite DB for search/graph operations and reads/writes .org files directly. Provides tools for searching, reading, creating, and editing org-roam notes.
Org-roam-claude has well-structured tool definitions with consistent naming (verb_noun pattern) and complete input schemas. All 10 tools have descriptions and typed parameters. However, descriptions are generic and lack LLM-optimization guidance (e.g., 'when to use this vs similar tools'). Parameter descriptions are minimal (1-2 sentences). Output schemas are not documented, LLMs cannot predict response structure. Error handling is absent; no recovery guidance. Write operations (create_note, update_note, add_link) lack confirmation/dry-run patterns. No tool annotations (readOnlyHint/destructiveHint). Composition is sound: tools chain well (search → get_note → explore_neighborhood), but some tools overlap (search_notes + find_by_tag both filter by tag).
Insert an org-roam link to another note. Appends an [[id:...][Title]] link to the source note.
Create a new org-roam note. Uses slug-based filename, adds :ID:, :CREATED:, #+title:, and #+filetags: :claude: by default.
Given a note, return its links and backlinks N levels deep. Good for exploring clusters and related topics.
List all notes with a given filetag.
Get all notes that link TO a given note. Returns linking nodes with context snippets.
Get all notes that a given note links TO.
Read a note's full content by title or ID. Returns the org text plus metadata (tags, backlinks, forward links).
Output schemas not documented. LLMs cannot predict response structure (fields, types, pagination). Forces agents to guess what data is returned.
Write operations lack confirmation/dry-run pattern. create_note, update_note, add_link are irreversible but offer no preview or confirmation step. Agents cannot safely plan multi-step edits.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). LLMs cannot distinguish safe reads from destructive writes without explicit hints.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
List all org-roam filetags with note counts.
Search org-roam notes by title, tag, or full-text content. Returns matching node metadata. Use 'query' for title/content search, 'tag' to filter by filetag.
Update an existing org-roam note. Can append content or replace the body (everything after the frontmatter).
Overlapping tools: search_notes and find_by_tag both filter by tag. LLMs waste reasoning cycles deciding between them. Consolidate or clarify distinction.
No error handling or recovery guidance. Tools fail silently (e.g., 'identifier not found') with no actionable next steps for the agent.