MCP server enabling persistent memory for AI models through a local knowledge graph
The server implements 9 tools with complete input schemas and descriptions, but shows significant gaps in output documentation, error handling, and parameter clarity. Tool naming follows verb-noun convention (add_, delete_, query_, read_) appropriately. Descriptions are present and of adequate length (avg ~120 chars), but lack context on prerequisites, error modes, and return structure. Input schemas are well-defined with proper types and enums for location parameter, but parameter descriptions could be more prescriptive about constraints and dependencies. The graph structure and operations are sound, but responses are undocumented and no error recovery guidance is provided. Security controls are evident (path traversal defenses), but error messages lack the actionable guidance agents need.
Add entities to the knowledge graph. Entities represent concepts, objects, or things with a type and observations.
Add observations to existing entities in the knowledge graph.
Add relations to the knowledge graph. Relations represent connections or relationships between entities.
Clear all entities and relations from the knowledge graph.
Delete entities from the knowledge graph by name.
Delete relations from the knowledge graph.
Get statistics about the knowledge graph including entity and relation counts.
Query entities by name or type from the knowledge graph.
Output schemas are not documented. Tools return knowledge graph state but no schema describing entity structure, relation format, or stats object is provided in tool definitions.
Error handling provides no recovery guidance. Validation errors (e.g. invalid context, path traversal attempts) are caught in code but tool definitions do not specify error messages or suggest next steps to the LLM.
Destructive operations lack confirmation step. delete_entities, delete_relations, and clear_graph (DESTRUCTIVE risk) should document whether they require confirmation or have a dry-run mode to prevent accidental data loss.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 53 | 2026-07-28+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Read the entire knowledge graph with all entities and relations.
Parameter descriptions lack prescriptive constraints. 'context' is described as 'optional context identifier' but does not explain allowed characters, max length, or format rules that the code enforces (alphanumeric, _, -, . only; no traversal segments).
No documentation of state interactions or side effects. query_entities description does not clarify whether it searches only in-memory or persists changes; add_observations does not explain if it overwrites or appends observations; LLMs cannot infer idempotency.
No dependency documentation. The 'location' parameter defaults to auto-detect (project vs global) but this auto-detection logic is not documented in parameter descriptions; agents cannot reason about which storage location will be used.