LinkedIn MCP Server
The proReach LinkedIn MCP server is a hosted Model Context Protocol endpoint that gives an AI agent 8 tools for running LinkedIn outreach: read the workspace, pick a sequence template, draft a campaign, add leads, launch behind a confirmation gate, pause, and report on metrics and replies. The agent decides strategy. proReach performs every LinkedIn action itself, on its own schedule, inside the same safety limits that govern the web app.
At a glance
| Endpoint | https://proreach.ai/api/mcp |
|---|---|
| Transport | Streamable HTTP, stateless |
| Auth | Bearer API key (prk_…), created in Settings and revocable anytime |
| Tools | 8 |
| Rate limit | 60 requests per minute per key |
| Clients | Claude Code, Cursor, Windsurf, VS Code, Claude Desktop (via mcp-remote) |
| Hosting | Hosted by proReach. Nothing to install or self-host. |
| Price | No extra cost. API keys are free; your plan limits apply. Plans start at $49/mo (Solo), or $39/mo billed yearly. |
| LinkedIn credentials | Never exposed to the agent. No tool accepts a password, cookie, or session token. |
Where the sending actually happens
Most LinkedIn MCP servers hand the agent a send button. Some drive a browser session through an extension, others wrap a scraping API, and the agent calls something like “send connection request” directly. That design makes for an impressive tool count, and it puts the pacing decision inside the language model.
proReach splits it. The MCP tools are a planning surface: they create and modify campaign records, and that is the full extent of their power. A separate proReach worker picks that work up and performs the LinkedIn activity gradually, applying per-account daily caps, configured working hours, new-account warm-up, and a randomized cooldown between every action. The practical consequence is that the blast radius of a bad agent decision is a badly targeted campaign you can pause, not a restricted LinkedIn account.
The same split explains the boundaries further down this page. They are not missing features so much as the price of that architecture.
The 8 tools
Every tool returns a JSON envelope of the shape { ok, data?, error?, next_steps }. The next_steps field always names the next sensible action, which is what lets an agent chain the whole workflow without a human narrating each step.
| Tool | What it does | Writes? |
|---|---|---|
get_workspace_status | Reports LinkedIn connection state, subscription status, campaign and lead counts, and how many replies are waiting. Agents are told to call this first so they can work out the next step instead of guessing. | No |
list_campaign_templates | Returns the four built-in sequences (cold outreach, engage then connect, multi-touch nurture, persistent follow-up) plus any the user saved, with per-step message previews and the step refs used to override copy. | No |
create_campaign | Creates a draft campaign from a template using the connected LinkedIn account, with optional per-step copy overrides. Merge tags such as %%first_name%% are filled per lead at send time. | Yes, draft only |
add_leads | Bulk-adds prospects from public LinkedIn profile URLs, with optional name, headline, and company. Blacklisted people and anyone already targeted in another campaign are skipped automatically. | Yes |
launch_campaign | Two-step launch. Called without confirm it returns a preflight report of lead count, sending account, and blockers. Only a second call with confirm=true starts real outreach. | Yes, behind a confirmation gate |
pause_campaign | Stops new sends immediately. Leads keep their position in the sequence, so relaunching later never rewinds anyone or repeats a message. | Yes |
get_campaign_metrics | Funnel counts (queued, in progress, finished, failed), connection acceptance rate, reply rate, and recent delivery errors. Omit the campaign id for a workspace-wide view. | No |
get_inbox_summary | Lists conversations where a prospect replied and is waiting on the user, with previews and a deep link into the proReach inbox. Read-only by design: sending a reply stays a human action. | No |
Connect your client
First create a key: open Settings in proReach, go to AI agents (MCP), and generate one. The key is shown once and stored only as a hash, so treat it like a password and create a new one if you lose it. Then pick your client.
Claude Code
One command, run anywhere:
claude mcp add --transport http proreach https://proreach.ai/api/mcp \
--header "Authorization: Bearer prk_YOUR_KEY"Cursor, Windsurf, and VS Code
Add the server to your MCP config (~/.cursor/mcp.json for Cursor):
{
"mcpServers": {
"proreach": {
"url": "https://proreach.ai/api/mcp",
"headers": { "Authorization": "Bearer prk_YOUR_KEY" }
}
}
}Claude Desktop
Desktop speaks stdio, so it reaches a remote server through the mcp-remote bridge. Settings, then Developer, then Edit Config:
{
"mcpServers": {
"proreach": {
"command": "npx",
"args": [
"mcp-remote",
"https://proreach.ai/api/mcp",
"--header",
"Authorization: Bearer prk_YOUR_KEY"
]
}
}
}Once connected, ask your agent something open-ended like “I need customers, set up LinkedIn outreach for me with proReach.” A well-behaved agent calls get_workspace_status first and tells you exactly what is missing.
The companion agent skill
The tools tell an agent what it can do. They do not tell it what good outreach looks like. The proReach skill is a playbook that closes that gap: it makes the agent qualify your offer before writing copy, keeps the first touch free of pitches, and reads acceptance and reply rates as decisions rather than trivia.
It is agent-agnostic and published on PolySkill. You can also read the raw playbook at /skills/proreach-outreach/SKILL.md, which is the fastest path if your agent can fetch a URL but has no package manager.
npm install -g @polyskill/cli
polyskill install @mrspacemann/proreach-outreachWhat the tools deliberately will not do
Four hard limits, each a consequence of the split described above. Knowing them up front is more useful than discovering them mid-workflow.
- No credential handling. Connecting LinkedIn happens in the web app. No tool accepts a password, cookie, or session token.
- No keyword people search.
add_leadstakes public profile URLs. LinkedIn search and Sales Navigator imports run through the web app importer, and the tools deep-link you there instead of pretending otherwise. - No sending replies.
get_inbox_summaryis read-only. An agent can summarize and draft, but a human presses send in the proReach inbox. - No deletes. Pause is the strongest stop verb in the tool surface. Destructive operations stay in the web app behind a session login.
Auth and rate limiting
Keys are 40 hex characters prefixed with prk_, stored as SHA-256 hashes alongside a short preview like prk_…a1b2. Plaintext exists only in the HTTP response that creates the key, so there is no endpoint anywhere that can return an existing key. Rotation means revoking and creating a new one.
Revocation takes effect on the next request, since every call re-checks the key. Each key is limited to 60 requests per minute, and repeated failed authentication from one address is throttled separately. Every tool call is scoped to the user the key belongs to, so a key can only ever read and write that account’s campaigns, leads, and inbox.
Frequently asked questions
Does LinkedIn have an official MCP server?
No. As of August 2026 LinkedIn publishes no official MCP server, and its developer product catalog lists REST products only. Every LinkedIn MCP server available today is built by a third party, either an open-source community project or a vendor-hosted server like this one. That matters when you choose: since none of them are endorsed by LinkedIn, the real question is what sits between the AI and your account.
Is there a LinkedIn API, and why not just use that?
LinkedIn does publish official REST APIs, but open permissions cover only profile data, email, and posting, commenting, and liking as the signed-in member. Everything an outreach workflow needs, including the Messages API and connection data, is gated behind LinkedIn partner-program approval, which developers commonly report taking one to four months and which routinely rejects use cases that touch messaging or bulk profile data. So a self-serve LinkedIn outreach integration cannot be built on the official API alone, which is exactly why this category exists.
How do I get the proReach LinkedIn MCP server?
Create a proReach account, connect your LinkedIn account in the web app, then open Settings and the AI agents (MCP) tab to generate an API key. Add the endpoint https://proreach.ai/api/mcp with that key as a bearer token to your MCP client. For Claude Code it is a single claude mcp add command. There is nothing to install or self-host: the server is hosted and stateless.
Can the AI agent send connection requests or messages directly?
No, and this is the central design decision. The tools write campaign state into proReach and nothing else. Every real LinkedIn action is performed later by proReach infrastructure inside its own daily caps, working hours, warm-up schedule, and randomized cooldowns. An agent that misjudges volume cannot translate that into a burst of LinkedIn activity, because no tool sends anything at call time.
Does the agent ever see my LinkedIn password or session?
Never. Connecting LinkedIn happens only in the proReach web app, and there is deliberately no MCP tool that accepts credentials. If a prompt injection or a confused agent tries to collect your LinkedIn login, there is nowhere in the tool surface to put it. The agent authenticates to proReach with a scoped API key that you can revoke at any time.
What stops an agent from launching a campaign without asking me?
launch_campaign is two-step by design. Called without confirm, it returns a preflight report covering lead count, the sending account, and any blockers such as an expired LinkedIn session or a plan limit. Only a second call carrying confirm=true actually starts sending, so the agent has to surface the report and get your explicit go-ahead first. Pausing needs no confirmation, because stopping is always safe.
Which AI clients does it work with?
Any client that speaks MCP over Streamable HTTP, which includes Claude Code, Cursor, Windsurf, and VS Code. Claude Desktop connects through the mcp-remote bridge. OAuth support, which claude.ai web connectors require, is on the roadmap; API keys are the v1 auth method.
What does the MCP server cost?
Nothing beyond your normal plan. API keys are free to create and the MCP is another way to drive the same product, not a separate SKU. Plans start at $49 per month, or $39 per month billed yearly, and your plan limits on active sequences and credits apply identically whether you work in the web app or through an agent.
Related
- Best LinkedIn MCP servers in 2026 An honest comparison of the hosted and open-source options, including where proReach is the wrong choice.
- Turn your AI agent into an AI SDR The narrative walkthrough, including a real seven-turn agent session.
- Pricing Plan limits apply identically through the MCP and the web app.
