> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.heyreach.io/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.heyreach.io/_mcp/server.

# HeyReach MCP connector for Claude, ChatGPT and Codex

Connect HeyReach to your AI assistant and run your LinkedIn outreach in plain language: review campaigns and results, manage leads and lists, read and answer conversations, and control your senders.

**Server URL:** `https://mcp.heyreach.io/mcp`

---

## What you need

* A HeyReach account on a plan that includes MCP access.
* Membership of the workspace you want to connect, with the **Integrations — View** and **Integrations — Manage** permissions.
* A standard HeyReach account. White-label accounts can't connect through sign-in; use an MCP API key instead (see [Other MCP clients](#other-mcp-clients-api-key)).

Each connection is tied to **one workspace**, which you choose when you sign in. The assistant can only see and change data in that workspace, and only what your own HeyReach permissions allow.

---

## Connect

You connect by adding the server URL and signing in to HeyReach. No API key is needed.

### Claude (web, desktop and mobile)

1. Open **Settings → Connectors** and choose **Add custom connector** (or find **HeyReach** in the connector directory).
2. Paste `https://mcp.heyreach.io/mcp` and confirm.
3. Sign in to HeyReach if asked.
4. On the HeyReach consent page, pick the workspace to connect and select **Allow**.

### Claude Code

1. Run:
   ```bash
   claude mcp add --transport http heyreach https://mcp.heyreach.io/mcp
   ```
2. Run `/mcp`, select **heyreach** and sign in. Your browser opens the HeyReach consent page.
3. Pick the workspace and select **Allow**. The page shows a notice that access goes to an app on your computer; continue only if you started the connection from Claude Code.

A HeyReach connector you added on claude.ai is also available in Claude Code.

### ChatGPT

1. Find **HeyReach** in the ChatGPT app directory and add it (or add a custom connector with `https://mcp.heyreach.io/mcp`).
2. Sign in to HeyReach, pick the workspace and select **Allow**.

### Codex (CLI, IDE and desktop)

1. Install HeyReach from the plugin directory, or add the server:
   ```bash
   codex mcp add heyreach --url https://mcp.heyreach.io/mcp
   codex mcp login heyreach
   ```
2. Sign in to HeyReach, pick the workspace and select **Allow**. As with Claude Code, the consent page notes that access goes to an app on your computer.

### Other MCP clients (API key)

Cursor, VS Code, n8n, Make, Clay and other MCP clients connect with an **MCP API key** instead of sign-in:

1. In HeyReach, go to **Integrations → MCP** and generate an MCP key.
2. Add the server `https://mcp.heyreach.io/mcp` to your client and send the key in the `X-MCP-KEY` header, or use the ready-made URL with the key shown on the same page.

Keep the key private: anyone with it can use your workspace through MCP.

---

## What it can do

Reading data never changes anything. Actions that change data or reach LinkedIn are marked in the assistant, so it can ask you to confirm before running them.

| Area            | Read                                                                           | Change                                                                                                                                      |
| --------------- | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------- |
| Campaigns       | List campaigns, get a campaign, its sequence and leads, campaigns a lead is in | Create a campaign or copy one as a template; update settings, schedule, senders or sequence; start, pause or resume; add leads; stop a lead |
| Leads           | Get a lead, its tags                                                           | Add or replace tags                                                                                                                         |
| Lists           | List lists, get a list, its leads and companies, lists a lead is in            | Create a list; add or delete leads                                                                                                          |
| Inbox           | List conversations, read a conversation                                        | Send a LinkedIn message                                                                                                                     |
| Sender accounts | List LinkedIn accounts, get one, view a sender's network                       | —                                                                                                                                           |
| Statistics      | Overall and per-campaign stats for a date range                                | —                                                                                                                                           |
| Blacklist       | List blacklisted leads and companies                                           | Add or remove leads and companies                                                                                                           |
| Voice notes     | Voices, sender voices, usage, static clips, gender detection                   | Assign or remove voices, delete a custom voice                                                                                              |
| Webhooks        | List webhooks, get one                                                         | Create, update or delete a webhook                                                                                                          |

**Actions with a real effect outside HeyReach:** sending a LinkedIn message, and starting or resuming a campaign, which begins sending to the campaign's leads from your LinkedIn senders. Campaigns always run within HeyReach's sending limits.

### Example prompts

* "Show my active HeyReach campaigns with their acceptance and reply rates for the last 30 days."
* "Which conversations in my inbox are unread? Summarize the three most recent."
* "Create a list called 'Webinar leads' and add these LinkedIn profiles to it."
* "Pause the campaign 'Q4 founders' and confirm its status."
* "Which campaigns and lists is this lead in? [https://www.linkedin.com/in/…](https://www.linkedin.com/in/…)"

### Full tool list

| Tool                                                                   | What it does                                             | Type                         |
| ---------------------------------------------------------------------- | -------------------------------------------------------- | ---------------------------- |
| `get_all_campaigns`                                                    | List campaigns                                           | Read                         |
| `get_campaign`                                                         | Get a campaign                                           | Read                         |
| `get_campaign_sequence`                                                | Get a campaign's sequence                                | Read                         |
| `get_leads_from_campaign`                                              | List a campaign's leads                                  | Read                         |
| `get_campaigns_for_lead`                                               | List the campaigns a lead is in                          | Read                         |
| `create_campaign`                                                      | Create a campaign                                        | Write                        |
| `create_campaign_from_template`                                        | Create a campaign from an existing one                   | Write                        |
| `update_campaign_settings`                                             | Update campaign settings                                 | Write (overwrites)           |
| `update_campaign_schedule`                                             | Update a campaign's schedule                             | Write (overwrites)           |
| `update_campaign_accounts`                                             | Change a campaign's senders                              | Write (overwrites)           |
| `update_campaign_sequence`                                             | Replace a campaign's sequence                            | Write (overwrites)           |
| `add_leads_to_campaign`, `add_leads_to_campaign_v2`                    | Add leads to a campaign                                  | Write                        |
| `stop_lead_in_campaign`                                                | Stop a lead in a campaign                                | Write                        |
| `start_campaign`                                                       | Start a campaign                                         | Write, reaches LinkedIn      |
| `pause_campaign`                                                       | Pause a campaign                                         | Write                        |
| `resume_campaign`                                                      | Resume a campaign                                        | Write, reaches LinkedIn      |
| `get_lead`                                                             | Get a lead                                               | Read                         |
| `get_tags_for_lead`                                                    | Get a lead's tags                                        | Read                         |
| `add_tags_to_lead`                                                     | Add tags to a lead                                       | Write                        |
| `replace_tags`                                                         | Replace a lead's tags                                    | Write (overwrites)           |
| `get_all_lists`, `get_list_by_id`                                      | List lists, get a list                                   | Read                         |
| `get_leads_from_list`, `get_companies_from_list`                       | List a list's leads or companies                         | Read                         |
| `get_lists_for_lead`                                                   | List the lists a lead is in                              | Read                         |
| `create_empty_list`                                                    | Create a list                                            | Write                        |
| `add_leads_to_list`, `add_leads_to_list_v2`                            | Add leads to a list                                      | Write                        |
| `delete_leads_from_list`, `delete_leads_from_list_by_profile_url`      | Remove leads from a list                                 | Write (deletes)              |
| `get_conversations_v2`                                                 | List conversations                                       | Read                         |
| `get_chatroom`                                                         | Read a conversation                                      | Read                         |
| `send_message`                                                         | Send a LinkedIn message                                  | Write, reaches LinkedIn      |
| `get_all_linked_in_accounts`, `get_linked_in_account_by_id`            | List or get sender accounts                              | Read                         |
| `get_my_network_for_sender`                                            | View a sender's LinkedIn network                         | Read                         |
| `get_overall_stats`                                                    | Get statistics                                           | Read                         |
| `get_blacklist_leads`, `get_blacklist_companies`                       | List the blacklist                                       | Read                         |
| `add_blacklist_leads`, `add_blacklist_companies`                       | Add to the blacklist                                     | Write                        |
| `remove_blacklist_leads`, `remove_blacklist_companies`                 | Remove from the blacklist                                | Write (deletes)              |
| `get_voices`, `get_sender_voice`, `get_voice_usage`, `get_static_clip` | Voice-note settings and usage                            | Read                         |
| `detect_genders`                                                       | Detect sender genders for voice selection                | Read                         |
| `set_sender_voice`, `bulk_commit`, `remove_sender_voice`               | Configure which voice a sender uses for voice-note steps | Write (overwrites)           |
| `delete_custom_voice`                                                  | Delete a custom voice                                    | Write (deletes)              |
| `get_all_webhooks`, `get_webhook_by_id`                                | List or get webhooks                                     | Read                         |
| `create_webhook`                                                       | Create a webhook                                         | Write                        |
| `update_webhook`, `delete_webhook`                                     | Update or delete a webhook                               | Write (overwrites / deletes) |

---

## Security and data

* **Sign-in:** you sign in on HeyReach's own page and approve access for one workspace. Your HeyReach password is never shared with the assistant.
* **Access:** the assistant gets a token that works only for the workspace you chose and only within your own permissions. Tokens last one hour and renew automatically while you use the connector. A connection you don't use for 30 days, or that is more than 90 days old, has to be connected again.
* **What HeyReach stores:** a record of each connection (workspace, the user who approved it, and when it was created and last used). HeyReach does not store your conversations with Claude, ChatGPT or Codex.
* **What the assistant sees:** only the results of the tools it calls, such as campaign details or conversation text from your HeyReach inbox. How the assistant provider handles that data is covered by its own privacy policy.
* **If you lose access:** if you are removed from the workspace or lose the Integrations permissions, the connection stops working at its next renewal, within an hour.

See the [HeyReach Privacy Policy](https://www.heyreach.io/privacy-policy) and [Terms of Service](https://www.heyreach.io/terms-of-service).

---

## Disconnect

* **One app:** remove HeyReach from the app's connector or MCP settings.
* **All sign-in connections of a workspace:** in HeyReach, go to **Integrations → MCP** and select **Disconnect all Claude/ChatGPT/Codex connections** (needs Integrations — Manage). They stop working within seconds, and each app asks you to connect again.
* Regenerating your MCP API key does **not** disconnect sign-in connections, and disconnecting sign-in connections does not affect your API key.

---

## Troubleshooting

| Message on the HeyReach consent page                                          | What to do                                                                                                   |
| ----------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------ |
| "Your account is not enabled for this connection."                            | Your plan doesn't include MCP access, or the account is white-label. Contact support, or use an MCP API key. |
| "You need a workspace where you can manage integrations to connect this app." | Ask a workspace admin for the Integrations — View and Manage permissions.                                    |
| "This app is not allowed to connect to HeyReach."                             | Sign-in supports Claude, Claude Code, ChatGPT and Codex. For other clients, use an MCP API key.              |
| "This connection request is not valid. Please start again from the app."      | Start the connection again from your app; don't reuse an old link.                                           |
| "This workspace has too many recently connected apps…"                        | Use **Disconnect all** on the MCP integration page, then connect again.                                      |
| "You cannot connect an app while impersonating a user."                       | Sign in as yourself.                                                                                         |
| "Connecting apps to HeyReach this way is not available right now."            | Sign-in is temporarily unavailable. Try again later or use an MCP API key.                                   |
| "Open this page in its own tab to continue."                                  | The consent page can't run inside another page. Open the link in a new browser tab.                          |

**The app keeps asking me to connect again.** The connection was disconnected, you lost access to the workspace, or it wasn't used for 30 days. Connect again.

**A tool says I don't have access.** Check that the workspace you chose has the data, and that your permissions there allow the action.

---

## Support

Questions or problems: **[support@heyreach.io](mailto:support@heyreach.io)** · [help.heyreach.io](https://help.heyreach.io)