An MCP server that provides memory management functionality for saving and retrieving conversation summaries. Supports both stdio and HTTP transports.
This server defines 2 tools with schemas and descriptions visible in src/server/MCPServer.js. Both tools have descriptions and input schemas, but analysis reveals significant quality gaps. Tool naming follows verb_noun convention (save_summary, get_summaries), which is a positive. However, descriptions are generic and lack context for LLM selection. Critically, neither tool provides output schema documentation, the rubric requires this. The server lacks parameter validation guidance, error recovery hints, and proper constraints. No pagination support despite get_summaries returning variable-length results. No idempotence guarantees, no permission gating, no audit logging. The implementation shows basic MCP structure but misses production-grade patterns.
Retrieve previously saved memory summaries globally. Returns the 10 latest summaries by default. Use the limit parameter to retrieve more or fewer summaries.
Save a final summary of the chat content globally. This should be called at the end of a conversation to store a summary of what was discussed or accomplished.
Output schemas are completely undocumented. The rubric requires documentation of return types for all tools. Callers cannot plan downstream operations without knowing what fields to expect. This violates the SCHEMAS & OUTPUT critical check.
No pagination metadata. get_summaries accepts a 'limit' parameter but returns no offset, cursor, total count, or has_more indicator. Large result sets will blow the context window. The rubric baseline expects paginated results to return page/offset, limit, and total count.
Tool descriptions lack WHEN-to-use context and prerequisites. 'Save a final summary...' does not explain when this is preferable to other storage methods, what happens on duplicate calls, or error conditions.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 49 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 43 | - | v1 |
No error guidance. Error handling in MCPServer.js (line ~45) catches exceptions and throws generic 'Tool execution failed: {error.message}'. No recovery hints, no classification as retryable vs permanent. The rubric requires errors to guide the LLM on next steps.
Parameter constraints not formalized. 'limit' is described as a number with no min/max bounds. The rubric expects 'page_size 1 - 100' or 'days 1 - 365' style constraints. Unbounded numbers invite LLMs to pass absurd values (limit: 999999).
No idempotence guarantees. save_summary does not document whether repeated calls with the same summary create duplicates or are deduplicated. Agents retry on ambiguous failures, non-idempotent tools risk duplicate records.
No permission or audit logging. Tools lack scope declarations (read:memory vs write:memory) and no audit trail is logged. The rubric requires each tool to declare permissions and log who called what, when, and with what result.
Parameter descriptions are generic. 'The summary content describing the chat conversation and outcomes' does not specify format (plaintext, markdown, JSON), length limits, or forbidden characters. 'Maximum number of summaries to retrieve (default: 10)' does not specify min/max bounds or what happens if limit exceeds available summaries.