MCP server for imprint vault policy management with document recall via shelves
Imprint has well-structured tool definitions with explicit schemas and descriptions. All 10 tools are registered with names, descriptions, and input schemas using jsonschema tags. However, descriptions are domain-specific and assume deep familiarity with the 'imprint' policy vault system; they lack clarity for general LLM agents unfamiliar with the domain. Parameter descriptions are present but often terse (e.g., 'rule id from find' for the 'id' param in get/forget). Output schemas are not documented, callers must infer structure from code. Error handling is minimal; tools return toolErr() but guidance on recovery is absent. No tool annotations (readOnlyHint, destructiveHint) are present despite clear risk levels (DESTRUCTIVE for forget, WRITE for add/reinforce/supersede/link/sweep). Naming is verb-first and clear (find, add, reinforce, supersede, link, forget, get, list, show, sweep), following conventions well.
Store a new durable policy after ADD classification. Duplicate and sensitive writes are rejected.
Recall rules and optional shelves documents. Call at most once per user message; prepare all query terms together.
Delete a rule the user asked to forget; resolve its id without asking the user.
Load a compact rule or a shelves chunk by id; evidence and full records are opt-in.
Add related/conflicts_with edges between existing rules; use after add returns advisory similar and the user confirms opposition.
Filter rule summaries for maintenance; not a substitute for find before writes.
Reinforce an existing rule only when the user explicitly repeats the same policy.
Output schemas not documented. Tools return JSON but callers must infer structure from code. LLMs cannot plan downstream calls without knowing what fields to expect.
Tool annotations missing. forget is DESTRUCTIVE, add/reinforce/supersede/link/sweep are WRITE, but no readOnlyHint/destructiveHint/idempotentHint tags present. Agents cannot distinguish safe from risky operations.
Descriptions assume domain expertise. Phrases like 'BM25 for vault and shelves', 'ADD classification', 'rule id from find' are opaque to agents unfamiliar with imprint's policy system. Descriptions should explain WHAT the tool does and WHEN to use it in plain terms.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Audit-only census of recorded rules.
Archive an old rule and write its replacement when policy changes.
Maintainer-only decay of stale rules; not a per-turn action.
Error handling provides no recovery guidance. toolErr() returns errors but does not tell the LLM what to do next or whether to retry. Errors should be categorized (retryable, user-fixable, fatal) with actionable next steps.
Parameter descriptions are terse. 'rule id from find' (forget.id), 'comma-separated scope tags' (find.scope) lack context on format, constraints, and examples. Descriptions should state expected format, range, and allowed values.