Inngest MCP by usefulapi

Trace events to function runs to the failing step, and bulk-cancel runs.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
97%
Naming quality
80%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,458Tokens (tool definitions)
~781 BTypical response size
Moderate attention impact (1.14% of 128k context)

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-http

What it can do

Tool inventory

Tools (11)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded11 tools
verifiedversion not recorded11 tools