Skip the install. Get this working in under 2 minutes.
Start a free trial on cloud.anythingmcp.com, add the HeyReach in one click, then point your AI client (Claude, ChatGPT, Copilot or Cursor) at the generated MCP endpoint. No Docker, no git clone, zero engineering experience required.
Summary
HeyReach LinkedIn outreach from any AI agent: run campaigns and add or stop their leads, manage lead and company lists and lead tags, read and answer conversations in the unified LinkedIn inbox, check sender accounts and 1st-degree connections, compare outreach statistics and manage webhooks. Works with a HeyReach API key; deletions install switched off.
Try asking
Example prompts for HeyReach
Click any prompt to copy it. Paste into Claude, ChatGPT, Cursor, Gemini, Copilot or OpenClaw to run it against this connector.
Claude is AI and can make mistakes. Please double-check responses.
💡 No install? Use cloud.anythingmcp.com directly. Sign in, click Connectors → HeyReach, paste your credentials, mint an MCP API key and you're done. No Docker, no
git clone, no local server.
HeyReach + Microsoft Copilot
HeyReach LinkedIn outreach from any AI agent: run campaigns and add or stop their leads, manage lead and company lists and lead tags, read and answer conversations in the unified LinkedIn inbox, check sender accounts and 1st-degree connections, compare outreach statistics and manage webhooks. Works with a HeyReach API key; deletions install switched off.
Prerequisites
See the full setup instructions baked into the connector (visible in the in-app store when you select the connector). The required environment variables for this connector are:
HEYREACH_API_KEY
Step 1 — Get credentials
Setting up takes about 2 minutes. You need a HeyReach workspace.
- In HeyReach open Integrations and the HeyReach API section.
- Click Get API Key, then New API Key, and copy the key into
HEYREACH_API_KEY. Keys do not expire but can be deleted or deactivated there. A key belongs to one workspace. - Install the connector and run
heyreach_check_api_key: it answers 200 with an empty body when the key works.
The key is sent in the X-API-KEY header.
Ids: campaign_id comes from heyreach_list_campaigns; sender ids (account_id, linkedin_account_id, sender_id) from heyreach_list_linkedin_accounts; list_id from heyreach_list_lists; conversation_id from heyreach_list_conversations; webhook_id from heyreach_list_webhooks. A lead is identified by its LinkedIn profile URL (https://www.linkedin.com/in/<slug>/) or its LinkedIn id (linkedin_id in lead records).
Campaigns:
- Read:
heyreach_list_campaigns(filter by status or sender),heyreach_get_campaign,heyreach_get_campaign_sequence(the tree of steps: connection request, message, InMail, follow, like, profile view, with delays and texts),heyreach_list_campaign_leadsandheyreach_get_campaigns_for_lead. - Control:
heyreach_start_campaignstarts a draft that has a sequence, a lead list and at least one connected LinkedIn sender;heyreach_pause_campaignandheyreach_resume_campaignhalt and continue it. - Leads:
heyreach_add_leads_to_campaignadds up to 100 leads per call, optionally pinning each lead to a sender, and can resume a paused campaign in the same call.heyreach_stop_lead_in_campaignstops one lead,heyreach_update_lead_custom_fieldssets custom fields used as message variables. - Campaign statuses: DRAFT, IN_PROGRESS, PAUSED, FINISHED, CANCELED, FAILED, STARTING, SCHEDULED. Lead statuses: Pending, InSequence, Finished, Paused, Failed, Excluded.
Starting campaigns and adding leads makes your LinkedIn accounts act on real profiles, so let the AI show you campaign, sender and leads before it calls these tools.
Lists: heyreach_list_lists, heyreach_get_list, heyreach_list_list_leads, heyreach_list_list_companies, heyreach_get_lists_for_lead, heyreach_create_list (empty lead or company list) and heyreach_add_leads_to_list (up to 100 leads per call). A list is not a campaign: a finished campaign does not pick up new list leads; use heyreach_add_leads_to_campaign for that.
Leads and tags: heyreach_get_lead reads a profile by URL (name, headline, company, position, location, email, tags, experience, education). heyreach_get_lead_tags, heyreach_add_lead_tags (keeps existing tags) and heyreach_replace_lead_tags.
Inbox: heyreach_list_conversations lists the conversations of the sender accounts, newest first, filtered by sender, campaign, lead, tags, read state and time. It does not return email addresses or custom fields; heyreach_get_lead has those. heyreach_get_conversation returns all messages, heyreach_send_message replies from the sender that owns the conversation, and heyreach_set_conversation_seen marks it read or unread. A sent message reaches the lead on LinkedIn at once, so the AI shows you the text first.
Senders and network: heyreach_list_linkedin_accounts and heyreach_get_linkedin_account show limits, cooldowns, Sales Navigator and Recruiter status; heyreach_get_linkedin_account_status tells whether the LinkedIn session is still connected and why not. heyreach_list_network lists the 1st-degree connections of a sender, heyreach_is_connection checks one lead (profile URL or LinkedIn id, not both).
Statistics: heyreach_get_overall_stats and heyreach_get_stats_by_campaign take start_date and end_date (ISO 8601, for example 2026-10-01T00:00:00.000Z) and optional sender and campaign ids. They return profile views, likes, follows, connection requests sent and accepted, messages and InMails sent and replied, with acceptance and reply rates.
Webhooks: heyreach_list_webhooks, heyreach_get_webhook, heyreach_create_webhook and heyreach_update_webhook. One event type per webhook: CONNECTION_REQUEST_SENT, CONNECTION_REQUEST_ACCEPTED, MESSAGE_SENT, MESSAGE_REPLY_RECEIVED, EVERY_MESSAGE_REPLY_RECEIVED, INMAIL_SENT, INMAIL_REPLY_RECEIVED, FOLLOW_SENT, LIKED_POST, VIEWED_PROFILE, CAMPAIGN_COMPLETED, LEAD_TAG_UPDATED.
Switched off at install: heyreach_delete_leads_from_list and heyreach_delete_webhook. They cannot be undone, so a workspace admin turns them on when the team needs them.
Data formats: times are ISO 8601, in UTC unless an offset is given. In the statistics byDayStats is keyed by day (UTC) and rates are fractions (0.23 = 23%).
Paging: most lists take offset and limit (at most 100) and return totalCount and items; heyreach_list_list_leads allows up to 1000 per page and heyreach_list_network uses page_size (at most 100). heyreach_list_conversations is cursor paged (default 10, at most 100): the AI passes nextCursor back as cursor until it is null.
Limits and common errors: 300 requests per minute per key; above that HeyReach answers 429. 401 means a wrong or deactivated key, 404 a wrong id, 400 an invalid body, for example a custom field name with characters other than letters, digits and underscores.
Creating campaigns, connecting LinkedIn accounts (passwords, cookies, proxies) and organization management are left out on purpose; do those in the HeyReach app.
Step 2 — Install the adapter
curl -fsSL https://raw.githubusercontent.com/HelpCode-ai/anythingmcp/main/docker-compose.quickstart.yml -o docker-compose.yml
printf 'JWT_SECRET=%s\nENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" "$(openssl rand -hex 32)" > .env
docker compose up -d
Step 3 — Add the connector in Microsoft Copilot
Your server URL: in AnythingMCP, open MCP Servers → the server this connector is on, and copy its URL (
https://cloud.anythingmcp.com/mcp/…). Use it wherever this guide showsYOUR_SERVER_ID.
Microsoft Copilot uses MCP servers through agents built in Copilot Studio: you add AnythingMCP to an agent as a tool, then publish the agent to Microsoft 365 Copilot and Teams. Copilot Studio connects from Microsoft's cloud over Streamable HTTP, which AnythingMCP supports.
- In Copilot Studio, open your agent (or create one), go to Tools and choose Add a tool → New tool → Model Context Protocol.
- Enter a Server name (for example
AnythingMCP), a Server description that says what the connector does, and the Server URLhttps://cloud.anythingmcp.com/mcp/YOUR_SERVER_ID. Copilot Studio uses the description to decide when to call the server. - Under authentication, choose API key, set Type to Header and the header name to
X-API-Key, then select Create. - In Add tool, choose Create a new connection, paste an MCP API key from AnythingMCP (MCP Servers → your server → API keys) and select Add to agent.
- Try it in the agent's Test pane: ask for something that needs the
HeyReachtools. - Select Publish, then Channels → Microsoft 365 and Microsoft Teams, keep Make agent available in Microsoft Copilot selected and choose Add channel. See agent in Teams installs it for you; in Microsoft 365 Copilot, type @ and pick the agent.
Prefer per-user sign-in? Choose OAuth 2.0 → Dynamic discovery instead of an API key: each user then signs in to AnythingMCP the first time the agent calls it.
Self-hosting? Use your instance's public HTTPS address instead of https://cloud.anythingmcp.com. Copilot Studio connects from Microsoft's cloud, so localhost does not work.
Available tools
| Tool | What it does |
|---|---|
heyreach_check_api_key | Check that the HeyReach API key works |
heyreach_list_campaigns | List LinkedIn outreach campaigns with status, lead list, sender accounts and progress counts (total, in progress, pending, finished, failed) |
heyreach_get_campaign | Get one campaign: status, lead list, sender accounts, exclusion settings and progress counts |
heyreach_get_campaign_sequence | Get the sequence of a campaign: the tree of steps (connection request, message, InMail, follow, like, view profile) with delays and message… |
heyreach_list_campaign_leads | List the leads of a campaign with their LinkedIn profile, status and last action |
heyreach_get_campaigns_for_lead | List the campaigns a lead is in, with campaign status and the lead status in each (Pending, InSequence, Finished, Paused, Failed, Excluded) |
heyreach_add_leads_to_campaign | Add up to 100 leads to a campaign, optionally pinning each lead to a sender account |
heyreach_stop_lead_in_campaign | Stop a lead in a campaign: it gets no further steps |
heyreach_pause_campaign | Pause a running campaign |
heyreach_resume_campaign | Resume a paused campaign so it continues its sequence where each lead stopped |
heyreach_start_campaign | Start a draft campaign |
heyreach_update_lead_custom_fields | Set custom field values on a lead in a campaign, for use as variables in its messages |
heyreach_list_conversations | List LinkedIn conversations of the sender accounts, newest first, with the last message, read state and the lead profile |
heyreach_get_conversation | Get one LinkedIn conversation with all its messages, senders and the lead profile |
heyreach_send_message | Send a LinkedIn message in an existing conversation from the sender account of that conversation |
heyreach_set_conversation_seen | Mark a LinkedIn conversation as read or unread in the HeyReach inbox |
heyreach_list_linkedin_accounts | List the LinkedIn sender accounts: name, email, active campaigns, whether the session is valid, Sales Navigator and Recruiter status… |
heyreach_get_linkedin_account | Get one LinkedIn sender account with its limits, cooldowns and session state |
heyreach_get_linkedin_account_status | Get the live connection status of a LinkedIn sender (Connected, Disconnected and why) and its Sales Navigator and Recruiter sessions |
heyreach_list_lists | List lead and company lists with their ids, sizes, type and the campaigns using them |
heyreach_get_list | Get one lead or company list: name, type, size, creation time and campaigns using it |
heyreach_list_list_leads | List the leads of a lead list with profile, company, position, tags, email and custom fields |
heyreach_list_list_companies | List the companies of a company list with name, LinkedIn URL and details, paged |
heyreach_get_lists_for_lead | List the lead lists a lead belongs to |
heyreach_create_list | Create an empty lead list or company list; fill it with heyreach_add_leads_to_list |
heyreach_add_leads_to_list | Add up to 100 leads to a lead list |
heyreach_delete_leads_from_list | Remove leads from a lead list by their LinkedIn profile URLs |
heyreach_get_lead | Get a lead by LinkedIn profile URL: name, headline, company, position, location, email, tags, experience and education |
heyreach_get_lead_tags | Get the tags of a lead, identified by its LinkedIn profile URL |
heyreach_add_lead_tags | Add tags to a lead (existing tags are kept) |
heyreach_replace_lead_tags | Replace all tags of a lead with the given ones |
heyreach_list_network | List the 1st-degree LinkedIn connections of a sender account, paged |
heyreach_is_connection | Check whether a lead is a 1st-degree connection of a sender |
heyreach_get_overall_stats | Get outreach results for a period, per day and in total: profile views, likes, follows, connection requests sent and accepted, messages and… |
heyreach_get_stats_by_campaign | Get the same outreach results as heyreach_get_overall_stats, broken down per campaign |
heyreach_list_webhooks | List the webhooks of the workspace with their URL, event type, campaigns and active state |
heyreach_get_webhook | Get one webhook with its URL, event type, campaigns and active state |
heyreach_create_webhook | Create a webhook that POSTs one event type to a URL, for all campaigns or selected ones |
heyreach_update_webhook | Change a webhook: name, URL, event type, campaigns, or switch it on or off |
heyreach_delete_webhook | Delete a webhook by id |
Example prompts
- "How did our LinkedIn outreach do last month? Show connection requests sent and accepted and the reply rate per campaign."
- "Show me the unread LinkedIn conversations of the last 3 days with lead name and last message."
- "Add these three LinkedIn profiles to the Founders DACH campaign and tell me how many were added."
- "Is any of our LinkedIn sender accounts disconnected right now?"
- "Which campaigns is https://www.linkedin.com/in/jane-doe in, and what is her status in each?"
FAQ
Which Copilot is this for? Microsoft 365 Copilot at work, through agents built in Copilot Studio. The Microsoft Copilot app for personal accounts has no option to add your own MCP server.
What do I need? A work account with access to Copilot Studio (a license or a trial) to build the agent. People who use it in Microsoft 365 Copilot or Teams need access to the agent: share it with them, or ask an admin to publish it to the organization. If your organization applies data policies to Power Platform connectors, they cover MCP servers too.
The agent doesn't call the tools. Check that the header name is exactly X-API-Key and that the key belongs to the same MCP server as the URL, and make the server description specific: Copilot Studio uses it to decide when to call the server. Publish the agent again after each change; in an open chat, type "start over" to get the new version.
Next steps
- Connector landing page
- Connect to Claude
- Connect to ChatGPT
- Connect to Cursor
- Connect to Gemini
- Connect to Meta Muse
Was this guide helpful?