Inngest MCP by usefulapi
Trace events to function runs to the failing step, and bulk-cancel runs.
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": {
"inngest": {
"url": "https://inngest.usefulapi.io/mcp"
}
}
}Remote endpoints
https://inngest.usefulapi.io/mcpstreamable-httpWhat it can do
Tool inventory
Tools (11)
🟢inngest_list_events(limit, cursor)
List the events received in the key's environment, newest first. Events are what start functions, so this is where an investigation begins. Inngest: GET /v1/events.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Page size, 1-100.",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "Cursor from the previous page's response. Omit for the first page.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢inngest_get_event(event_id)
Fetch a single event with its name, payload and timestamp. Inngest: GET /v1/events/{eventId}.
Input Schema
{
"type": "object",
"properties": {
"event_id": {
"type": "string",
"description": "The event's id (a ULID)."
}
},
"required": [
"event_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢inngest_list_event_runs(event_id)
List every function run one event triggered, with each run's status. This is the hop from 'this event arrived' to 'and here is what it did'. Inngest: GET /v1/events/{eventId}/runs.
Input Schema
{
"type": "object",
"properties": {
"event_id": {
"type": "string",
"description": "The event's id."
}
},
"required": [
"event_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢inngest_get_run(run_id)
Fetch a single function run — its status, output and error. Inngest: GET /v1/runs/{runId}.
Input Schema
{
"type": "object",
"properties": {
"run_id": {
"type": "string",
"description": "The run's id (a ULID)."
}
},
"required": [
"run_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢inngest_list_run_jobs(run_id)
List the individual steps (jobs) of one run, with their status and timing — how you find which step of a durable function failed. Inngest: GET /v1/runs/{runId}/jobs.
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"
}🟢inngest_list_cancellations(limit, cursor)
List bulk-cancellation jobs and their progress. Inngest: GET /v1/cancellations.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Page size, 1-100.",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "Cursor from the previous page's response. Omit for the first page.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢inngest_list_webhooks(limit, cursor)
List the webhook ingresses configured for the environment — the external sources that turn into events. Inngest: GET /v1/webhooks.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"description": "Page size, 1-100.",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"cursor": {
"description": "Cursor from the previous page's response. Omit for the first page.",
"type": "string"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🟢inngest_get_webhook(webhook_id)
Fetch a single webhook ingress with its URL and transform. Inngest: GET /v1/webhooks/{webhookId}.
Input Schema
{
"type": "object",
"properties": {
"webhook_id": {
"type": "string",
"description": "The webhook's id."
}
},
"required": [
"webhook_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴inngest_create_cancellation(app_id, function_id, started_after, started_before, if)
Cancel every run of one function that started within a time window, optionally narrowed by an event expression. This STOPS IN-FLIGHT WORK across your production functions — scope the window tightly. Runs already finished are unaffected. Inngest: POST /v1/cancellations.
Input Schema
{
"type": "object",
"properties": {
"app_id": {
"type": "string",
"description": "The app the function belongs to, e.g. acme-app."
},
"function_id": {
"type": "string",
"description": "The function to cancel runs of, e.g. schedule-reminder."
},
"started_after": {
"type": "string",
"description": "ISO-8601 lower bound — only cancel runs that started after this."
},
"started_before": {
"type": "string",
"description": "ISO-8601 upper bound — only cancel runs that started before this."
},
"if": {
"description": "Optional CEL expression to narrow further, e.g. event.data.userId == \"user_123\". Only matching runs are cancelled.",
"type": "string"
}
},
"required": [
"app_id",
"function_id",
"started_after",
"started_before"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴inngest_delete_cancellation(cancellation_id)
Delete a bulk-cancellation job so it stops cancelling further runs. Runs it already cancelled stay cancelled. Inngest: DELETE /v1/cancellations/{cancellationId}.
Input Schema
{
"type": "object",
"properties": {
"cancellation_id": {
"type": "string",
"description": "The cancellation job's id."
}
},
"required": [
"cancellation_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}🔴inngest_delete_webhook(webhook_id)
Remove a webhook ingress. The external source stops producing events immediately. Inngest: DELETE /v1/webhooks/{webhookId}.
Input Schema
{
"type": "object",
"properties": {
"webhook_id": {
"type": "string",
"description": "The webhook to delete."
}
},
"required": [
"webhook_id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Community
Evidence