Exposes Graphiti functionality through the Model Context Protocol (MCP)
The server exposes 8 tools with basic schemas and descriptions. Most tools have input parameter schemas with type declarations and descriptions, which is good. However, the output schemas are not documented anywhere in the code, only input schemas are visible. Descriptions are present but minimal (many under 100 chars), lacking the LLM-optimized detail needed for reliable tool selection. Parameter descriptions are sometimes vague ('Search query' instead of specifying constraints or format). Critical tools like delete_nodes and clear_graph lack confirmation/dry-run patterns and have minimal error guidance. No tool annotations (readOnlyHint, destructiveHint) are present despite clear risk stratification (READ_ONLY, WRITE, DESTRUCTIVE). Parameter naming is generally good (verb_noun convention), but the server lacks input validation documentation and recovery hints in error handling. The custom Requirement/Preference/Procedure types are well-documented in code but not exposed as first-class tool patterns.
Add events to Graphiti and optionally extract entities from them
Clear all data from the knowledge graph
Delete nodes from the knowledge graph
Get statistics about the knowledge graph
Retrieve detailed information about a specific node
Search for episodes in the knowledge graph
Search for facts in the knowledge graph
Output schemas are not documented for any tool. LLMs cannot plan downstream calls or extract required fields without knowing what the response contains.
Destructive tools (delete_nodes, clear_graph) lack confirmation/dry-run patterns and minimal error recovery guidance. An agent could irreversibly delete the entire graph without warning.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. The source code clearly stratifies tools by risk (READ_ONLY, WRITE, DESTRUCTIVE) but does not surface this to the protocol.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 46 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Search for nodes in the knowledge graph
Descriptions for search tools are generic ('Search for X in the knowledge graph') and under 100 chars. They lack WHEN to use each tool, dependencies (e.g., 'Call search_nodes first if you don't have a node_id'), or discovery hints.
clear_graph has minimal description ('Clear all data from the knowledge graph', 47 chars). No explanation of consequences, reversibility, or recovery options.
Parameter 'search_type' in search_nodes is an enum (semantic, hybrid, keyword) but the description does not explain the differences or when to use each. LLMs will guess.
No documented input validation or error guidance. Invalid 'limit' values (negative, zero, > max) or malformed UUIDs in node_ids have no defined error response or recovery path.
add_events description mentions 'optionally extract entities from them' but does not document what entities are extracted, the available entity types (Requirement, Preference, Procedure visible in code but not exposed), or output structure.