Persistent knowledge base MCP server with hybrid SQLite FTS5 + semantic search using Model2Vec embeddings
Inkwell has well-structured tool definitions with complete schemas and descriptions for all 6 tools. Naming follows verb_noun convention (search, recall, remember, delete, list, doctor). Descriptions are substantive (100-250 chars), explaining WHAT each tool does and WHEN to use it. Parameters are typed and described. However, several tools lack error handling guidance, output schemas are not documented, and some parameter descriptions could be more prescriptive about constraints and formats. The 'doctor' tool's description is vague about what 'consistency' means. No tool annotations (readOnlyHint/destructiveHint) are present despite clear risk levels.
Delete an entry by id. Deletion is permanent and cannot be undone.
Validate the knowledge base for consistency and report issues: orphaned files, missing index entries, schema violations, and duplicate content hashes.
List all entries, optionally filtered by tags, type, or superseded status.
Read a full entry by id, with its graph relations. Counts as usage — recalled entries rank higher in later search.
Store a new entry or update an existing one. Entries are Markdown with YAML frontmatter, deduplicated by content hash, and can supersede prior versions.
Search entries by keyword + semantic similarity.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear risk levels. 'delete' is DESTRUCTIVE, 'remember' and 'doctor' are WRITE, 'search'/'recall'/'list' are READ_ONLY. Agents cannot distinguish safe from dangerous operations.
Output schemas not documented. LLMs cannot plan downstream calls or extract required fields (e.g., entry_id from search results for recall). Responses are inferred, not specified.
'delete' tool lacks error handling guidance. No mention of confirmation, dry-run, or recovery path. Irreversible operations should support confirmation or undo.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 60 | <=2025-11-25 | v2 |
'doctor' description is vague ('Validate the knowledge base for consistency'). Does not explain what 'consistency' means, what issues it detects, or when to call it vs. other tools.
Parameter descriptions lack prescriptive constraints. E.g., 'limit' says 'Capped at 100' but does not specify minimum, default, or why the cap exists. 'entry_type' says 'must be declared in schema' but does not list valid values.