OpenViking long-term memory as MCP tools: semantic search across memories, extract and persist new memories, delete memories by URI or query. Ported from OpenClaw context-engine plugin. Adapted for Claude Code's MCP server interface (stdio transport).
Three tools with basic schemas and descriptions, but significant gaps in parameter documentation and output schema clarity. memory_recall and memory_store have reasonable descriptions (40-60 chars), but memory_forget lacks clarity on destructive behavior. All three tools have input schemas with types and enums, but parameter descriptions are minimal (10-20 chars). No documented output schemas. Error handling and recovery guidance absent. Naming follows verb_noun pattern (positive), but descriptions do not explain WHEN to use each tool or what data is returned.
delete memories by URI or query
semantic search across memories
extract and persist new memories
memory_forget lacks destructive operation warning. Description does not state that this tool DELETES memories irreversibly. Agents need explicit state-modification warnings to plan safely.
No output schemas documented for any tool. LLMs cannot infer what fields are returned (e.g., does memory_recall return [id, content, score, timestamp]?). Agents cannot chain tools without guessing response structure.
Parameter descriptions are too brief (10-20 chars). 'semantic search query', 'memory scope to search', 'maximum number of results' lack context on format, constraints, or examples. Rubric baseline: 72 chars average.
memory_forget has ambiguous parameters: both 'uri' and 'query' are optional, but semantics unclear. Does passing both cause AND or OR logic? Undocumented parameter relationships force LLM guessing.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | <=2025-11-25 | v2 |
No error handling or recovery guidance. If memory_recall returns zero results, what should the agent do? If memory_forget fails, is it retryable? Agents need categorized errors (retryable vs user-fixable vs fatal).