mcpbeat Sign in

Reach MCP — LinkedIn for AI agents MCP Server

answering

Reach MCP — LinkedIn for AI agents is answering right now. Last checked 10 min ago. It exposes 58 tools.

LinkedIn for AI agents: inbox, invitations, Sales Navigator search, posts, jobs, quotas, webhooks.

Uptime history 54 days of history · worst day 93%
54 days agonow
100.0%
Uptime 24h
91 of 91 checks
58
Tools
read from the server
285 ms
Response time
average over 24h
OAuth sign-in
Access
streamable-http

What changed 10

Every tool that appeared, vanished or quietly changed what it asks for. Recorded since 27 September 2026. No other catalogue keeps this.

27 Sep 6 tools appeared cancel_job, create_job, get_job and 3 more
27 Sep 2 tool descriptions were rewritten create_job, update_account_quotas
27 Sep 2 tools changed the parameters they ask for create_job, update_account_quotas

Reach MCP — LinkedIn for AI agents missed one check this week

Everything else answered, so this is steady rather than shaky. We check every 15 minutes, which is how a one-off gets told apart from the start of a pattern, and how you hear about the next one within the hour instead of from your users.

Three servers free · no card

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 10 min ago.

run in your terminal
claude mcp add linkedin --transport http https://app.reachmcp.com/mcp
Settings → Connectors → Add custom connector, then paste this address
https://app.reachmcp.com/mcp
~/.codex/config.toml
[mcp_servers.linkedin]
url = "https://app.reachmcp.com/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "linkedin": {
      "url": "https://app.reachmcp.com/mcp"
    }
  }
}
.vscode/mcp.json
{
  "servers": {
    "linkedin": {
      "type": "http",
      "url": "https://app.reachmcp.com/mcp"
    }
  }
}

This endpoint answered with an authorization challenge. The server is running, and it signs you in through your browser: there is no API key to paste.

Available tools 58

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

salesnav
salesnav_build_search_url
Build a Sales Navigator people-search URL from structured lead-search filters, using as many filters as the request implies. RESOLUTION: `industry` accepts numeric ids OR names (auto-resolved via the taxonomy); `region` accepts numeric REGION ids OR location names (auto-resolved via geo typeahead — needs account_id). If a name is ambiguous, the tool returns {needs_disambiguation:[...]} with candidates instead of a URL — re-call with the chosen id. BOOLEAN: `keywords` and `current_title` accept LinkedIn boolean syntax (AND/OR/NOT, quotes, parentheses). EXCLUSION: any list value may be an object {id|name, exclude:true}. Set execute=true to also run the first page of results (reuses the live search) and return leads.
salesnav_list_messaging_threads
List Sales Navigator messaging threads (salesApiMessagingThreads). Requires the account to have a Sales Navigator subscription (has_sales_nav). Returns threads with messages and participant profiles. Paginate by passing next_page_starts_at from the previous response as page_starts_at.
salesnav_list_thread_messages
Fetch a Sales Navigator thread with all its messages and participant profiles (salesApiMessagingThreads/{id}). Requires a Sales Navigator subscription. Use the thread id returned by salesnav_list_messaging_threads. message_count controls how many (most recent) messages are returned; compare with total_message_count in the response to know if more exist.
salesnav_resolve_industry
Resolve an industry name (any language) to its LinkedIn Industry Code(s) using the bundled Industry Codes V2 taxonomy (offline, no LinkedIn call). Returns ranked candidates with id, label and hierarchy path. Use the returned id(s) in salesnav_build_search_url's `industry` filter. Call once per industry term; if several candidates look plausible, pick by the hierarchy path.
salesnav_send_message
Send a message in an existing Sales Navigator thread (salesApiMessageActions). Requires the account to have a Sales Navigator subscription. Use the thread id returned by salesnav_list_messaging_threads.
salesnav_typeahead
Live Sales Navigator autocomplete for facets whose ids are dynamic. Use type='geo' to resolve a location to its REGION id (the only reliable way — LinkedIn region ids are not enumerable), and type='company' / 'school' / 'title' for those entity facets. Returns [{id, displayValue, headline}]. Feed the chosen id into salesnav_build_search_url (region / current_company / school / current_title). Requires a connected account.
account
delete_account
Delete a LinkedIn account by account_id. Also clears invitation references before deletion.
get_account_quotas
Get the quotas configuration and usage counters for a LinkedIn account.
get_account_request_logs
Get request logs for a LinkedIn account with optional filtering by request_type and pagination using limit/offset.
get_account_request_logs_stats
Get aggregated request-log statistics for a LinkedIn account, grouped by day, week, or month, with optional action and date-range filters.
update_account_quotas
Update one or more quota configuration fields for a LinkedIn account, and its activity window (the hours, days and timezone jobs run in when a job does not set its own). Only provided fields are updated.
scrape
scrape_my_posts
Fetch likers and/or commenters for the account's own recent posts. since_hours limits to posts published in the last N hours (default 24).
scrape_post
Fetch likers and/or commenters for a LinkedIn post. Pass the full post URL or slug. Set liked=true and/or comments=true.
scrape_profile
Fetch a complete LinkedIn profile (name, headline, company, experience, skills…). Pass a LinkedIn URL, vanity name, internal member ID, or Sales Navigator lead URL. Uses SalesNav API when available for richer data.
scrape_search
Run one page of a LinkedIn, Sales Navigator, or Recruiter search and return normalized profile rows. Pass the full search URL. Use start+count to paginate (count ignored for standard LinkedIn, fixed ~10/page).
webhook
create_webhook_endpoint
Register a URL to be called when something happens on LinkedIn, so an agent or an n8n/Make workflow can react instead of polling. Returns the signing secret ONCE; deliveries carry 'Reach-Signature: t=<unix>,v1=<hex HMAC-SHA256(secret, t + '.' + body)>'. Events: message.received, connection.new, account.status_changed, quota.threshold_reached, quota.reached, or '*' for all. Omit account_ids to subscribe for every account of the user. https only.
delete_webhook_endpoint
Delete a webhook endpoint and its delivery history.
list_webhook_endpoints
List the webhooks registered for this user: the URLs Reach calls when a conversation gets a new message (message.received), the account gains a 1st-degree connection (connection.new), an account changes connection state (account.status_changed) or a daily quota is close to or at its limit (quota.threshold_reached, quota.reached). Read-only.
update_webhook_endpoint
Change a webhook's url, events, account_ids, description or is_active. Only provided fields change. Re-enabling clears the failure counter.
scheduled
delete_scheduled_post
Delete a scheduled LinkedIn post. post_urn is the URN returned by list_scheduled_posts (e.g. urn:li:ugcPost:…).
list_scheduled_posts
List scheduled LinkedIn posts for an account, paged. Returns post URNs, text content, and scheduled publish times.
update_scheduled_post
Update the text and/or scheduled time of an existing scheduled LinkedIn post. post_urn is the URN returned by list_scheduled_posts (e.g. urn:li:ugcPost:…). At least one of text or scheduled_at must be provided.
conversation
delete_conversation
Permanently delete a LinkedIn conversation. conversation_linkedin_id is the conversation_id returned by list_conversations.
list_conversation_messages
List messages in a LinkedIn conversation via Voyager ``/messaging/conversations/{id}/events`` (Kanbox ``get_conversation_messages``), with optional created_before paging — same as GET /api/linkedin/{account_id}/conversations/{conversation_linkedin_id}/messages.
job
create_job
Queue a batch of LinkedIn actions (messages, invitations, profile visits or comments) that Reach executes on its own over the following hours or days: spread across the account's activity window (set per account with update_account_quotas; default 09:00-18:00, Monday to Friday, in the account's timezone; overridable per job) with human-like gaps, never beyond the daily quota of the action. Returns immediately with a job_id and the planned schedule; the agent does not have to stay alive. The job pauses by itself when a quota is reached or the account disconnects and resumes when it can; webhooks job.started / job.progress / job.paused / job.completed report what happens. Use it for anything above a handful of actions instead of calling send_message or connect in a loop. Always show the user the items before queuing them.
get_job
One job with its status, totals, next execution time and every item (scheduled time, result or error).
accept
accept_invitation
Accept a pending received connection request.
accounts
list_accounts
Return LinkedIn accounts accessible with the provided API key. If the key is restricted, only allowed account IDs are returned.
archive
archive_conversation
Archive or unarchive a LinkedIn conversation. Set archive=false to unarchive. conversation_linkedin_id is the conversation_id returned by list_conversations.
cancel
cancel_job
Cancel a job: its pending items will never run. Items already executed are unaffected. Cannot be undone.
comment
comment_post
Post a comment on a LinkedIn post on behalf of the connected account.
connect
connect
Send a connection request to a LinkedIn member. Optional message capped at 300 chars (premium) or 200 chars.
connection
remove_connection
Remove an existing 1st-degree connection.
connections
list_connections
List LinkedIn 1st-degree connections for an account (Voyager dash connections), paged with start/count — same payload as GET /api/linkedin/{account_id}/connections.
conversations
list_conversations
List LinkedIn messenger conversations (Voyager Messaging GraphQL), with optional archived, unread, starred filters and next_cursor paging — same as GET /api/linkedin/{account_id}/conversations. Each item returns conversation_id (the thread id — use this as conversation_linkedin_id when fetching messages or replying) and recipient_linkedin_id (the peer's fsd_profile id — use this as recipient_linkedin_id when sending a new message).
decline
decline_invitation
Decline/ignore a pending received connection request.
follow
follow
Follow or unfollow a LinkedIn member without connecting. Set follow=false to unfollow.
get
get_me
Call LinkedIn Voyager /me for an account through the stored proxy/cookies and return the normalized profile (same fields as Kanbox uses from /me).
invitation
invitation_status
Get the connection and invitation status between the connected account and a LinkedIn member. Returns is_connection, invitation_type (SENT/PENDING/WITHDRAWN/REFUSED).
jobs
list_jobs
Jobs of this user, newest first, without their items. Filter by account or status (scheduled, running, paused, completed, cancelled).
like
like_post
Like a LinkedIn post on behalf of the connected account. Pass the post URL, slug, or URN.
multi
create_multi_photo
Create a LinkedIn multi-photo object from a list of digitalmediaAsset URNs. Returns an identifierUrn (urn:li:fsd_multiPhoto:…) to pass to create_post. author_urn is the urn:li:fsd_profile:… of the connected account (get it from get_me).
pause
pause_job
Pause a job: nothing more runs until resume_job is called. Reach also pauses a job by itself when a quota is reached or the account disconnects, and resumes those on its own.
post
create_post
Create or schedule a LinkedIn post, optionally with a media attachment. For a single image pass a urn:li:digitalmediaAsset:… URN; for multiple images pass a urn:li:fsd_multiPhoto:… URN from create_multi_photo. Set scheduled_at (Unix ms) to schedule; omit it to publish immediately.
profile
profile_viewers
Get the list of members who recently viewed the account's profile (requires LinkedIn Premium).
reach
reach_playbooks
START HERE. Return the catalogue of ready-made LinkedIn playbooks — what this server can actually accomplish, as named workflows rather than raw endpoints. Each entry carries its tool sequence, its prerequisites, and the full instructions to run it. Call this first when the user asks what you can do with their LinkedIn account, or when a request is vague. Pass playbook_id to get one playbook's instructions and then follow them.
react
react_message
Add or remove an emoji reaction on a LinkedIn message. Set react=false to remove the reaction. message_urn is the message_urn returned by list_conversation_messages (e.g. urn:li:msg_message:(urn:li:fsd_profile:…,123456789)). emoji is a Unicode emoji character (e.g. 👍, ❤️). Pass conversation_linkedin_id to also mark the conversation as read.
received
list_received_invitations
List pending connection invitations received by the account (with invitation_secret to accept them).
reply
reply_comment
Post a reply to an existing LinkedIn comment. Pass the comment_id (URN) returned by scrape_post as comment_urn — it is used directly as threadUrn.
resume
resume_job
Resume a paused job. Its pending items are re-planned from now, inside the window and the remaining quota.
send
send_message
Send a LinkedIn DM via Voyager createMessage: use conversation_linkedin_id for an existing thread or recipient_linkedin_id for a new DM.
sent
list_sent_invitations
List pending connection invitations sent by the account that have not yet been accepted.
star
star_conversation
Star or unstar a LinkedIn conversation. Set star=false to remove the star. conversation_linkedin_id is the conversation_id returned by list_conversations.
test
test_webhook_endpoint
Send a signed 'ping' event to a webhook endpoint right now and report the HTTP status it answered.
upload
upload_media_from_url
Upload an image to LinkedIn by fetching it from a public URL. Returns a digitalmediaAsset URN (urn:li:digitalmediaAsset:…) that can be passed to create_post (single image) or create_multi_photo (multi-photo). Use this instead of upload-media when working as an agent — no binary file upload needed.
user
user_posts
Get recent posts published by a LinkedIn member (via profileUpdatesV2). Paginate with start/count.
visit
visit_profile
Simulate a profile view, triggering a 'viewed your profile' notification for the target member.
withdraw
withdraw_invitation
Withdraw a pending sent connection request.

Endpoints

URLTransportStateLatencyChecked
https://app.reachmcp.com/mcp streamable-http sign-in 192 ms 10 min ago

Alternatives to Reach MCP — LinkedIn for AI agents

same job, measured the same way
Curviate
by curviate

LinkedIn actions for AI agents: search, messaging, posts and invites, as hosted MCP tools.

answering
TopClozer LinkedIn MCP
by topclozer

LinkedIn for AI agents: search people, read profiles, posts and connections via a connected account

answering
Periodix Actions
by periodix

Search LinkedIn & Sales Navigator. Get structured people, companies, posts, jobs data. 4.9/5 on G2.

answering
HeyReagent LinkedIn MCP
by linglistack

Free to start. Hosted LinkedIn MCP for your own account: inbox, invites, search. Not by LinkedIn.

answering
Famelab: LinkedIn AI agents
by famelab

LinkedIn AI agents for B2B: leads, inbox, draft replies, campaigns and posts. You approve each send.

answering
LinkMCP: hosted LinkedIn MCP server
by linkmcp

Hosted LinkedIn MCP server on your own account: 35 tools for search, profiles, inbox, posts, pages.

answering
LinkedIn Toolkit
by formatixai

LinkedIn for AI agents from your own Chrome session: search, profiles, lists, outreach queue.

77 installs/wk local only
Linkedin
by veezee

LinkedIn data for AI agents: search, profiles, companies, posts. Free key, self-minted, no signup.

answering

Reach MCP — LinkedIn for AI agents — questions

Answers built from our own checks of this server.

What can Reach MCP — LinkedIn for AI agents do?
It exposes 58 tools, read directly from the server on our last check. Among them: accept_invitation, archive_conversation, cancel_job, comment_post, connect, create_job and 52 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is Reach MCP — LinkedIn for AI agents mostly used for?
Its tools cluster around salesnav, account and webhook. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is Reach MCP — LinkedIn for AI agents working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 91 of 91 checks got a reply (100.0%), average response time 285 ms. The bar chart above shows every period we have measured.
How do I connect Reach MCP — LinkedIn for AI agents?
Copy the ready config from this page. We generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each in the form that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address. You sign in through your browser once and the client keeps the session: no key to copy, and it refuses anonymous clients.
How do you sign in to Reach MCP — LinkedIn for AI agents?
No API key is involved. Reach MCP — LinkedIn for AI agents answers our knock with an OAuth challenge, so you authorise it once in your browser and the client keeps the session. That is also why we see no tool list: it will not describe itself to an anonymous client, and that is the server working as intended, not a fault.
How fast is Reach MCP — LinkedIn for AI agents?
It answers our handshake in 285 ms on average, which is faster than 50% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.