A knowledge graph MCP server built on Graphiti that captures and retrieves agent memory across Claude Code, Claude Pi, and other clients. Supports multi-tier deployment (personal/hosted extraction and client/local-only) with optional per-agent identity attribution, content guards, and queue backpressure.
Three tools with complete input schemas and descriptions, but quality varies significantly. add_memory has a detailed, LLM-optimized description (180+ chars) with 9 well-typed parameters and clear semantics. search_memory_facts and search_nodes have shorter descriptions (60-80 chars) and fewer parameters (2 each). No output schemas documented. Error handling is absent, no guidance on retryability, user-fixable errors, or recovery paths. Parameter descriptions are present but generic; no enums, ranges, or format constraints. Missing idempotency guarantees and pagination support for list-like tools.
Add an episode (memory snippet) to the knowledge graph. Optionally attribute the write to a specific agent via agent_id, which is recorded in the episode's source_description for attribution/audit. Supports per-tier content guards (reject_pattern) and GPU queue backpressure (max_queue_size).
Search the knowledge graph for facts matching a query. Returns the most relevant facts up to max_facts, ranked by relevance (RRF combining fact text similarity and embedding similarity).
Search the knowledge graph for entities/nodes matching a query. Returns the most relevant nodes up to max_nodes.
Output schemas not documented. LLMs cannot infer what fields to expect from search_memory_facts or search_nodes results, forcing them to guess at downstream field names and risk broken tool chains.
No error handling guidance. Tools lack descriptions of failure modes, retryability, or recovery steps. An LLM receiving a 'query not found' error has no guidance on what to do next.
search_memory_facts and search_nodes lack pagination support. No limit enforcement, offset/cursor, or total count documented. Large result sets could exhaust context windows.
Parameter descriptions are generic. 'Natural language query' and 'Maximum number of facts' lack format constraints, examples, or guidance on typical values. No enums or ranges specified.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
add_memory description does not explicitly state it modifies state (WRITE operation). While the Risk field indicates WRITE, the description should say 'Creates and persists a new episode' to make side effects clear to LLMs.