fleet_heartbeat
Pack: fleet · Endpoint: https://gateway.pipeworx.io/fleet/mcp
Extend your claim on a task and report worker health. Call this at long steps of the work — a claim that stops beating is treated as a dead worker and the task returns to the queue for someone else.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
task_id | number | yes | The task you hold. |
actor | string | yes | You, as ‘session-name@host (lane)’. Must match the current holder. |
ttl_seconds | number | no | Fresh lifetime from now, max ${MAX_TTL_SECONDS}. Default ${DEFAULT_TTL_SECONDS}. |
note | string | no | What you are working on right now — becomes the log line a human reads when a task looks stuck. |
budget_health | string | no | ’ok’, or a note like ‘rate-limited’ / ‘auth-expiring’. This is how budget pressure and auth lapses become visible before they become outages. |
Example call
Arguments
{
"task_id": 1,
"actor": "warren@laptop (backend)"
}
curl
curl -X POST https://gateway.pipeworx.io/fleet/mcp \
-H 'Content-Type: application/json' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"fleet_heartbeat","arguments":{"task_id":1,"actor":"warren@laptop (backend)"}}}'
TypeScript (@pipeworx/sdk)
import { Pipeworx } from '@pipeworx/sdk';
const pipeworx = new Pipeworx();
const result = await pipeworx.call('fleet_heartbeat', {
"task_id": 1,
"actor": "warren@laptop (backend)"
});
More examples
{
"task_id": 1,
"actor": "warren@laptop (backend)",
"ttl_seconds": 3600,
"note": "Applying the migration, then smoke-testing.",
"budget_health": "ok"
}
Connect
Add this to your MCP client config, or use one-click install buttons:
{
"mcpServers": {
"fleet": {
"url": "https://gateway.pipeworx.io/fleet/mcp"
}
}
}
See Getting Started for client-specific install steps.