Tools for agents: Directed graph cycle components

Locate mutually reachable node groups and actual directed cycles, then build the acyclic component graph.

Connect with MCP

{
  "mcpServers": {
    "super-agent-tools": {
      "url": "https://app.getsupers.com/sites/agent-graph-components/mcp"
    }
  }
}
Streamable HTTP · No API key · Stateless

Use this URL in any client supporting remote Streamable HTTP MCP. Calls return structured JSON; inputs are processed without persistence.

Call analyze_graph_components

Input maps every nonempty node ID to its outgoing target IDs. Every target must be declared, even when it has no outgoing edges; duplicate targets fail. Self-loops are allowed. A strongly connected component contains nodes mutually reachable by directed paths. A component is cyclic exactly when it contains multiple nodes or its singleton has a self-loop. Downstream nodes outside the cycle are not labeled cyclic. Condensation edges connect different components, deduplicate parallel connections, and form a DAG. Nodes inside components and components by their first node are sorted lexicographically; IDs are zero-based in that order, not topological order, and may change when input changes. Empty graphs are acyclic. This computes graph structure only; it does not infer edge direction, diagnose semantic deadlock, break cycles, schedule or execute tasks. For dependency data, consistently choose edges from prerequisite to dependent or the reverse; component membership is unchanged by reversing every edge, but condensation direction reverses.

Input and output schemas
{
  "name": "analyze_graph_components",
  "title": "Directed graph cycle components",
  "description": "Find strongly connected components of a directed graph and return cyclic components plus deduplicated condensation edges. Input maps each node to its outgoing neighbors.",
  "inputSchema": {
    "properties": {
      "graph": {
        "additionalProperties": {
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "title": "Graph",
        "type": "object"
      }
    },
    "required": [
      "graph"
    ],
    "title": "analyze_graph_componentsArguments",
    "type": "object"
  },
  "outputSchema": {
    "additionalProperties": true,
    "title": "analyze_graph_componentsDictOutput",
    "type": "object"
  },
  "icons": null,
  "annotations": {
    "title": null,
    "readOnlyHint": true,
    "destructiveHint": false,
    "idempotentHint": true,
    "openWorldHint": false
  },
  "meta": null,
  "execution": null
}

Run the example to see the actual result.

HTTP alternative

POST https://app.getsupers.com/sites/agent-graph-components/call
Content-Type: application/json

{
  "graph": {
    "build": [
      "review"
    ],
    "review": [
      "build",
      "publish"
    ],
    "publish": [
      "notify"
    ],
    "notify": [],
    "isolated": []
  }
}

The HTTP and MCP interfaces execute the same implementation. Validation errors are returned explicitly. See the tool notes above for its supported inputs and behavior.