MCP server for StoryPlotter, a story/plot planning tool. Provides tools to import/export plot data, list plots, retrieve plot details, and manage story elements like characters, relationships, timelines, and locations.
Storyplotter-MCP has well-structured tool definitions with consistent naming (verb_noun pattern) and complete input schemas. All 11 tools have descriptions and typed parameters. However, descriptions are brief (avg ~60 chars, below the 194-char baseline), parameter descriptions lack depth, and output schemas are not documented. Error handling is present but generic. No tool annotations (readOnlyHint/destructiveHint). The codebase shows solid engineering (comprehensive tests, proper validation), but tool definitions prioritize brevity over LLM-optimized clarity.
Get detailed information about a character in a plot
Get detailed information about a location/area in a plot
Retrieve detailed information about a specific plot by title or folder
Get detailed information about a story sequence/act
Import StoryPlotter export data for the authenticated user
List all characters in a plot
List all locations/areas in a plot
List plots with optional filtering by status, folder, or tag
Output schemas not documented. LLMs cannot infer what fields list_plots, get_plot, get_character, etc. return, forcing them to guess at downstream field names and risk failed chaining.
Descriptions are too brief (avg 60 chars vs 194-char baseline). 'List plots with optional filtering by status, folder, or tag' lacks context on when to call this vs get_plot, what structure is returned, or pagination behavior.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). import_data is destructive (overwrites user data) but lacks destructiveHint; read-only tools lack readOnlyHint. Agents cannot infer safety properties.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
List story sequences/acts in a plot
List timeline events and eras in a plot
Request a signed download link for exporting the user's StoryPlotter data
Parameter descriptions lack depth. 'Filter by writing status (e.g., 'writing', 'written')' uses example values instead of enums; LLMs may hallucinate other statuses. No min/max for numeric params, no format specs for strings.
Error messages are generic. Tests show 'import failed' and 'requires a user identity', but no guidance on recovery (e.g., 'Try import_data with valid JSON' or 'Call request_export_link first to get your data').