Tools for agents: Critical-path timing analysis

Compute workflow timing, total slack and critical dependency edges from exact task durations.

Connect with MCP

{
  "mcpServers": {
    "super-agent-tools": {
      "url": "https://app.getsupers.com/sites/agent-critical-path/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_critical_path

Planning only: does not run tasks, reserve workers or persist state. All tasks are unstarted at time zero. Dependencies are finish-to-start with no lag. Assume unlimited parallel resources, no calendars, release dates or deadlines. Use one consistent duration unit; all timing values are exact fraction strings in that unit. Integers or quoted decimal/fraction strings are accepted; JSON floats and booleans are rejected. Zero-duration milestones are allowed. Each terminal task must finish by the overall earliest project completion. Total slack is how far that task can shift while preserving that completion under these assumptions. Critical tasks have zero slack; critical_edges includes only tight dependencies between them, representing all critical routes without enumerating exponentially many paths. Disconnected components are included. Duplicate IDs, duplicate/unknown dependencies, cycles and negative durations fail explicitly. This is not a resource-constrained schedule or a promise of real completion time.

Input and output schemas
{
  "name": "analyze_critical_path",
  "title": "Critical-path timing analysis",
  "description": "Compute earliest/latest start/finish and total slack for a finish-to-start DAG using exact durations. Assume unlimited resources, all tasks unstarted, no lags or calendars.",
  "inputSchema": {
    "$defs": {
      "TimedTask": {
        "properties": {
          "id": {
            "minLength": 1,
            "title": "Id",
            "type": "string"
          },
          "duration": {
            "anyOf": [
              {
                "type": "integer"
              },
              {
                "type": "string"
              }
            ],
            "title": "Duration"
          },
          "depends_on": {
            "items": {
              "type": "string"
            },
            "title": "Depends On",
            "type": "array"
          }
        },
        "required": [
          "id",
          "duration"
        ],
        "title": "TimedTask",
        "type": "object"
      }
    },
    "properties": {
      "tasks": {
        "items": {
          "$ref": "#/$defs/TimedTask"
        },
        "title": "Tasks",
        "type": "array"
      }
    },
    "required": [
      "tasks"
    ],
    "title": "analyze_critical_pathArguments",
    "type": "object"
  },
  "outputSchema": {
    "additionalProperties": true,
    "title": "analyze_critical_pathDictOutput",
    "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-critical-path/call
Content-Type: application/json

{
  "tasks": [
    {
      "id": "research",
      "duration": 2
    },
    {
      "id": "build",
      "duration": 5,
      "depends_on": [
        "research"
      ]
    },
    {
      "id": "docs",
      "duration": 3,
      "depends_on": [
        "research"
      ]
    },
    {
      "id": "verify",
      "duration": 1,
      "depends_on": [
        "build",
        "docs"
      ]
    }
  ]
}

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.