MCP server for fiction manuscript analysis and publishing. Exposes tools for querying story bible, character voices, chapter context, continuity constraints, foreshadowing threads, prose pattern scanning, em-dash reduction, chapter renumbering, and book publishing.
fiction-forge demonstrates solid naming conventions and comprehensive parameter schemas, but suffers from generic descriptions that lack actionable detail for LLM tool selection. All five tools start with action verbs (get_, search_) and have well-formed JSON Schema inputs with type constraints. However, descriptions are formulaic and fail to distinguish between tools effectively, e.g., 'Get character voice notes' doesn't explain WHEN to call this vs. search_bible. Parameter descriptions are present but minimal (often single-phrase), missing examples of expected values, ranges, and dependency relationships. No output schemas are documented. Error handling is entirely absent from visible code. The server is READ_ONLY with no destructive operations, which mitigates risk, but the lack of error guidance and output structure documentation prevents agents from planning multi-step workflows confidently.
Get the full text of a chapter with scene breaks, dialogue, and action marked up. Optionally filter to just dialogue or action sequences.
Get character voice notes, speech patterns, physical tells, and arc position. Handles character aliases as defined in project.yaml. If chapter is provided, includes state/arc position at that point in the story.
Get the continuity rules and character states that constrain rewrites. Optionally scoped to a character or chapter range.
Search for foreshadowing motifs and plot threads. Scoped by query terms and optional chapter range.
Full-text search across story bible, characters, worldbuilding, and all reference docs. Returns matching sections with source and heading. Use for any general question about the story world, characters, or plot.
All tool descriptions lack WHEN/WHY guidance. Descriptions state WHAT tools do but not when an LLM should select them over similar tools. E.g., 'search_bible' vs 'get_character' both retrieve information about story world, no guidance on which to call for a given intent.
No output schemas documented. Tools return data structures but agents cannot see the shape of results. This prevents planning: e.g., does search_bible return a list or an object? Are character arcs paginated? Without documented output types, agents cannot compose tool chains confidently.
Parameter descriptions are minimal and lack examples or constraints. E.g., 'query' param in search_bible says 'Search terms (e.g. magic system, character motivation, timeline)' but does not specify: required length? Max chars? Does it support regex? What happens if no results match? Are results ranked by relevance?
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
No error handling guidance in descriptions. All tools are READ_ONLY, but descriptions omit what happens on edge cases: e.g., get_character with an invalid/unknown name, is it a 404 error? Are alias suggestions returned? What does the LLM do next?
Dependencies between tools and parameters undocumented. E.g., get_character accepts a 'chapter' parameter, does this require the tool to maintain state across chapters? Does searching for 'Gandalf' in chapter 5 return different results than chapter 10? Undocumented dependencies confuse agent planning.