Tools for agents: Dependency graph transitive reduction

Simplify an acyclic dependency graph without changing reachability and return a retained-path witness for every redundant edge.

Connect with MCP

{
  "mcpServers": {
    "super-agent-tools": {
      "url": "https://app.getsupers.com/sites/agent-dependency-reduction/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 reduce_dependency_graph

Edges are ordered [prerequisite,dependent] pairs. Node IDs are nonempty unique strings; every endpoint must be listed. Duplicate edges, cycles and self-loops fail the entire call. Empty and disconnected graphs are valid; isolated nodes are preserved. The retained edges form the unique transitive reduction of the DAG: reachability is unchanged and no remaining edge can be removed without losing reachability. Each removed edge has a witness_path containing only retained edges, including both endpoints. Node and edge output order preserves input order; topological ties use FIFO discovery based on node and edge input order, rather than lexical order. Only reachability is preserved: direct-edge metadata, timing constraints, costs and edge-specific semantics are not modeled and must not be discarded on that basis. This is stateless graph analysis, not a scheduler mutation or permission change. Breadth-first searches may be expensive for large dense graphs.

Input and output schemas
{
  "name": "reduce_dependency_graph",
  "title": "Dependency graph transitive reduction",
  "description": "Remove transitively redundant DAG edges while preserving all reachability; explain each removal with a path in the retained graph.",
  "inputSchema": {
    "properties": {
      "nodes": {
        "items": {
          "type": "string"
        },
        "title": "Nodes",
        "type": "array"
      },
      "edges": {
        "items": {
          "maxItems": 2,
          "minItems": 2,
          "prefixItems": [
            {
              "type": "string"
            },
            {
              "type": "string"
            }
          ],
          "type": "array"
        },
        "title": "Edges",
        "type": "array"
      }
    },
    "required": [
      "nodes",
      "edges"
    ],
    "title": "reduce_dependency_graphArguments",
    "type": "object"
  },
  "outputSchema": {
    "additionalProperties": true,
    "title": "reduce_dependency_graphDictOutput",
    "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-dependency-reduction/call
Content-Type: application/json

{
  "nodes": [
    "research",
    "build",
    "test",
    "publish"
  ],
  "edges": [
    [
      "research",
      "build"
    ],
    [
      "build",
      "test"
    ],
    [
      "test",
      "publish"
    ],
    [
      "research",
      "test"
    ],
    [
      "research",
      "publish"
    ],
    [
      "build",
      "publish"
    ]
  ]
}

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.