org-mcp provides 8 tools with basic schemas and descriptions, but falls short of production quality. All tools have descriptions (10-50 chars, below the 50-200 char baseline for LLM optimization) and input schemas are present but minimal. Parameter descriptions are sparse or missing entirely. No error handling guidance, no output schema documentation, and no tool annotations. The server reads and writes org files but lacks idempotency guarantees, confirmation steps for destructive operations, and structured error recovery paths.
Add a new heading to an org file.
Create a new org file.
Get a list of all org files.
Modify an existing heading in an org file.
Read and parse headings from an org file.
Read a specific heading and its content from an org file.
Read the content of an org file.
Descriptions are too short (10-50 chars vs. baseline 50-200 chars). LLMs cannot determine when to select tools or distinguish between similar operations (e.g., add_heading vs. modify_heading both lack context on when to use each).
No output schema documentation. Tools return dicts/lists but LLMs cannot plan downstream calls without knowing field names and types. E.g., read_file_headings returns list[dict] but structure is undocumented.
Destructive operations (add_org_file, add_heading, modify_heading) lack confirmation or dry-run support. No idempotency guarantees. Agents cannot safely retry on ambiguous failures without risking duplicate writes.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Search for text across all org files, returning matching files and headings.
Error responses are generic strings ('Error reading file: ...') with no recovery guidance. LLMs cannot determine if errors are retryable, user-fixable, or fatal.
Parameter descriptions are missing or trivial. E.g., 'file_path' lacks format guidance (relative vs. absolute? allowed characters? max length?). 'heading_title' does not explain case sensitivity or partial matching behavior.