MCP server for explicit TMCRA long-term Agent memory operations
Server defines 6 tools with explicit schemas and descriptions. Naming follows verb_noun pattern (tmcra_recall, tmcra_ingest, etc.). Descriptions are present but generic (avg ~80 chars, below 194-char baseline). Parameters have types and descriptions, but lack enums for constrained values (e.g., 'consistency' accepts free-form strings like 'read_your_writes' or 'eventual', should be enum). Output schemas are not documented in tool definitions. Error handling is minimal, no recovery guidance or actionable error messages visible in code. Security: API key injected via env (good), but no permission gates or audit trail patterns evident. Composition is reasonable: tools form a coherent lifecycle (prepare → commit/suppress), but descriptions don't explain dependencies or when to call each tool.
Commit a prepared turn with assistant response to memory
Ingest messages into TMCRA memory with consistency and policy settings
Prepare a turn by recalling memory and setting up context for agent interaction
Recall memory from TMCRA with query, evidence mode, and optional job waiting
Suppress automatic memory capture for the current turn
Wait for a TMCRA job to complete with timeout and polling
Constrained parameters lack enum declarations. 'consistency' (read_your_writes|eventual), 'evidence_mode' (auto|...), and 'slow_policy' (auto|...) accept free-form strings, inviting hallucinated values. Should declare as enums.
Output schemas not documented. Tool descriptions state what they do but not what fields the response contains. LLMs cannot plan downstream calls or extract required data (e.g., job_id from ingest response).
Tool descriptions are generic and lack dependency hints. 'Prepare a turn by recalling memory...' does not explain when to call prepare_turn vs recall, or that prepare_turn must precede commit_turn. Agents cannot infer the correct sequence.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2025-06-18+ | v2 |
No error handling guidance. Code does not show recovery hints (e.g., 'If job times out, retry with longer timeout_seconds'). Errors are likely raw API responses without actionable next steps for the LLM.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Risk field is declared in metadata but not exposed in tool schema. LLMs cannot infer which tools are safe to retry or have side effects.