A neural knowledge graph MCP server — every file, symbol, decision, and conversation is a node with Hebbian-weighted edges
ContextGraph has 11 well-named tools with mostly complete schemas and descriptions. Naming follows verb_noun convention (graph_write, graph_read, graph_search, etc.), which is excellent. Descriptions are generally 80 - 250 chars, within the 10 - 1024 baseline. However, several critical gaps reduce the score: (1) Output schemas are NOT documented, tools return results but the response structure is invisible in the source. (2) Error handling is absent, no guidance on retryability, user-fixable vs fatal errors, or recovery paths. (3) Some parameter descriptions lack format/constraint details (e.g., 'node ID' without format rules). (4) No tool annotations (readOnlyHint, destructiveHint, idempotentHint) despite clear read/write semantics. (5) graph_decay, graph_export, graph_log_message, and graph_cluster are mentioned in the spec but NOT visible in the source code excerpt, inferred only from the tool list.
Perform community detection on the knowledge graph to find clusters of tightly coupled nodes and their centroids.
Run a weight decay pass (×0.95) on all edges. Edges below 0.05 are archived. Called automatically on startup every 24h.
Export the graph in a specified format.
Find the strongest or shortest path between two nodes, with a human-readable explanation of the hops.
Build a ranked context window string from the current file/task. Does weighted BFS, assembles highest-signal nodes within token budget. Use this to get relevant context before answering a question.
Log a conversation turn into the graph. Claude Haiku extracts entities (decisions, bugs, concepts, patterns) and upserts them as nodes. Call this after each assistant turn.
Output schemas not documented. Tools return results (e.g., graph_read returns nodes/edges, graph_search returns ranked nodes) but response structure is invisible. LLMs cannot plan downstream calls or extract fields without knowing what to expect.
No error handling guidance. Tools lack descriptions of failure modes, retryability, or recovery paths. E.g., graph_write could fail if node ID is invalid or edge target doesn't exist, but no error classification or actionable recovery message is defined.
Four tools (graph_decay, graph_export, graph_log_message, graph_cluster) are inferred from the spec but NOT visible in the source code excerpt. Input schemas for these tools cannot be verified.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
Get nodes ranked by PageRank importance, hotness (recency x activity), or degree centrality.
Read a subgraph via weighted BFS from a node. Returns nodes ranked by edge weight. Use to understand a file's context, dependencies, and related decisions.
Search the graph by text query. Returns matching nodes ranked by relevance and access count.
Get graph statistics: node count, edge count, archived edges, last decay time.
Upsert a node and its edges into the knowledge graph. Edge weights are strengthened on each call (Hebbian learning). Use this to record files, decisions, concepts, bugs, patterns.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Tools have clear semantics (graph_write is destructive, graph_read is read-only, graph_decay is idempotent) but these are not declared in the schema, forcing LLMs to infer safety from descriptions alone.
Parameter descriptions lack format/constraint details. E.g., 'node ID' in graph_read has no format rules (lowercase, alphanumeric + _-. per graph_write schema). 'depth' has no explicit min/max (1-5 mentioned in description but not in schema). Constraints should be in both schema and description.