mcpbeat Sign in

Reach MCP — LinkedIn for AI agents MCP Server

answering

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

LinkedIn for AI agents: inbox, invitations, Sales Navigator search, posts. Quotas and webhooks.

Uptime history 9 days of history
9 days agonow
100.0%
Uptime 24h
92 of 92 checks
52
Tools
read from the server
260 ms
Response time
average over 24h
open, no key
Access
streamable-http

Nothing serious here today

Today is the operative word: we check Reach MCP — LinkedIn for AI agents every 15 minutes and re-read its code on every release. Watch it and you find out the day that stops being true.

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 1 min ago.

run in your terminal
claude mcp add linkedin --transport http https://app.reachmcp.com/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "linkedin": {
      "url": "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
{
  "mcpServers": {
    "linkedin": {
      "url": "https://app.reachmcp.com/mcp"
    }
  }
}

Available tools 52

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. 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.
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.
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).
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).
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.
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 answering 261 ms 1 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
LinkedIn Sales Navigator
by nick-choudhary

LinkedIn Sales Navigator contact and account search from your logged-in browser.

77 installs/wk local only
LinkedIn Toolkit
by formatixai

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

142 installs/wk local only
Linkedin
by veezee

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

answering
Periodix Actions
by periodix

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

answering
LinkedIn MCP Server
by prakharagarwal-dev

Find LinkedIn jobs and people, research companies, manage network, posts, and messages with MCP.

local only
Linkedin MCP
by devag7

LinkedIn for AI assistants — search, profiles, jobs, feed, messaging, and gated writes.

91 installs/wk local only
Shippost MCP
by ryankramer

Twitter/X tools for AI agents — read timelines, post tweets, search, and engage

57 installs/wk local only

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 52 tools, read directly from the server on our last check. Among them: accept_invitation, archive_conversation, comment_post, connect, create_multi_photo, create_post and 46 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 scrape. 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 92 of 92 checks got a reply (100.0%), average response time 260 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 with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does Reach MCP — LinkedIn for AI agents need an API key?
No. Reach MCP — LinkedIn for AI agents completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 52 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is Reach MCP — LinkedIn for AI agents?
It answers our handshake in 260 ms on average, which is faster than 56% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.