Exposes a SomedayWriter prose manuscript project over the Model Context Protocol. Files are readable as resources; the deterministic StoryIndex (entities, threads, references) is exposed as tools. Reuses the exact same index the desktop app does, so answers cannot drift from what the editor sees. Writes are routed through the same root guard as the app's file operations.
Seven read-only tools with clear, domain-specific names (project_overview, search_project, list_entities, find_references, definition_of, mentions_in, thread_beats). All have descriptions (avg ~120 chars, within baseline 34 - 392). Input schemas present with type and description for all parameters. However, output schemas are NOT documented in the visible code, critical gap for LLM planning. Parameters are minimal (1 - 2 per tool) and well-described. No error handling guidance visible. Tool names are verb-noun style and unambiguous. Composition is sound: each tool does one thing. Missing: output schema documentation, error recovery hints, and pagination/limit guidance for potentially large results (e.g., search_project, list_entities).
Resolve a surface form (name / alias / @{…}) to its entity and return that profile — type, summary, and body.
Every place an entity is mentioned (explicit @{…} references), by name or alias. Returns file:line:column and the line.
Every entity (characters, locations, items, factions, threads, …) with its type, aliases, and profile path. Optionally filter by type.
What a file contains: title, manuscript order, threads, word count, and the entities it mentions with counts.
High-level summary of the project: name, file count, entities by type, and thread names. Start here to ground answers about the manuscript.
Full-text search across every Markdown file. Returns file:line:column and the matching line.
Output schemas not documented. LLMs cannot plan downstream calls or extract fields without knowing what each tool returns. Critical for multi-step reasoning.
No error handling guidance. Tools return errors but do not tell LLMs what to do next (retry, ask user, try alternative tool). Blocks agent recovery.
search_project and list_entities may return large result sets but lack pagination (limit, offset, next_cursor) or result count caps. Risks context window exhaustion.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 55 | 2026-07-28+ | v2 |
The scenes on a thread, in reading order (per-thread order, then manuscript order). Use to trace or summarise a storyline.
Parameter 'type' in list_entities is optional but lacks enum constraint. Description says 'e.g. character, location, thread' but does not enforce valid values. LLMs may pass invalid types.
Tool descriptions do not include dependency hints or discovery guidance. E.g., 'definition_of' should hint that 'find_references' or 'search_project' can help locate entities first.