Gemini CLI extension for local memory capture and retrieval
This MCP server defines 6 tools with explicit schemas and descriptions visible in src/mcp/tools.ts. All tools have input schemas via createJsonSchema() and are registered with the MemoryMcpService. However, the implementation has critical gaps in parameter descriptions, lacks output schema documentation, and provides no error handling guidance. Tool names follow verb_noun convention (memory_*) which is acceptable, but parameter descriptions are minimal or missing. The server appears functional for core operations but lacks production-grade polish in documentation and error semantics.
Fetch a full memory record by id for citation drill-down.
Store a final session summary card in memory.
Build a compact context pack with citations for a task/query.
Persist a memory observation with optional tags/files for future retrieval.
Search stored memories with FTS.
Get memory database status for the current project scope.
Missing output schema documentation. No tool specifies what fields the response contains, their types, or whether pagination is supported. LLMs cannot plan downstream calls or extract required data without knowing response structure.
Parameter descriptions lack actionable constraints and formats. For example, 'type' parameter in memory_save_observation lists options ('task|decision|fact|constraint|risk|other') in the description as free text rather than as an enum constraint. This invites LLMs to hallucinate values outside the valid set.
No error handling guidance. Tools provide no recovery hints, error classification, or actionable guidance if a call fails. An LLM receiving a generic error has no way to determine if it should retry, ask the user, or move to an alternative approach.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
Optional parameters lack clear defaults and dependency documentation. 'memory_get_context' has optional query, max_items, and max_chars but no explanation of behavior when omitted. 'memory_save_observation' includes session_id and source_hook with no documentation of what they do or when to use them.
Numeric parameters lack range constraints. 'limit' in memory_search says 'Max results (1-50). Default 10.' but does not declare min/max in schema. 'importance' in memory_save_observation says '1-5. Default 3.' but constraint is only in description, not enforced in JSON Schema.
Tool name 'memory_end_session' suggests a session-aware operation but parameter 'session_id' is optional and no documentation clarifies when/how sessions are created or what ending a session does beyond storing a summary.