MCP-native memory server with built-in governance for AI agents
Strong governance-focused design with 11 well-named tools covering identity, memory lifecycle, and audit. All tools have descriptions (avg 95 chars) and input schemas with enums. However, output schemas are not documented in the visible code, parameter descriptions lack format/constraint details (e.g., namespace format, valid_until ISO 8601 format not stated), and error handling guidance is absent. Tool names follow verb_noun pattern (register, authorize, write, boot, latest, read, transfer, revoke, expire, tier_upgrade, audit), excellent clarity. Schemas use Zod with proper types and enums. Missing: documented return types, actionable error messages, and per-parameter constraint documentation.
Retrieve audit log for a memory record
Check whether a Layer 3 principal has a namespace permission
Session compiler: load latest state, blockers, artifact paths for a namespace. Use at session start instead of free-form search.
Expire a memory record (mark as expired)
Handoff-safe latest memories by created_at DESC for a namespace. Prefer this over amh_read with text search when resuming a session.
Full-text search memories by content, with optional filters
Register a Layer 3 identity principal in the SQLite identity store
Output schemas not documented. Tools return results but LLMs cannot plan downstream calls without knowing field names and types. amh_read, amh_latest, amh_boot, amh_audit lack documented return structures.
Parameter descriptions lack format/constraint details. 'namespace' parameter appears in 8 tools but format (e.g., 'project:acme' pattern) is not documented. 'valid_until' states 'ISO 8601 expiry' but no validation guidance. LLMs cannot infer constraints from names alone.
Irreversible operations (amh_revoke, amh_expire, amh_transfer) lack confirmation/dry-run pattern. Agents can permanently revoke or expire memories without a safety gate. No recovery guidance in error responses.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 63 | 2026-07-28+ | v2 |
Revoke a memory record (mark as revoked, immutable)
Upgrade a memory's source tier from llm_derived to human_confirmed with trust proof
Transfer ownership of a memory to another agent
Write a memory record with governance checks (dedup, source tier, anti-Ouroboros, namespace isolation)
Error handling not visible in tool definitions. No documented error categories (retryable, user-fixable, fatal) or recovery guidance. Tools like amh_authorize and amh_write likely fail but error responses are not specified.
amh_boot and amh_latest descriptions mention 'state markers' and 'handoff' but do not explain what these are or when to use them. Descriptions assume domain knowledge not provided to LLMs.