# Heap MCP connector

Connect Heap to Elaichi and Claude, ChatGPT, Cursor and the Elaichi Agent can record events, update users, accounts and identities, and process deletion requests in Heap, with every call running as the signed-in person and logged.

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

## Facts

| | |
| --- | --- |
| Application | Heap |
| Category | Analytics |
| AI tools | 7 |
| Authentication | Connects with an API key |
| Bring 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. Connected tools are never listed one by one, however few there are. The endpoint advertises `search_tools` and `execute_tool` instead |

## What you can ask once Heap is connected

- Record a trial started event for user 48213 in Heap
- Update account 7710 in Heap with plan set to Enterprise
- Check the status of the deletion request for user 91544

## Connect Heap in Elaichi

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

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

## Heap MCP connector for 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.

## Heap MCP connector for 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.

## Heap MCP connector for 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 Heap 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 Heap 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 Heap through Elaichi

### Record the event the product missed

Product. When something happens outside the app, such as a signed contract or a support call, record it as an event in Heap so the funnel reflects what really happened.

### Catch the user up after a check-in

Customer Success. After a call, update the Heap user with the new plan, health score or renewal date so the usage view matches what you just learned.

### Keep account properties clean for segments

Marketing. Update industry, region or tier on a Heap account the moment it changes, so segments and reports stop drifting.

### Stamp the closed deal onto the account

Sales. When a deal closes, write the plan and contract value onto the Heap account so product usage can be read against revenue.

### Handle a deletion request start to finish

Privacy. Submit a user deletion in Heap when a request arrives, then check its status by ID before confirming back to the person who asked.

### Line up an identity after a change

Data. When someone changes email or merges accounts, update the identity in Heap so their sessions sit under one person instead of two.

## Frequently asked questions

### How do I connect Heap to Claude?

Two steps. Connect Heap in Elaichi by pasting in a Heap API key, there is no OAuth application to register and no client ID or secret to generate. Then in Claude open Customize, then Connectors, then Add, and paste https://api.elaichi.ai/mcp. Claude can then record events and update users and accounts in Heap as you.

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

Yes. Heap is connected once in Elaichi and the same endpoint, https://api.elaichi.ai/mcp, is added to Claude, ChatGPT, Cursor, any other MCP client and the Elaichi Agent. Nothing is set up per client.

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

With Heap connected, an agent can record an event, update a user, an account or an identity by ID, submit a user deletion request and check the status of one. Short concrete asks work best, such as setting a plan on account 7710 rather than a long paragraph. Reading reports and charts out of Heap is not part of this connector.

### Does connecting Heap give the AI my whole workspace?

No. The Heap connection can only do what the API key it was connected with allows, and Elaichi can narrow that further to a handful of actions for a given team. Each person signs into Elaichi as themselves, and Elaichi never grants more than the Heap key already permits.

### Can my team share one Heap connection?

Yes. One person connects Heap, shares the connection with a team, and nobody else ever handles the Heap API key. Each teammate still signs into Elaichi as themselves, so every event recorded or account updated in Heap is logged under their own name.

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

Yes. Restrictions in Elaichi work per action, so you can allow recording events in Heap while blocking user deletion requests, for example. A restricted action is never shown to Claude, ChatGPT or Cursor at all, so no prompt can reach it.

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

Offboarding a person in Elaichi ends their access to Heap at once, across every client they used. A shared Heap connection keeps working for everyone else on the team. Disconnecting Heap once in Elaichi removes it from Claude, ChatGPT, Cursor and every other client together.

### Does the Heap MCP connector work with Gemini, Codex, Claude Code or other MCP clients?

Yes. Heap is reached over the same MCP endpoint every client uses, so anything that speaks MCP can call it — Gemini, Codex, Claude Code, Windsurf, Cline, Zed and OpenCode among them — alongside Claude, ChatGPT, Cursor, and the Elaichi Agent. The tools on offer and the access behind them are identical whichever client asks. Only the setup screen differs.

## All 7 Heap tools

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

- **Create a Heap event** (Create). Send a custom server-side event to Heap, such as backend order/transaction info or events not capturable client-side. Returns an empty JSON object on success. Requires app_id and event; you must supply either identity or user_id, but not both.
- **Update a Heap identity by ID** (Update). Identify a Heap user by mapping an anonymous SDK user_id to a known identity such as an email, migrating all associated events to that identity. Returns an empty JSON object on success. Requires app_id, user_id, and identity. Heap allows only 1 identity per user_id and at most 10 user_ids per identity in a one-month window; extra calls are ignored.
- **Update a Heap user by ID** (Update). Attach custom key-value properties to an identified Heap user from your servers; unknown identities are created as new users and existing properties are overwritten by name. Returns an empty JSON object on success. Required: app_id, identity.
- **Update a Heap account by ID** (Update). Attach or update custom account properties for one or more accounts in Heap. Returns a plain-text 'OK' success acknowledgment with no structured body. Required: app_id, plus either account_id and properties (single-account update) or accounts (bulk update).
- **Create a Heap auth** (Create). Create a temporary Heap auth token by exchanging API credentials via HTTP Basic Authentication. Returns: access_token.
- **Create a Heap user deletion** (Create). Submit up to 10,000 users for deletion from Heap. Returns: deletion_request_location, deletion_request_id, status, access_token. Required: users — each entry needs user_id or identity. Deletion is asynchronous; poll the deletion status endpoint with the returned deletion_request_id.
- **Get single Heap user deletion by ID** (Get). Get the status of a user deletion request in Heap by id. Returns: deletion_request_id, status, access_token. Required: id — the deletion_request_id returned when the deletion was submitted.
