MCP server for managing conversation snapshots - one command setup
Four tools with explicit schema registration visible in src/index.ts. All tools have descriptions (10-60 chars), but most are concise to the point of being terse. Input schemas are properly JSON Schema with type definitions. However, many parameters lack descriptions: load_snapshot has no parameter descriptions for 'id' and 'name'; list_snapshots has no description for 'limit'; delete_snapshot has no description for 'id'. The save_snapshot tool has the most complete schema with nested properties and descriptions, but even it lacks guidance on the oneOf branching logic (when to use string vs object context). Error handling is generic ('Error: {message}') with no recovery guidance. No output schemas documented. No idempotence or side-effect semantics declared. Tool composition is reasonable (separate save/load/list/delete), but no chaining context IDs are returned from load_snapshot, it returns a prompt string but not snapshot metadata needed for subsequent operations.
Delete snapshot by ID
List all snapshots
Load snapshot by ID, name, or latest
Save current conversation state
Parameter descriptions missing: load_snapshot does not describe 'id' or 'name' parameters; list_snapshots does not describe 'limit'; delete_snapshot does not describe 'id'. LLMs cannot infer whether these are optional, required, or what format they expect.
Output schemas are not documented. The prompt text returned from load_snapshot is unstructured; agents cannot parse snapshot metadata (ID, name, creation timestamp). This blocks downstream operations like 'show me which snapshot I just loaded' and forces LLMs to parse plaintext.
Error handling is generic ('Error: {message}') with no recovery guidance. When a snapshot is not found, the error should suggest 'Try list_snapshots() to see available snapshots' to guide the agent's next step.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 48 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 39 | - | v1 |
save_snapshot description does not clarify that it modifies state (creates a new snapshot). Agents need to know this is not a read-only operation and may have retry implications.
delete_snapshot description does not warn that it is destructive and irreversible. No confirmation or dry-run pattern offered. Agents may delete snapshots unintentionally.
save_snapshot context parameter uses oneOf branching (string OR object) without clear guidance on when each form is appropriate. The description says 'Conversation context and state' (string) vs 'Structured context' (object), but does not specify which agents should prefer or when the LLM should choose each path.
list_snapshots does not specify a default limit or maximum. The description mentions 'default: 100' but does not state if there is a hard cap, and no validation is visible in the code to enforce it. Unbounded results could bloat the context window.
save_snapshot 'name' parameter is optional (per description 'Optional name'), but this is not enforced in the schema. The schema should mark name as non-required or use additionalProperties: false to be explicit.