MCP server that provides a persistent knowledge graph for storing and retrieving entities, observations, and relations. Tracks entities with observations and creates relations between them.
Server exposes 7 tools from @modelcontextprotocol/server-memory with complete input schemas and descriptions. All tools have verb-noun naming (create_*, add_*, search_*, open_*, read_*, delete_*) and clear descriptions (50-100 chars). Schemas are well-formed with typed parameters and descriptions. However, output schemas are not documented, LLMs cannot predict response structure for downstream chaining. Error handling is absent from descriptions. No tool annotations (readOnlyHint, destructiveHint) despite clear risk levels. Parameter descriptions lack format constraints and validation guidance. Composition is sound (single responsibility per tool), but missing pagination guidance for read_graph which could return unbounded results.
Add new observations to existing entities without overwriting existing observations
Create new entities in the knowledge graph with initial observations
Create relations/links between entities in the knowledge graph
Remove entities from the knowledge graph
Fetch entities by name to inspect their accumulated observations and metadata
Read the entire knowledge graph including all entities and relations
Search the knowledge graph for entities matching a query string
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting) for create_entities, add_observations, create_relations, search_nodes, open_nodes, read_graph, delete_entities. This breaks tool chaining, agent cannot extract entity_id from create_entities to pass to add_observations without guessing.
read_graph lacks pagination guidance. Description does not specify result limits, pagination parameters, or when to use search_nodes instead. Unbounded graph dumps waste tokens and risk context window exhaustion.
Tool annotations missing. delete_entities and create_entities marked as WRITE/DESTRUCTIVE in metadata but no destructiveHint or readOnlyHint in tool definitions. LLMs cannot infer safety implications without explicit annotations.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 57 | 2026-07-28+ | v2 |
Error handling absent from descriptions. No guidance on what errors are retryable, what user action is needed, or how to recover. E.g., create_entities does not document duplicate entity handling or validation failures.
Parameter descriptions lack format constraints. 'name' in create_entities has no length limits, character restrictions, or uniqueness rules. 'observations' array has no size bounds. LLMs will pass invalid values without guidance.