# E2B MCP connector

The E2B connector brings your E2B sandboxes, snapshots and templates to Claude, ChatGPT, Cursor and any MCP client, so your team can create, pause, resume and inspect sandboxes by asking in plain language, with every action logged.

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

## Facts

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

## What you can ask once E2B is connected

- List every running E2B sandbox and its timeout.
- Show logs for the sandbox that failed last night.
- Snapshot the long running sandboxes on the agents team.

## Connect E2B in Elaichi

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

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

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

### Spin up a sandbox for a quick test

Engineering. Ask for a fresh E2B sandbox from a named template, run the check you need, then shut it down when you are done. No console visits in between.

### Find and pause idle sandboxes

Platform. List every running E2B sandbox, spot the ones nobody has touched today, and pause them in one go before they eat the budget.

### Pull logs and metrics after a failure

DevOps. When a job in a sandbox dies, ask for its logs and recent metrics and get the answer in the same chat where you are debugging.

### Snapshot a sandbox before a risky change

Engineering. Take a snapshot of an E2B sandbox before you upgrade a dependency or rewrite a script, so there is a known good state to come back to.

### Keep templates current and rebuilt

Platform. Update an E2B template, start its build, and confirm it finished, all without leaving the tool where the change was discussed.

### Extend a long-running analysis

Data. When a data run in an E2B sandbox needs more time, ask to refresh it or set a longer timeout instead of losing the work.

## Frequently asked questions

### How do I connect E2B to Claude?

Two steps. In Elaichi, choose E2B from the connector catalog and paste in an API key from your E2B dashboard; there is no OAuth app to register and no client ID or secret to generate. Then in Claude go to Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Sign in with your Elaichi account and E2B is ready to use.

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

Yes. Once E2B 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 E2B once and every client picks it up.

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

Through the E2B connector an agent can list your sandboxes, create new ones from a template, pause, resume, refresh or delete them, change their timeout, pull their logs and metrics, and take snapshots. It can also list, create, update, rebuild and delete templates. Because E2B has many available actions, short concrete asks such as "pause every sandbox older than an hour" work better than long paragraphs.

### Does connecting E2B give the AI access to my whole E2B team?

Access follows the API key you connect, so the agent can only reach the E2B sandboxes and templates that key can already see. Elaichi can narrow that further, for example allowing reads but not deletes, and it never widens what E2B itself allows.

### Can my team share one E2B connection?

Yes. One person connects E2B in Elaichi and shares the connection with a team, and nobody else ever handles the API key. Each teammate still signs in to Elaichi as themselves, so the audit log names the person who paused or deleted a sandbox, not a shared account.

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

Yes. Restrictions in Elaichi work per action, so you can allow listing E2B sandboxes and reading logs while blocking deletes, template rebuilds or bulk changes. A blocked action is never advertised to Claude, ChatGPT or Cursor at all, so no prompt can reach it.

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

Offboarding a person in Elaichi ends their access to E2B through every client at once. A shared E2B connection keeps working for everyone else on the team. If you want to remove E2B entirely, disconnect it once in Elaichi and it disappears from Claude, ChatGPT, Cursor and every other client together.

## All 64 E2B tools

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

- **List all E2B sandboxes** (List). List running e2b sandboxes, optionally filtered by a metadata query. Returns: sandboxID, cpuCount, code, message.
- **Create a E2B sandbox** (Create). Create a new e2b sandbox from a template with configurable timeout, networking, environment variables, and lifecycle settings. Returns: templateID, sandboxID, clientID, envdVersion, alias, envdAccessToken, trafficAccessToken, domain. Required: templateID.
- **Get single E2B sandbox by ID** (Get). Get a single e2b sandbox by id, including runtime details, network configuration, and lifecycle policy. Returns: sandboxID, cpuCount, code, message. Required: id.
- **Delete a E2B sandbox by ID** (Delete). Delete (kill) an e2b sandbox by id. Returns an empty 204 response on success. Required: id.
- **E2B sandboxes connect** (Action). Connect to a paused or running e2b sandbox, resuming it if needed and extending its TTL. Returns: templateID, sandboxID, clientID, envdVersion, alias, envdAccessToken, trafficAccessToken, domain. Required: sandbox_id, timeout.
- **E2B sandboxes pause** (Pause). Pause a running e2b sandbox, persisting its filesystem and optionally capturing a full memory snapshot. Returns an empty 204 response on success. Required: sandbox_id.
- **E2B sandboxes resume** (Resume). Resume a paused e2b sandbox with a new time-to-live, optionally auto-pausing after the timeout. Returns: templateID, sandboxID, clientID, envdVersion, alias, envdAccessToken, trafficAccessToken, domain. Required: sandbox_id.
- **E2B sandboxes refresh** (Refresh). Refresh a running e2b sandbox, extending its time to live by the specified duration in seconds (max 3600). Returns an empty 204 response on success. Required: sandbox_id.
- **E2B sandboxes set timeout** (Set). Set the timeout (TTL) for a running e2b sandbox, measured in seconds from the current time. Calling multiple times overwrites the TTL each time. Returns an empty 204 response on success. Required: sandbox_id, timeout.
- **E2B sandboxes get logs** (Get). Get logs for a specific e2b sandbox (deprecated — use get_logs_v2 instead). Returns: logs, logEntries, code, message. Required: sandbox_id.
- **E2B sandboxes get metrics** (Get). Get resource usage metrics for a specific e2b sandbox over a time interval. Returns: timestamp, timestampUnix, cpuCount, cpuUsedPct, memUsed, memTotal, memCache, diskUsed, diskTotal. Required: sandbox_id.
- **E2B sandboxes list metrics** (List). List resource usage metrics for multiple e2b sandboxes at once. Returns: sandboxes. Required: sandbox_ids. Maximum 100 sandbox IDs per request.
- **E2B sandboxes create snapshot** (Create). Create a persistent snapshot from an e2b sandbox's current state. Returns: code, message. Required: sandbox_id. An optional name body field assigns a template alias; if a snapshot template with that name already exists, a new build is assigned to the existing template instead of creating a new one.
- **E2B sandboxes bulk update** (Update). Update the egress network configuration for a running e2b sandbox. Replaces the current egress rules with the provided configuration; omitting a field clears it. Returns an empty 204 response on success. Required: sandbox_id.
- **List all E2B snapshots** (List). List all e2b sandbox snapshots for the team, optionally filtered by source sandbox ID. Returns: code, message.
- **Create a E2B template** (Create). Create a new template in e2b. Returns: code, message. The build is processed asynchronously and returns a 202 response on acceptance.
- **E2B templates create v 2** (Create). Create a new sandbox template in e2b using the v2 API (deprecated). Returns: createdAt, updatedAt, code, message. Required: alias.
- **Delete a E2B template by ID** (Delete). Delete an e2b template by id. Returns an empty 204 response on success. Required: id.
- **List all E2B templates** (List). List all e2b templates. Returns: templateID, buildID, cpuCount, memoryMB, diskSizeMB, public, aliases, names, createdAt, updatedAt, createdBy, lastSpawnedAt, spawnCount, buildCount, envdVersion, buildStatus, code, message.
- **Get single E2B template by ID** (Get). Get a single e2b sandbox template by id, including its build history. Returns: createdAt, updatedAt, code, message. Required: id.
- **E2B templates get by alias** (Get). Get an e2b sandbox template by its alias. Returns: templateID, public. Required: alias.
- **E2B templates rebuild** (Action). Rebuild an e2b sandbox template by submitting a new Dockerfile and optional build configuration. Returns: createdAt, updatedAt, code, message. Required: template_id, dockerfile.
- **Update a E2B template by ID** (Update). Update an e2b template's visibility by id. Returns: createdAt, updatedAt, code, message. Required: id.
- **E2B templates start build** (Start). Start an e2b template build by template_id and build_id. Accepts base image, registry credentials, build steps, and post-build commands. Returns an empty 202 response on success. Required: template_id, build_id.
- **E2B templates get build logs** (Get). Get e2b template build logs by template_id and build_id with optional filtering by timestamp, direction, severity level, and log source. Returns: logs. Required: template_id, build_id.
- **E2B templates get build status** (Get). Get e2b template build status and associated logs by template_id and build_id. Returns: logs, logEntries, templateID, buildID, status, reason. Required: template_id, build_id.
- **E2B templates get build upload link** (Get). Get a build upload link for a template's build layer files in e2b. Returns: present, url. Required: template_id, hash.
- **E2B tags assign tags** (Assign). Assign tags to an e2b template by targeting it in "name:tag" format. Returns: code, message. Required: target, tags.
- **E2B tags delete tags** (Delete). Delete multiple tags from an e2b template by name. Returns an empty 204 response on success. Required: name, tags.
- **List all E2B tags** (List). List all tags assigned to an e2b template. Returns: tag, buildID, createdAt, code, message. Required: template_id.
- **E2B teams get metrics** (Get). Get metrics for an e2b team within a specified time interval. Returns an array of metric entries, each containing timestamp, timestampUnix, concurrentSandboxes, and sandboxStartRate. Required: team_id.
- **E2B teams get metrics max** (Get). Get the maximum value of a specific metric for an e2b team in a given interval. Returns: timestamp, timestampUnix, value. Required: team_id, metric.
- **List all E2B teams** (List). List all e2b teams associated with the authenticated account. Returns: code, message.
- **Create a E2B volume** (Create). Create a new team volume in e2b. Returns: volumeID, name, token. Required: name. The name must match the pattern ^[a-zA-Z0-9_-]+$.
- **Delete a E2B volume by ID** (Delete). Delete a team volume in e2b by id. Returns an empty 204 response on success. Required: id.
- **List all E2B volumes** (List). List all team volumes in e2b. Returns: volumeID, name, code, message.
- **Get single E2B volume by ID** (Get). Get a single team volume in e2b by id. Returns: volumeID, name, token. Required: id.
- **E2B envd health** (Action). Check the health of an e2b sandbox's envd service. Returns an empty 204 response on success.
- **E2B envd get envs** (Get). Get the environment variables set in an e2b sandbox. Returns a key-value map of environment variable names to their string values.
- **E2B envd get stats** (Get). Get resource usage metrics for an e2b sandbox's envd service. Returns: ts, cpu_count, cpu_used_pct, mem_total, mem_used, disk_used, disk_total, mem_used_mib, mem_total_mib.
- **E2B filesystem download file** (Download). Download a file from an e2b sandbox filesystem by its path. Returns the file content as a binary stream (application/octet-stream). Required: path.
- **E2B filesystem list dir** (List). List directory entries in an e2b sandbox filesystem at a given path, optionally controlling recursion depth. Returns: entries, message, code, sandboxID. Required: path.
- **E2B filesystem make dir** (Action). Create a directory in an e2b sandbox filesystem at the specified path. Returns: entry, message, code, sandboxID. Required: path.
- **E2B filesystem stat** (Action). Get file or directory metadata (EntryInfo) for a path in an e2b sandbox filesystem. Returns: entry, message, code, sandboxID. Required: path.
- **E2B filesystem remove** (Delete). Remove a file or directory from an e2b sandbox filesystem at the specified path. Returns an empty response on success. Required: path.
- **E2B filesystem move** (Move). Move a file or directory inside an e2b sandbox filesystem. Returns the entry object including name, path, size, mode, permissions, owner, group, modifiedTime, symlinkTarget, and metadata. Required: source, destination.
- **E2B filesystem upload file** (Upload). Upload a file to an e2b sandbox, ensuring parent directories exist. If the file exists it will be overwritten. Returns: type, code, message. Required: path, file.
- **E2B filesystem create watcher** (Create). Create a filesystem watcher on a path inside an e2b sandbox for non-streaming event polling. Returns: watcherId. Required: path.
- **E2B filesystem remove watcher** (Delete). Remove a filesystem watcher from an e2b sandbox by its watcher id. Returns an empty 200 response on success. Required: watcherId.
- **E2B filesystem get watcher events** (Get). Retrieve pending filesystem events for a watcher in an e2b sandbox. Returns: events, message, code, sandboxID. Required: watcherId.
- **E2B filesystem watch dir** (Action). Watch a directory in an e2b sandbox for filesystem changes. Returns a stream of WatchDirResponse events with the filesystem entry's name, path, size, mode, permissions, owner, group, modifiedTime, symlinkTarget, and metadata. Required: path.
- **E2B process start** (Start). Start a new process in an e2b sandbox. Returns: event. Required: process.
- **List all E2B process** (List). List all running processes in an e2b sandbox. Returns: message, code, sandboxID.
- **E2B process send input** (Send). Send input to a running process in an e2b sandbox. Returns an empty response body on success. Required: process, input.
- **E2B process send signal** (Send). Send a signal to a running process in an e2b sandbox. Returns an empty response body on success. Required: process.
- **Update a E2B process by ID** (Update). Update a running process in an e2b sandbox, e.g. resize its PTY. Returns an empty response on success. Required: process, pty.
- **E2B process close stdin** (Close). Close the stdin stream of a running process in an e2b sandbox. Returns an empty response on success. Required: process (containing pid).
- **E2B process connect** (Action). Connect to a running process in an e2b sandbox to receive a stream of ConnectResponse events with PTY output. Returns: event. Required: process (containing pid).
- **E2B process stream input** (Action). Stream input data to a running process in an e2b sandbox by sending PTY input. Returns an empty response on success. Required: data (containing input with pty).
- **Create a E2B webhook** (Create). Register a new e2b webhook to receive sandbox lifecycle events. Returns the created webhook object including id, teamId, name, createdAt, enabled, url, and events. Required: name, url, enabled, events.
- **List all E2B webhooks** (List). List all registered e2b webhooks for your team. Returns each webhook with id, teamId, name, createdAt, enabled, url, and events.
- **Get single E2B webhook by ID** (Get). Get a single e2b webhook configuration by id. Returns: id, teamId, name, createdAt, enabled, url, events, version, timestamp, event_category, event_label, event_data, sandbox_id, sandbox_execution_id, sandbox_template_id, sandbox_build_id, sandbox_team_id. Required: id.
- **Update a E2B webhook by ID** (Update). Update an existing e2b webhook configuration by id, replacing previous fields with provided values. Returns: id, teamId, name, createdAt, enabled, url, events, version, timestamp, event_category, event_label, event_data, sandbox_id, sandbox_execution_id, sandbox_template_id, sandbox_build_id, sandbox_team_id. Required: id.
- **Delete a E2B webhook by ID** (Delete). Delete (unregister) an e2b webhook by id. Returns an empty 204 response on success. Required: id.
