Trigger.dev MCP by usefulapi
Debug background jobs — runs, traces, spans, schedules, queues and deployments.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"trigger-dev": {
"url": "https://trigger-dev.usefulapi.io/mcp"
}
}
}Remote endpoints
https://trigger-dev.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (22)
🟢trigger_list_runs(status, taskIdentifier, tag, queue, machine, ...)
List task runs, filtered by status, task, tag, queue, schedule or a time window. This is the main read for 'what ran, and what failed?'. Trigger.dev: GET /api/v1/runs.
Input Schema
{
"type": "object",
"properties": {
"status": {
"description": "Only runs in these states, e.g. [\"FAILED\",\"CRASHED\"]. Others include PENDING, EXECUTING, COMPLETED, CANCELED, TIMED_OUT.",
"type": "array",
"items": {
"type": "string"
}
},
"taskIdentifier": {
"description": "Only runs of these task ids.",
"type": "array",
"items": {
"type": "string"
}
},
"tag": {
"description": "Only runs carrying these tags.",
"type": "array",
"items": {
"type": "string"
}
},
"queue": {
"description": "Only runs on these queues.",
"type": "array",
"items": {
"type": "string"
}
},
"machine": {
"description": "Only runs on these machine presets.",
"type": "array",
"items": {
"type": "string"
}
},
"version": {
"description": "Only runs of this deployment version.",
"type": "string"
},
"schedule": {
"description": "Only runs created by this schedule.",
"type": "string"
},
"batch": {
"description": "Only runs in this batch.",
"type": "string"
},
"isTest": {
"description": "Only test runs, or only real ones.",
"type": "boolean"
},
"period": {
"description": "Relative window, e.g. \"1h\", \"24h\", \"7d\".",
"type": "string"
},
"from": {
"description": "Epoch milliseconds lower bound on creation time.",
"type": "string"
},
"to": {
"description": "Epoch milliseconds upper bound on creation time.",
"type": "string"
},
"pageSize": {
"description": "Page size, 1-100.",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"after": {
"description": "Cursor from the previous page's pagination. Omit for the first page.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trigger_get_run(run_id)
Fetch a single run's outcome — its status, output, error and attempts. Trigger.dev: GET /api/v1/runs/{runId}/result.
Input Schema
{
"type": "object",
"properties": {
"run_id": {
"type": "string",
"description": "The run's id (run_...)."
}
},
"required": [
"run_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trigger_get_run_trace(run_id)
Fetch the full execution trace of a run — every span, with timings and nesting. The tool for 'where did this run spend its time, and where did it break?'. Trigger.dev: GET /api/v1/runs/{runId}/trace.
Input Schema
{
"type": "object",
"properties": {
"run_id": {
"type": "string",
"description": "The run's id."
}
},
"required": [
"run_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trigger_get_run_span(run_id, span_id)
Fetch a single span from a run's trace, with its own logs and attributes. Trigger.dev: GET /api/v1/runs/{runId}/spans/{spanId}.
Input Schema
{
"type": "object",
"properties": {
"run_id": {
"type": "string",
"description": "The run's id."
},
"span_id": {
"type": "string",
"description": "The span's id, from the trace."
}
},
"required": [
"run_id",
"span_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trigger_list_run_events(run_id)
List the lifecycle events of one run — queued, dequeued, started, retried, completed. Trigger.dev: GET /api/v1/runs/{runId}/events.
Input Schema
{
"type": "object",
"properties": {
"run_id": {
"type": "string",
"description": "The run's id."
}
},
"required": [
"run_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trigger_get_run_metadata(run_id)
Fetch the mutable metadata a run has written about itself — progress, checkpoints and custom state. Trigger.dev: GET /api/v1/runs/{runId}/metadata.
Input Schema
{
"type": "object",
"properties": {
"run_id": {
"type": "string",
"description": "The run's id."
}
},
"required": [
"run_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trigger_get_batch_results(batch_id)
Fetch the outcome of every run in a batch. Trigger.dev: GET /api/v1/batches/{batchId}/results.
Input Schema
{
"type": "object",
"properties": {
"batch_id": {
"type": "string",
"description": "The batch's id (batch_...)."
}
},
"required": [
"batch_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trigger_list_schedules(pageSize, page)
List the cron schedules configured for tasks, with their next run times. Trigger.dev: GET /api/v1/schedules.
Input Schema
{
"type": "object",
"properties": {
"pageSize": {
"description": "Page size, 1-100.",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"page": {
"description": "1-based page number.",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trigger_get_schedule(schedule_id)
Fetch a single schedule with its cron expression, timezone and active state. Trigger.dev: GET /api/v1/schedules/{scheduleId}.
Input Schema
{
"type": "object",
"properties": {
"schedule_id": {
"type": "string",
"description": "The schedule's id (sched_...)."
}
},
"required": [
"schedule_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trigger_list_queues(pageSize)
List task queues with their concurrency limits and current depth — where you look when work is backing up. Trigger.dev: GET /api/v1/queues.
Input Schema
{
"type": "object",
"properties": {
"pageSize": {
"description": "Page size, 1-100.",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trigger_get_queue(queue)
Fetch a single queue's concurrency limit, running count and queued count. Trigger.dev: GET /api/v1/queues/{queue}.
Input Schema
{
"type": "object",
"properties": {
"queue": {
"type": "string",
"description": "The queue's name or id."
}
},
"required": [
"queue"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trigger_get_current_deployment
Fetch the deployment currently serving the key's environment — its version, git ref and status. Trigger.dev: GET /api/v1/deployments/current.
Input Schema
{
"type": "object",
"properties": {},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trigger_list_env_vars(project_ref, environment)
List the environment variables configured for a project environment. Values may be redacted depending on the key's permissions. READ ONLY — this server exposes no env-var writes. Trigger.dev: GET /api/v1/projects/{projectRef}/envvars/{env}.
Input Schema
{
"type": "object",
"properties": {
"project_ref": {
"type": "string",
"description": "The project reference (proj_...)."
},
"environment": {
"type": "string",
"enum": [
"dev",
"staging",
"prod",
"preview"
],
"description": "Which environment's variables to list."
}
},
"required": [
"project_ref",
"environment"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trigger_list_waitpoint_tokens(pageSize, after)
List outstanding waitpoint tokens — runs paused waiting for an external signal. Trigger.dev: GET /api/v1/waitpoints/tokens.
Input Schema
{
"type": "object",
"properties": {
"pageSize": {
"description": "Page size, 1-100.",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"after": {
"description": "Cursor from the previous page's pagination. Omit for the first page.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢trigger_list_bulk_actions(pageSize)
List bulk replay and cancel operations and their progress. Trigger.dev: GET /api/v1/bulk-actions.
Input Schema
{
"type": "object",
"properties": {
"pageSize": {
"description": "Page size, 1-100.",
"type": "integer",
"minimum": 1,
"maximum": 100
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴trigger_cancel_run(run_id)
Cancel an in-flight run. Note this is the one endpoint on API v2, not v1. Trigger.dev: POST /api/v2/runs/{runId}/cancel.
Input Schema
{
"type": "object",
"properties": {
"run_id": {
"type": "string",
"description": "The run to cancel."
}
},
"required": [
"run_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴trigger_replay_run(run_id)
Re-run one specific past run with the same payload. This EXECUTES your production task again — the same side effects it had the first time. Trigger.dev: POST /api/v1/runs/{runId}/replay.
Input Schema
{
"type": "object",
"properties": {
"run_id": {
"type": "string",
"description": "The run to replay."
}
},
"required": [
"run_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴trigger_reschedule_run(run_id, delay)
Change when a delayed run will execute. Only applies to runs that have not started. Trigger.dev: POST /api/v1/runs/{runId}/reschedule.
Input Schema
{
"type": "object",
"properties": {
"run_id": {
"type": "string",
"description": "The delayed run to move."
},
"delay": {
"type": "string",
"description": "New delay or timestamp, e.g. \"1h\" or an ISO-8601 datetime."
}
},
"required": [
"run_id",
"delay"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴trigger_add_run_tags(run_id, tags)
Attach tags to a run so you can filter for it later. Additive and safe. Trigger.dev: POST /api/v1/runs/{runId}/tags.
Input Schema
{
"type": "object",
"properties": {
"run_id": {
"type": "string",
"description": "The run to tag."
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tags to add."
}
},
"required": [
"run_id",
"tags"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴trigger_activate_schedule(schedule_id)
Resume a paused schedule so it fires again. Trigger.dev: POST /api/v1/schedules/{scheduleId}/activate.
Input Schema
{
"type": "object",
"properties": {
"schedule_id": {
"type": "string",
"description": "The schedule to activate."
}
},
"required": [
"schedule_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴trigger_deactivate_schedule(schedule_id)
Pause a schedule so it stops firing. The usual first move when a scheduled task is misbehaving. Trigger.dev: POST /api/v1/schedules/{scheduleId}/deactivate.
Input Schema
{
"type": "object",
"properties": {
"schedule_id": {
"type": "string",
"description": "The schedule to pause."
}
},
"required": [
"schedule_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴trigger_pause_queue(queue, paused)
Pause a queue so its runs stop being dequeued, or resume it. The containment move when a task is failing in a loop. Trigger.dev: POST /api/v1/queues/{queue}/pause.
Input Schema
{
"type": "object",
"properties": {
"queue": {
"type": "string",
"description": "The queue's name or id."
},
"paused": {
"type": "boolean",
"description": "true to pause, false to resume."
}
},
"required": [
"queue",
"paused"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence