thread_graph
Deprecated, works until 2026-11-10: use node_graph.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| root | No | ||
| depth | No | ||
| types | No |
Deprecated, works until 2026-11-10: use node_graph.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | ||
| root | No | ||
| depth | No | ||
| types | No |
Changes observed during successful MCP inspections.
Input schema / properties / depth / descriptionRemoved value: -"hops; 1 (the viewer expands further on click)"Input schema / properties / qAdded value: +{
+ "type": "string"
+}Input schema / properties / root / descriptionRemoved value: -"the node to open; default 'trana'"Input schema / properties / typesAdded value: +{
+ "items": {
+ "enum": [
+ "relates",
+ "blocks",
+ "duplicates",
+ "fixed-by",
+ "part-of",
+ "answers",
+ "supersedes"
+ ],
+ "type": "string"
+ },
+ "type": "array"
+}Input schema / properties / depth / descriptionAdded value: +"hops; 1 (the viewer expands further on click)"Input schema / properties / qRemoved value: -{
- "type": "string"
-}Input schema / properties / root / descriptionAdded value: +"the node to open; default 'trana'"Input schema / properties / typesRemoved value: -{
- "items": {
- "enum": [
- "relates",
- "blocks",
- "duplicates",
- "fixed-by",
- "part-of",
- "answers",
- "supersedes"
- ],
- "type": "string"
- },
- "type": "array"
-}Input schema / properties / depth / descriptionRemoved value: -"hops; 1 (the viewer expands further on click)"Input schema / properties / qAdded value: +{
+ "type": "string"
+}Input schema / properties / root / descriptionRemoved value: -"the node to open; default 'trana'"Input schema / properties / typesAdded value: +{
+ "items": {
+ "enum": [
+ "relates",
+ "blocks",
+ "duplicates",
+ "fixed-by",
+ "part-of",
+ "answers",
+ "supersedes"
+ ],
+ "type": "string"
+ },
+ "type": "array"
+}Input schema / properties / depth / descriptionAdded value: +"hops; 1 (the viewer expands further on click)"Input schema / properties / qRemoved value: -{
- "type": "string"
-}Input schema / properties / root / descriptionAdded value: +"the node to open; default 'trana'"Input schema / properties / typesRemoved value: -{
- "items": {
- "enum": [
- "relates",
- "blocks",
- "duplicates",
- "fixed-by",
- "part-of",
- "answers",
- "supersedes"
- ],
- "type": "string"
- },
- "type": "array"
-}Input schema / properties / qAdded value: +{
+ "type": "string"
+}Input schema / properties / typesAdded value: +{
+ "items": {
+ "enum": [
+ "relates",
+ "blocks",
+ "duplicates",
+ "fixed-by",
+ "part-of",
+ "answers",
+ "supersedes"
+ ],
+ "type": "string"
+ },
+ "type": "array"
+}Input schema / properties / depth / descriptionRemoved value: -"hops; 1 (the viewer expands further on click)"Input schema / properties / root / descriptionRemoved value: -"the node to open; default 'trana'"Input schema / properties / depth / descriptionAdded value: +"hops; 1 (the viewer expands further on click)"Input schema / properties / root / descriptionAdded value: +"the node to open; default 'trana'"Input schema / properties / depth / descriptionRemoved value: -"hops; 1 (the viewer expands further on click)"Input schema / properties / root / descriptionRemoved value: -"the node to open; default 'trana'"Input schema / properties / depth / descriptionAdded value: +"hops; 1 (the viewer expands further on click)"Input schema / properties / root / descriptionAdded value: +"the node to open; default 'trana'"Input schema / properties / depth / propertiesRemoved value: -nullInput schema / properties / root / propertiesRemoved value: -nullInput schema / properties / depth / descriptionRemoved value: -"hops; 1 (the viewer expands further on click)"Input schema / properties / depth / propertiesAdded value: +nullInput schema / properties / root / descriptionRemoved value: -"the node to open; default 'trana'"Input schema / properties / root / propertiesAdded value: +nullDoes the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered elsewhere. The description adds only the deprecation lifecycle fact and nothing about traversal semantics, cost, or limits of the graph query.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short, front-loaded sentence with the deprecation window and the replacement named immediately. Nothing is wasted, though the space saved is space left unfilled with needed detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, four undocumented parameters, and no explanation of what a thread graph query does, the definition leaves an agent unable to construct a correct call. The deprecation pointer is the only actionable content.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All four parameters (q, root, depth, types) have 0% schema description coverage and the description mentions none of them. It does not even clarify that 'types' selects edge kinds or what 'depth' bounds, leaving the caller to guess.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description never states what thread_graph actually does; it only says it is deprecated and points to node_graph. The name hints at a graph-over-threads operation, but no verb or resource is explained, so an agent cannot tell what the tool returns or how it differs from node_graph beyond deprecation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one explicit directive — use node_graph instead — plus a hard deprecation date (2026-11-10), which is genuine routing guidance. However it does not say when thread_graph would still be appropriate during the window, nor whether output differs from node_graph.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.