# WarpStream MCP connector

The WarpStream connector lets Claude, ChatGPT, Cursor or any MCP client manage your WarpStream virtual clusters, credentials, access rules and pipelines through one governed endpoint, with every action tied to the person who signed in.

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

## Facts

| | |
| --- | --- |
| Application | WarpStream |
| Category | Application Development |
| AI tools | 58 |
| 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. 58 tools is past the 30-tool threshold, so clients use `search_tools` and `execute_tool` |

## What you can ask once WarpStream is connected

- List every WarpStream virtual cluster and its current tier.
- Which WarpStream API keys have no cluster credentials attached?
- Summarize configuration changes across our production virtual clusters.

## Connect WarpStream in Elaichi

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

1. Open Connections, choose Add connection, and pick WarpStream.
2. Optionally set Share with, then press Connect.
3. Paste a WarpStream API key. One person generates a token in WarpStream 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 WarpStream tools are exposed, rename them, or freeze arguments before anyone points a client at it.

## Connect WarpStream 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 WarpStream 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 WarpStream 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 WarpStream 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 WarpStream 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 WarpStream through Elaichi

### Spin up a virtual cluster for a new service

Platform engineering. Ask for a new WarpStream virtual cluster, set its configuration and tier, and hand back a credential to the team that needs it, all from the chat window you already have open.

### Create a pipeline from a plain description

Data engineering. Describe the stream you want moved and where it should land, and the agent creates the WarpStream pipeline and its configuration for you to check before anything runs.

### Review who can read and write each stream

Security. List the access rules, credentials and API keys across your WarpStream account, spot anything stale or too broad, and remove it in the same conversation.

### Check consumer groups when a stream falls behind

Operations. Ask which consumer groups are attached to a WarpStream cluster and pull the cluster's details and configuration while you work out where the delay is.

### See quotas and tiers before the bill arrives

Finance. Look up the quota on a WarpStream cluster and which tier each cluster is on, so tier changes are deliberate rather than discovered on the invoice.

### Hand a developer access without a ticket

Developer support. When someone needs to publish to a WarpStream cluster, create the credential or API key for them, list what already exists, and delete it when the work is done.

## Frequently asked questions

### How do I connect WarpStream to Claude?

Connect WarpStream in Elaichi first: you paste a WarpStream API key, and that is the whole sign-in step, with no OAuth application to register and no client ID or secret to generate. Then in Claude go to Customize, then Connectors, then Add, and paste the endpoint https://api.elaichi.ai/mcp. Claude asks you to sign in to Elaichi, and from then on it can work in WarpStream as you.

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

Yes. Once WarpStream 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 WarpStream once and every client picks it up, with the same restrictions and the same audit log behind each one.

### What can an AI agent actually do with my WarpStream account?

Through this connector an agent can create, look up, update and delete WarpStream virtual clusters, change a cluster's configuration or tier, and manage the credentials, API keys and access rules that control who can reach each one. It can also list consumer groups, check quotas, and create or remove pipelines and their configurations. Because WarpStream exposes a lot of actions, short concrete asks such as "list the credentials on the payments cluster" get better results than long paragraphs.

### Does connecting WarpStream give the AI access to every cluster in my account?

Only what the WarpStream API key you connected can already reach. The agent works inside that person's own WarpStream access, and Elaichi can narrow it further by team or by action, but it can never widen it. If the key cannot touch a cluster, neither can any AI client using it.

### Can my team share one WarpStream connection?

Yes. One person connects WarpStream 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 every cluster change or credential created through the shared WarpStream connection is logged under the name of the person who asked for it.

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

Yes. In Elaichi you restrict actions one by one, so you can allow listing WarpStream clusters, credentials and pipelines while blocking deletion or configuration changes. A blocked action is never shown to Claude, ChatGPT, Cursor or any other client at all, so no prompt, however worded, can reach it.

### What happens to a WarpStream connection when someone leaves?

Offboarding that person in Elaichi ends their access to WarpStream through every client at once. If they had shared a WarpStream connection with a team, it keeps working for everyone else. And if you ever want WarpStream gone entirely, disconnecting it once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client in the same moment.

## All 58 WarpStream tools

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

- **Create a WarpStream API key** (Create). Create a new WarpStream API key with the specified name and access grants. Returns: id, created_at. API key names may only contain underscores and alphanumeric characters; WarpStream prepends an `akn_` prefix automatically. Required: name, access_grants.
- **Delete a WarpStream API key by ID** (Delete). Delete a WarpStream API key by its api_key_id. Returns an empty response on success. Required: api_key_id.
- **List all WarpStream API keys** (List). List all WarpStream API keys belonging to the same workspace as the authenticating key. Returns: id, created_at, virtual_cluster_id.
- **Create a WarpStream virtual cluster** (Create). Create a new WarpStream virtual cluster. A new agent key is automatically provisioned with every cluster. Returns: virtual_cluster_id. Required: virtual_cluster_name, virtual_cluster_type, virtual_cluster_region, virtual_cluster_cloud_provider, virtual_cluster_tier.
- **Delete a WarpStream virtual cluster by ID** (Delete). Permanently delete a WarpStream virtual cluster. Both virtual_cluster_id and virtual_cluster_name are required as confirmation that the correct cluster is being deleted. This operation is irreversible — all topics and data will be lost. Returns an empty 204 response on success. Required: virtual_cluster_id, virtual_cluster_name.
- **Get single WarpStream virtual cluster by ID** (Get). Describe a WarpStream virtual cluster by its ID. Returns: virtual_cluster, catalog_base_url. Required: virtual_cluster_id.
- **List all WarpStream virtual clusters** (List). List all WarpStream virtual clusters. Returns an array of cluster records each containing: id, name, type, region, cloud_provider, bootstrap_url, agent_pool_id, agent_pool_name, created_at, and agent_keys.
- **Update a WarpStream virtual cluster by ID** (Update). Rename a WarpStream virtual cluster to a new name. Returns an empty 204 response on success. Required: virtual_cluster_id, new_virtual_cluster_name.
- **Get single WarpStream virtual cluster configuration by ID** (Get). Get the configuration of a WarpStream virtual cluster. Returns the virtual_cluster_configuration object including are_acls_enabled, default_num_partitions, default_retention_millis, and is_auto_create_topic_enabled. Required: virtual_cluster_id.
- **Update a WarpStream virtual cluster configuration by ID** (Update). Update the configuration of a WarpStream virtual cluster by supplying a partial virtual_cluster_configuration object; only the fields provided are modified and all others remain unchanged. Returns an empty response on success. Required: virtual_cluster_id.
- **Update a WarpStream virtual cluster tier by ID** (Update). Update the tier of a WarpStream virtual cluster. Returns an empty response object on success. Required: virtual_cluster_id, tier.
- **Create a WarpStream virtual cluster credential** (Create). Create new credentials for a WarpStream virtual cluster. Returns the created credentials object including id, username, and password. Required: credentials_name, virtual_cluster_id. Optionally supply imported_password to assign a specific password instead of a randomly generated one.
- **Delete a WarpStream virtual cluster credential by ID** (Delete). Delete existing WarpStream virtual cluster credentials by credential id and virtual cluster. Returns an empty 204 response on success. Required: id, virtual_cluster_id.
- **List all WarpStream virtual cluster credentials** (List). List all credentials for a WarpStream virtual cluster. Returns: id, created_at. Required: virtual_cluster_id.
- **Create a WarpStream acl** (Create). Create a single ACL rule on a WarpStream virtual cluster. Deduplicates identical rules automatically — only one copy is stored. Returns: acl. Required: virtual_cluster_id, acl.
- **List all WarpStream acls** (List). List all ACL rules configured on a WarpStream virtual cluster. Returns: acls. Returns an empty array if no ACLs are configured. Required: virtual_cluster_id.
- **Delete a WarpStream acl by ID** (Delete). Delete ACL rules matching the provided filters from a WarpStream virtual cluster. Supports dry_run mode to preview which ACLs would be removed and bulk_deletion mode for broad criteria matching. Returns: acl. Required: virtual_cluster_id, acls.
- **List all WarpStream consumer groups** (List). List all WarpStream consumer groups for a given virtual cluster, including member assignments and partition-level consumption lag. Returns the state object containing groups with name, state, members (id, client_id, client_host, assignment), topics (name and per-partition min_offset, max_offset, committed_offset), and protocol. Required: virtual_cluster_id.
- **Get single WarpStream quota by ID** (Get). Get WarpStream account quotas, describing the maximum limit and current usage for each quota type. Returns: quotas.
- **List all WarpStream pipelines** (List). List WarpStream pipelines in a virtual cluster. Returns: id, virtual_cluster_id. Required: virtual_cluster_id.
- **Create a WarpStream pipeline** (Create). Create a new WarpStream pipeline in a virtual cluster. Returns: pipeline_name, pipeline_type, virtual_cluster_id. Required: virtual_cluster_id, pipeline_name. Only one Orbit or Schema Linking pipeline is allowed per cluster at a time.
- **Delete a WarpStream pipeline by ID** (Delete). Delete a WarpStream pipeline from a virtual cluster. Returns an empty 204 response on success. Required: virtual_cluster_id, pipeline_id.
- **Get single WarpStream pipeline by ID** (Get). Get details of a WarpStream pipeline including its overview and configurations. Returns: virtual_cluster_id, pipeline_id. Required: virtual_cluster_id, pipeline_id.
- **Create a WarpStream pipeline configuration** (Create). Create a new pipeline configuration in WarpStream by supplying a YAML configuration payload. Returns: configuration_id. Required: virtual_cluster_id, pipeline_id, configuration_yaml.
- **Update a WarpStream pipeline state by ID** (Update). Change the state of a WarpStream pipeline by setting desired_state to 'running' (start/resume) or 'paused'. Optionally deploy a specific pipeline configuration by providing deployed_configuration_id. Returns an empty response on success. Required: virtual_cluster_id, pipeline_id.
- **Create a WarpStream invitation** (Create). Create invitations in WarpStream to invite one or more new users to join your account. Each invited user receives an email with instructions; upon acceptance they are granted the role specified by user_role_id. Returns an empty 204 response on success. Required: invitations (array of objects each containing email and user_role_id).
- **Get single WarpStream invoice by ID** (Get). Get the current pending (in-progress billing period) invoice for a WarpStream account. Returns: date_from, date_to, tenants, account_charges, total.
- **Get single WarpStream past invoice by ID** (Get). Get a past WarpStream invoice for a specified date range. Returns date_from, date_to, tenants (with per-workspace and per-cluster charge breakdowns including product, unit_price, quantity, and total), account_charges (credits and support fees), and the overall total. Required: date_start.
- **Get single WarpStream invoice breakdown by ID** (Get). Get detailed invoice breakdowns from WarpStream for a specified date range, returning per-tenant, per-workspace, per-cluster, and per-product usage and cost data. Returns: date_from, date_to, tenants, account_charges. Required: date_start, date_end.
- **Get single WarpStream chargeback by ID** (Get). Get pending chargebacks in WarpStream, organized by tenant, workspace, and cluster. Returns: date_from, date_to, covers_products, tenants, account_charges. All filters are optional.
- **Get single WarpStream past chargeback by ID** (Get). Get past chargeback data for a WarpStream billing month, broken down by tenant, workspace, cluster, and entity. Returns: date_from, date_to, covers_products, tenants. Required: date_start.
- **List all WarpStream tables** (List). List all active WarpStream Tableflow tables for a given virtual cluster. Returns each table's table_name, table_uuid, source_stream_name, source_cluster_name, stats_estimated_byte_count, stats_estimated_row_count, and created_at_unix_nanos. Required: virtual_cluster_id.
- **Get single WarpStream table by ID** (Get). Get details for a single WarpStream Tableflow table by UUID or name. Returns a table object including table_name, table_uuid, table_location, source_stream_name, source_cluster_name, stats_estimated_byte_count, stats_estimated_row_count, and created_at_unix_nanos; optionally a status object with health, lag, and partition details when include_status is true. Required: virtual_cluster_id. Exactly…
- **Delete a WarpStream table by ID** (Delete). Permanently delete a WarpStream Tableflow table and its control-plane metadata by table UUID. This operation is irreversible; data files already synced to object storage are not removed automatically. Returns an empty response on success. Required: virtual_cluster_id, table_uuid.
- **Create a WarpStream topic** (Create). Create a new topic in a WarpStream virtual cluster. Returns an empty response on success. Required: virtual_cluster_id, topic_name.
- **List all WarpStream topics** (List). List all topics in a WarpStream virtual cluster. Returns: id, created_at. Required: virtual_cluster_id.
- **Get single WarpStream topic by ID** (Get). Describe a WarpStream topic by name, returning its partition count and full Kafka-compatible configuration. Returns: partition_count, configs.policy, retention.ms, compression.type, and WarpStream-specific settings). Required: virtual_cluster_id, topic_name.
- **Update a WarpStream topic by ID** (Update). Update a WarpStream topic's partition count and/or configuration settings. Returns an empty response on success. Required: virtual_cluster_id, topic_name.
- **Delete a WarpStream topic by ID** (Delete). Delete a WarpStream topic by name, with optional soft-delete support to allow later recovery. Returns an empty response on success. Required: virtual_cluster_id, topic_name.
- **WarpStream topics undelete** (Action). Restore a soft-deleted topic in WarpStream. Only works for Fundamentals+ clusters when the topic was previously soft-deleted. Returns an empty response on success. Required: virtual_cluster_id, topic_id.
- **List all WarpStream client metrics subscriptions** (List). List all client metrics subscriptions configured on a WarpStream virtual cluster. Returns each subscription's name, interval_ms, metrics, and match. Required: virtual_cluster_id.
- **Get single WarpStream client metrics subscription by ID** (Get). Get the configuration of a single WarpStream client metrics subscription by name. Returns client_metrics_subscription containing name, interval_ms, metrics, and match. Required: virtual_cluster_id, name.
- **Update a WarpStream client metrics subscription by ID** (Update). Create or update a batch of WarpStream client metrics subscriptions on a virtual cluster. Each entry creates a new subscription if none with that name exists, or replaces the existing one. Returns an empty response on success. Required: virtual_cluster_id, client_metrics_subscriptions (each entry requires name).
- **Delete a WarpStream client metrics subscription by ID** (Delete). Delete a batch of WarpStream client metrics subscriptions by name from a virtual cluster. If any named subscription does not exist, the entire operation is aborted and a 404 error is returned. Returns an empty response on success. Required: virtual_cluster_id, client_metrics_subscription_names.
- **Delete a WarpStream user by ID** (Delete). Delete a WarpStream user by user_id. Returns an empty response on success. Required:id.
- **List all WarpStream users** (List). List all WarpStream users. Returns: id, virtual_cluster_id.
- **Update a WarpStream user by ID** (Update). Update role assignments for a WarpStream user by assigning or unassigning roles. This endpoint behaves as a patch — only roles explicitly listed are affected; existing unmentioned assignments remain unchanged. Returns an empty response on success. Required: id.
- **Create a WarpStream user role** (Create). Create a new user role in WarpStream with a display name, optional SSO group mapping, and workspace access grants. Returns an empty 204 response on success. Required: user_role_name. WarpStream recommends always setting access_grants resource_id to '*'.
- **Delete a WarpStream user role by ID** (Delete). Delete a WarpStream user role by its role ID. Returns an empty 204 response on success. Required:id.
- **List all WarpStream user roles** (List). List all user roles in WarpStream. Returns: id, created_at.
- **Update a WarpStream user role by ID** (Update). Update an existing WarpStream user role's name, SSO group mapping, or workspace access grants. Returns an empty 204 response on success. Required:id.
- **Create a WarpStream workspace** (Create). Create a new WarpStream workspace. By default also creates an application key authorized to manage resources in the workspace; pass skip_application_key_creation: true to skip key creation. Returns: virtual_cluster_id, pipeline_name. Required: workspace_name.
- **Delete a WarpStream workspace by ID** (Delete). Delete a WarpStream workspace by workspace_id. Returns an empty 204 response on success. Required:id.
- **List all WarpStream workspaces** (List). List all WarpStream workspaces in the account. Returns: id, name, created_at.
- **Update a WarpStream workspace by ID** (Update). Rename a WarpStream workspace by workspace_id. Returns an empty 204 response on success. Required:id, new_workspace_name.
- **Create a WarpStream orbit auto migration** (Create). Initiate a WarpStream orbit topic auto-migration by selecting topics by literal name, regex, or both, and triggering cutover for each matched topic. Returns: initiated, errors, virtual_cluster_id, pipeline_name, pipeline_type. Required: virtual_cluster_id and at least one of topic_names or topic_name_regexes. Set at most one of max_time_lag_seconds and max_offset_lag.
- **Delete a WarpStream orbit auto migration by ID** (Delete). Abort an in-flight WarpStream orbit topic auto-migration, immediately rolling back topics to a non-migrating state. Topics already in COMPLETE cannot be aborted. Returns: aborted, errors. Required:id, topic_names.
- **Get single WarpStream orbit auto migration by ID** (Get). Get the current migration state for every auto-migration topic in a WarpStream virtual cluster, equivalent to the Migration tab in the WarpStream console. Returns a topics array where each entry includes name, migration_state, total_offset_lag, time_lag_nanos, has_lag, initiated_at_unix, completed_at_unix, and migration_attempts. Required: virtual_cluster_id.
