# Inngest MCP connector

The Inngest connector lets Claude, ChatGPT, Cursor and other MCP clients list your Inngest apps, functions, runs and environments, rerun or invoke functions, and manage webhooks and keys, with every action signed in as you and logged.

Source: https://elaichi.ai/connectors/inngest/

## Facts

| | |
| --- | --- |
| Application | Inngest |
| Category | Application Development |
| AI tools | 39 |
| Authentication | Connects with an API key |
| Needs your own OAuth app | No |
| MCP endpoint | https://api.elaichi.ai/mcp |
| Works with | Claude, ChatGPT, Cursor, any MCP client, and the Elaichi Agent |
| Tools advertised by name | No. 39 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once Inngest is connected

- List failed event runs for our checkout functions this week.
- Which Inngest apps have functions without a recent sync?
- Show function experiments running in the production env.

## Connect Inngest in Elaichi

This happens once for the organization, before any client is involved.

1. Open Connections, choose Add connection, and pick Inngest.
2. Optionally set Share with, then press Connect.
3. Paste an Inngest API key. One person generates a token in Inngest and pastes it once. Everyone else works through Share with, and never sees it.

Credentials are vaulted and nobody, including the AI, reads them back. The connection becomes a toolbox immediately, so you can curate which Inngest tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect Inngest to Claude

Endpoint: https://api.elaichi.ai/mcp

1. Open Customize, then Connectors.
2. Press Add.
3. Name it, paste the MCP server URL, then Continue.
4. Sign in and approve.

On Team and Enterprise, an Owner adds it once. Everyone else turns it on for themselves.

## Connect Inngest to ChatGPT

Endpoint: https://api.elaichi.ai/mcp

1. Open Plugins, then press the + button.
2. Name it and paste the endpoint into Server URL.
3. Leave Authentication on OAuth, then tick the risk acknowledgement.
4. Press Create, then sign in and approve.

Works on the web today. The plugin directory lives at chatgpt.com/plugins.

## Connect Inngest to Cursor

Endpoint: https://api.elaichi.ai/mcp

1. Open `~/.cursor/mcp.json`.
2. Add the endpoint under `mcpServers`.
3. Reload Cursor, then sign in and approve.

Set up per machine, so repeat it on each computer you work from.

## Connect Inngest to any MCP client

Endpoint: https://api.elaichi.ai/mcp

1. Add the endpoint as a remote MCP server.
2. Sign in and approve.

The Elaichi Agent already has these tools, with nothing to set up.

## What the consent screen decides

Only Read is granted by default, which is not enough to call a Inngest tool. Over MCP there is no trusted place to confirm a write in the moment, so the consent screen is the standing approval rather than a formality. Grant Read and Run tools. Think hard before granting Delete, which reaches into connected apps and cannot be undone.

## What teams do with Inngest through Elaichi

### Find out why a run failed

Engineering. Ask for the failed runs of a function from the last hour and pull up one run to see where it stopped and what it was working on.

### Rerun the jobs that failed overnight

On-call. List the runs that failed while nobody was watching, then rerun them in one go once the cause is fixed.

### Trigger a function on demand

Engineering. Invoke a function with the payload you need to test a fix or process one customer's data right now, without opening the Inngest dashboard.

### Set up a new environment with webhooks

Platform. Create a staging or preview environment, add the webhooks it needs and confirm which event keys and signing keys belong to it.

### Check whether a customer's job ran

Support. When a customer says an email or export never arrived, look up the event runs for that event and see whether the function ran, is still running or failed.

### Review function experiments and score runs

Product. List the experiments running on a function, compare their runs and record a score against a run so the team can see which version is winning.

## Frequently asked questions

### How do I connect Inngest to Claude?

Connect Inngest in Elaichi by pasting an API key from your Inngest account; there is no OAuth app to register and no client ID or secret to generate. Then open Claude, go to Customize, then Connectors, then Add, and paste the endpoint https://api.elaichi.ai/mcp. Claude signs you in through Elaichi and Inngest is available in your chat.

### Does Inngest work with ChatGPT and Cursor as well as Claude?

Yes. Once Inngest is connected in Elaichi, the same endpoint, https://api.elaichi.ai/mcp, works in Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. You connect Inngest once and every client picks it up.

### What can an AI agent actually do with my Inngest data?

With Inngest connected, an agent can list your apps, functions, environments, runs and event runs, open a single run to see what happened, rerun or delete a run, invoke a function, sync an app after a deploy, create or update environments, add webhooks and check event keys and signing keys. Because Inngest exposes many actions, short concrete asks such as "show failed runs for the billing function today" work better than long sentences.

### Does connecting Inngest give the AI access to every environment and account?

No. Every request to Inngest runs under the API key of the person who connected it, so the agent can only see the accounts, environments and functions that key already reaches in Inngest. Elaichi can narrow that further with restrictions per action, and it can never widen it beyond what Inngest itself allows.

### Can my team share one Inngest connection?

Yes. One person connects Inngest in Elaichi and shares the connection with a team, and nobody else ever sees or handles the API key. Each teammate still signs in to Elaichi as themselves, so the audit log names the person who reran a run or created a webhook in Inngest, not a shared account.

### Can I stop an agent from deleting or changing things in Inngest?

Yes. Restrictions in Elaichi work per action, so you can allow reading Inngest runs and functions while blocking deleting a run, invoking a function or changing an environment. A blocked action is never shown to Claude, ChatGPT or Cursor at all, so no prompt can reach it.

### What happens to an Inngest connection when someone leaves?

When you offboard a person in Elaichi, their access to Inngest through every client ends at once. If they shared an Inngest connection, it keeps working for everyone else on the team. Disconnecting Inngest once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client together.

## All 39 Inngest tools

Every tool below is callable through https://api.elaichi.ai/mcp once Inngest is connected, subject to the toolbox it is in and the restrictions on the caller.

- **List all Inngest accounts** (List). Get the Inngest account for the authenticated user. Returns: id, name, email, createdAt, updatedAt.
- **Get single Inngest app by ID** (Get). Get a single Inngest app by id, including sync metadata and function count. Returns: id, name, createdAt, functionCount, isArchived, method, latestSync. Required: id.
- **List all Inngest app functions** (List). List Inngest app functions with configuration and status details. Returns: id. Required: app_id. Max 100 per page.
- **Get single Inngest app function by ID** (Get). Get a single Inngest app function by id. Returns the function object including id, name, slug, app, configuration, failureHandler, isArchived, isPaused, and triggers. Required: app_id, id. This endpoint is in Beta.
- **List all Inngest function experiments** (List). List observed experiments for an Inngest function within an app, including variant counts and total run counts. Returns: id. Required: app_id, function_id.
- **Get single Inngest function experiment by ID** (Get). Get experiment aggregates for a specific Inngest experiment by id, including variant run counts and score metrics. Returns: id. This endpoint is in Beta. Required: app_id, function_id, id.
- **Create a Inngest function invoke** (Create). Invoke an Inngest function by app and function ID, executing it either asynchronously or synchronously. Returns: id, name, transform, url. Required: app_id, function_id.
- **Create a Inngest app sync** (Create). Sync an Inngest app at the provided URL. Returns: id, appId, status, error, name, transform, url. Required: app_id. This endpoint is in Beta.
- **List all Inngest env webhooks** (List). List all webhooks in an Inngest environment. Returns: id, name, url, transform, response, environment, eventFilter, createdAt, updatedAt. Max 100 per page.
- **Create a Inngest env webhook** (Create). Create a new webhook in an Inngest environment for receiving events. Returns: id, name, url, transform, response, environment, eventFilter, createdAt, updatedAt.
- **List all Inngest envs** (List). List all custom Inngest environments for the authenticated account. Returns: id, name, type, createdAt. Max 250 per page.
- **Create a Inngest env** (Create). Create a custom Inngest environment. Returns: id, name, type, createdAt.
- **Update a Inngest env by ID** (Update). Partially update an Inngest environment by id; only provided fields are modified. Returns: id, name, type, createdAt, isArchived. Required: id.
- **List all Inngest event runs** (List). List Inngest function runs triggered by a specific event. Returns: run_id, run_started_at, ended_at, status, output, function_id, function_version, environment_id, event_id, batch_id, original_run_id, cron. Required: event_id. Max 40 runs per page.
- **List all Inngest experiments** (List). List observed experiments in an Inngest environment. Returns: id, firstSeen, lastSeen, selectionStrategy, totalRuns, variantCount, variants, function. Optionally filter by app, function, or time range. This endpoint is in Beta — behavior and shape may change before general availability.
- **List all Inngest keys events** (List). List Inngest account event keys, optionally filtered by environment. Returns: id, key, name, environment, createdAt. Max 100 per page.
- **List all Inngest keys signings** (List). List Inngest account signing keys, optionally filtered by environment. Returns: id, key, name, environment, createdAt. Defaults to the production environment when no environment filter is provided. Max 100 per page.
- **List all Inngest partner accounts** (List). List Inngest partner sub-accounts. Returns: id, name, email, createdAt, updatedAt. Max 1000 per page.
- **Create a Inngest partner account** (Create). Create a new Inngest partner sub-account. Returns: id, name, email, apiKey, createdAt, updatedAt. Required: email.
- **Get single Inngest run by ID** (Get). Get a single Inngest function run by id. Returns the run summary including id, status, durationMs, queuedAt, startedAt, endedAt, function, trigger, and output. Required: id.
- **List all Inngest runs** (List). List Inngest function runs associated with a session. Returns each run's id, status, queuedAt, startedAt, endedAt, eventName, and function. Required: session_key, session_id.
- **Delete a Inngest run by ID** (Delete). Cancel a running Inngest function run by id immediately. No new steps will run after cancellation. Returns an empty 204 response on success. Required: id.
- **Create a Inngest run rerun** (Create). Rerun a function run in Inngest, creating a new run using the original run's triggering event data. Returns: runId, id, name, transform, url. Required: run_id. This endpoint is in Beta and its behavior may change.
- **Create a Inngest run score** (Create). Submit one or more named scores for an Inngest function run, optionally targeting specific steps. Returns: name, runId. Required: run_id. Maximum 100 scores per request; writes are best-effort and not atomic. Beta endpoint.
- **List all Inngest run traces** (List). Get the trace tree for a single Inngest function run. Returns the rootSpan (including id, name, status, stepOp, stepId, durationMs, startedAt, endedAt, queuedAt, input, output, children, metadata) and runId. Required: run_id. This endpoint is in Beta — behavior and shape may change.
- **List all Inngest sessions** (List). List session keys observed in the authenticated Inngest environment. Returns: id, createdAt. This endpoint is in Beta.
- **Get single Inngest session by ID** (Get). List sessions for a specific session key in Inngest. Returns: id, failedRunCount, failureRate, functions, lastActiveAt, runCount. Required: id. This endpoint is in Beta.
- **List all Inngest events** (List). List recent events from your Inngest environment, optionally filtered by event name and a received-at time window. Returns: internal_id, accountID, environmentID, source, sourceID, receivedAt, id, name, data, user, ts, v. Max 100 per page.
- **Get single Inngest event by ID** (Get). Get a single Inngest event by its internal ID. Returns: internal_id, accountID, environmentID, source, sourceID, receivedAt, id, name, data, user, ts, v. Required: id.
- **List all Inngest run jobs** (List). List jobs for a specific Inngest function run, ordered earliest to latest within the function queue. Returns: at, position, attempt. This endpoint is rate limited and cached for 5 seconds. Required: run_id.
- **Create a Inngest signal** (Create). Resume an Inngest function awaiting a signal via step.waitForSignal by sending data to the waiting function run. Returns: run_id.
- **List all Inngest cancellations** (List). List all cancellations in your Inngest environment. Returns: id, environment_id, function_internal_id, function_id, started_before, started_after, if.
- **Create a Inngest cancellation** (Create). Create a bulk cancellation in Inngest, cancelling all functions in a given time range matching an optional expression. Returns: id, environment_id, function_internal_id, function_id, started_before, started_after, if. Required: app_id, function_id, started_before.
- **Delete a Inngest cancellation by ID** (Delete). Delete an Inngest cancellation by id, preventing it from stopping function runs between the given dates with a given expression. Returns an empty response on success. Required: id.
- **List all Inngest webhooks** (List). List all webhook endpoints in the current Inngest environment. Returns: id, name, transform, url, createdAt, updatedAt.
- **Create a Inngest webhook** (Create). Create a new webhook endpoint in Inngest with the given configuration. Returns: id, name, transform, url, createdAt, updatedAt.
- **Get single Inngest webhook by ID** (Get). Get a single Inngest webhook endpoint's configuration by id. Returns: id, name, transform, url, createdAt, updatedAt. Required: id.
- **Update a Inngest webhook by ID** (Update). Update an Inngest webhook endpoint's configuration by id. Returns: id, name, transform, url, createdAt, updatedAt. Required: id.
- **Delete a Inngest webhook by ID** (Delete). Delete an Inngest webhook endpoint by id. Returns: id. Required: id.
