LinkedIn MCP server for your agent
To give Claude, Cursor, ChatGPT or another MCP client LinkedIn data, add Apify's hosted MCP server with the Actors ticked below as tools (6 by default); the URL is in every config. Sign in with your Apify account or pass an API token; each call runs the Actor and returns LinkedIn records to the agent.
One click, signs in with Apify on first use:
Any other client, one command (writes the config for 25+ agents, including Windsurf, Zed, Cline and Goose):
npx add-mcp "https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/linkedin-company-page-post-and-engagement,nimbryxo-studio/linkedin-company-headcount-and-team-directory,nimbryxo-studio/linkedin-company-pages-with-funding-and-affiliates,vexaloom-labs/linkedin-keyword-and-hashtag-post-discovery,nimbryxo-studio/linkedin-profile-scraper-with-company,nimbryxo-studio/linkedin-people-finder-by-role-seniority" --name apify-linkedin - Catalogue Actors
- 19
- In this bundle
- 6
- Official API
- Partners only
- Data checked
- 2026-11-12
Config for your client
Claude Code configterminal or .mcp.json
claude mcp add --transport http apify-linkedin "https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/linkedin-company-page-post-and-engagement,nimbryxo-studio/linkedin-company-headcount-and-team-directory,nimbryxo-studio/linkedin-company-pages-with-funding-and-affiliates,vexaloom-labs/linkedin-keyword-and-hashtag-post-discovery,nimbryxo-studio/linkedin-profile-scraper-with-company,nimbryxo-studio/linkedin-people-finder-by-role-seniority" - Run the command in your project folder. Add --scope user to make it available in every project.
- Start Claude Code, type /mcp, pick the server and sign in to Apify in the browser window.
- No browser sign-in? Add --header "Authorization: Bearer YOUR_APIFY_TOKEN" to the command instead.
Sign-in: OAuth sign-in on first use, or a token header.
Claude Desktop configclaude_desktop_config.json
{
"mcpServers": {
"apify-linkedin": {
"command": "npx",
"args": [
"-y",
"@apify/actors-mcp-server",
"--tools",
"fetch-actor-details,vexaloom-labs/linkedin-company-page-post-and-engagement,nimbryxo-studio/linkedin-company-headcount-and-team-directory,nimbryxo-studio/linkedin-company-pages-with-funding-and-affiliates,vexaloom-labs/linkedin-keyword-and-hashtag-post-discovery,nimbryxo-studio/linkedin-profile-scraper-with-company,nimbryxo-studio/linkedin-people-finder-by-role-seniority"
],
"env": {
"APIFY_TOKEN": "YOUR_APIFY_TOKEN"
}
}
}
} - Easiest: open Customize, then Connectors, choose Add custom connector, paste the server URL (the ChatGPT tab shows it on its own) and sign in to Apify.
- Local alternative (needs Node.js): merge this into claude_desktop_config.json (Settings, Developer, Edit config) and replace YOUR_APIFY_TOKEN.
- Restart Claude Desktop and enable the server from the tools menu in a chat.
Sign-in: Connector with OAuth, or a token in the local config.
Cursor config~/.cursor/mcp.json
{
"mcpServers": {
"apify-linkedin": {
"url": "https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/linkedin-company-page-post-and-engagement,nimbryxo-studio/linkedin-company-headcount-and-team-directory,nimbryxo-studio/linkedin-company-pages-with-funding-and-affiliates,vexaloom-labs/linkedin-keyword-and-hashtag-post-discovery,nimbryxo-studio/linkedin-profile-scraper-with-company,nimbryxo-studio/linkedin-people-finder-by-role-seniority",
"headers": {
"Authorization": "Bearer ${env:APIFY_TOKEN}"
}
}
}
} - Save as ~/.cursor/mcp.json for every project, or .cursor/mcp.json for one project. Merge with servers you already have.
- Set APIFY_TOKEN in the environment Cursor starts from, or replace ${env:APIFY_TOKEN} with your token.
- Open Cursor Settings, then MCP, and check that the server lists its tools.
Sign-in: Token read from the APIFY_TOKEN environment variable.
VS Code config.vscode/mcp.json
{
"inputs": [
{
"type": "promptString",
"id": "apify-token",
"description": "Apify API token",
"password": true
}
],
"servers": {
"apify-linkedin": {
"type": "http",
"url": "https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/linkedin-company-page-post-and-engagement,nimbryxo-studio/linkedin-company-headcount-and-team-directory,nimbryxo-studio/linkedin-company-pages-with-funding-and-affiliates,vexaloom-labs/linkedin-keyword-and-hashtag-post-discovery,nimbryxo-studio/linkedin-profile-scraper-with-company,nimbryxo-studio/linkedin-people-finder-by-role-seniority",
"headers": {
"Authorization": "Bearer ${input:apify-token}"
}
}
}
} - Save as .vscode/mcp.json in your workspace.
- Start the server from the file or the MCP servers view. VS Code asks for the token once and stores it securely.
- Use the tools from Copilot Chat in agent mode.
Sign-in: Token prompted once and stored by VS Code.
ChatGPT configPlugins > Add custom MCP server
https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/linkedin-company-page-post-and-engagement,nimbryxo-studio/linkedin-company-headcount-and-team-directory,nimbryxo-studio/linkedin-company-pages-with-funding-and-affiliates,vexaloom-labs/linkedin-keyword-and-hashtag-post-discovery,nimbryxo-studio/linkedin-profile-scraper-with-company,nimbryxo-studio/linkedin-people-finder-by-role-seniority - In ChatGPT on the web, open Plugins, select + and choose Add custom MCP server.
- Name it, paste the URL under Connection as the Server URL and choose OAuth for authentication.
- Accept the risk warning (I understand and want to continue), select Create as a plugin, then install the plugin from your plugins, sign in to Apify and use it in a new chat.
Sign-in: OAuth sign-in with your Apify account.
Codex CLI config~/.codex/config.toml
[mcp_servers.apify-linkedin]
url = "https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/linkedin-company-page-post-and-engagement,nimbryxo-studio/linkedin-company-headcount-and-team-directory,nimbryxo-studio/linkedin-company-pages-with-funding-and-affiliates,vexaloom-labs/linkedin-keyword-and-hashtag-post-discovery,nimbryxo-studio/linkedin-profile-scraper-with-company,nimbryxo-studio/linkedin-people-finder-by-role-seniority"
bearer_token_env_var = "APIFY_TOKEN" - Add the block to ~/.codex/config.toml, or .codex/config.toml in a project.
- Export APIFY_TOKEN in the shell that starts Codex. Or skip the token line and run codex mcp login to sign in.
- Start codex and type /mcp to check that the tools are listed.
Sign-in: Token read from the APIFY_TOKEN environment variable.
Gemini CLI configterminal (writes ~/.gemini/settings.json)
gemini mcp add -t http -s user -H "Authorization: Bearer $APIFY_TOKEN" apify-linkedin "https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/linkedin-company-page-post-and-engagement,nimbryxo-studio/linkedin-company-headcount-and-team-directory,nimbryxo-studio/linkedin-company-pages-with-funding-and-affiliates,vexaloom-labs/linkedin-keyword-and-hashtag-post-discovery,nimbryxo-studio/linkedin-profile-scraper-with-company,nimbryxo-studio/linkedin-people-finder-by-role-seniority" - Export APIFY_TOKEN first: the shell expands it and Gemini CLI saves the header, token included, in plain text in ~/.gemini/settings.json (keep that file private). In PowerShell write $env:APIFY_TOKEN instead of $APIFY_TOKEN. Drop -s user to save it in the project's .gemini/settings.json.
- Start gemini and type /mcp to check that the server is connected and lists its tools.
- Saved by hand, a remote server uses the httpUrl key for streamable HTTP (url means the older SSE transport).
Sign-in: Token header saved by gemini mcp add.
n8n AI Agent configMCP Client Tool node
https://mcp.apify.com/?tools=fetch-actor-details,vexaloom-labs/linkedin-company-page-post-and-engagement,nimbryxo-studio/linkedin-company-headcount-and-team-directory,nimbryxo-studio/linkedin-company-pages-with-funding-and-affiliates,vexaloom-labs/linkedin-keyword-and-hashtag-post-discovery,nimbryxo-studio/linkedin-profile-scraper-with-company,nimbryxo-studio/linkedin-people-finder-by-role-seniority - Add an AI Agent node, then attach an MCP Client Tool node to its tool input.
- Paste the URL as the endpoint and choose HTTP Streamable as the transport.
- Choose Bearer auth and create a credential that holds your Apify token.
Sign-in: Bearer auth credential.
Validated, not executed: 7 of 7 checks pass
- Uses Apify's hosted MCP endpoint over HTTPS
- The tools parameter lists exactly the chosen Actors as owner/name
- JSON configs parse and use the client's top-level key and the same URL
- Codex TOML has a [mcp_servers.<name>] table with url and bearer_token_env_var
- CLI commands quote the same URL and use the streamable HTTP transport
- One-click install links decode back to the same URL and carry no token
- Only placeholders, no real token
Official API or an Actor?
LinkedIn limits its official API to approved partners
LinkedIn does not offer an open public data API. Access is through approved partner programs with defined scopes, such as marketing and talent integrations.
Partner pricing is not published as a self-serve rate card.
Approval, scopes and contractual limits apply. Automated collection outside those terms is restricted.
LinkedIn prohibits unauthorized automated collection. Use public business data and approved access only; not legal advice.
Where it stops
Authenticate Actor runs with your Apify API token where the configuration requests it. Results depend on what LinkedIn exposes publicly or through its guest layout; company-directory requests can return unresolved or cookie-blocked errors. The reaction Actor’s published schema supports totals and reaction types, so its title should not be read as a promise of individual reactor identities. LinkedIn’s official API requires approved partner access with defined scopes.
Every LinkedIn Actor in the catalogue
| Actor | Returns | Fields | Store price | Last update |
|---|---|---|---|---|
| LinkedIn People Search by Name with Company & School Filters | Matched LinkedIn profiles with name, profile URL, current employer, headline, location, photo, followers, about and education when… Fields include name, headline, location. | 6 | $0.99 per 1,000 results | 2026-11-10 |
| LinkedIn Post Reactor Identity & Reaction Type Scraper | One record per public post: total reactions, exact counts for like/celebrate/love/support/insightful/funny/superLike when LinkedIn's guest… Fields include postId, reactionsTotal, reactionTypesPresent. | 5 | $0.99 per 1,000 results | 2026-10-21 |
| LinkedIn University Alumni Search by Degree & Year | One row per school insight (alumni count, top employers, fields and functions) or per public alumnus profile (location, current company… Fields include schoolName, name, headline. | 9 | $0.99 per 1,000 results | 2026-10-24 |
| B2B Lead Discovery by Job Title & Location | B2B leads with name, job title, company, LinkedIn profile, location, and data-quality flags. Fields include name, title, company. | 10 | $0.99 per 1,000 results | 2026-10-25 |
| LinkedIn Activity Feed Scraper with Engagement Filters | One record per LinkedIn post, with full text, author, exact date, reaction and comment totals, top comments, media, post type and… Fields include authorName, authorType, postedAt. | 9 | $0.99 per 1,000 results | 2026-10-22 |
| LinkedIn Company Headcount & Team Directory Scraper | Company summaries with LinkedIn-reported headcount and firmographics, optional employee roster rows, and explicit error rows for… Fields include companyName, linkedinEmployeeCount, companySizeRange. | 9 | $0.99 per 1,000 results | 2026-10-22 |
| LinkedIn Company Page Post & Engagement Extractor | LinkedIn company page posts with captions, media, article links, hashtags, mentions, engagement counts, top comments and document details. Fields include companyName, postedAt, mediaType. | 7 | $0.99 per 1,000 results | 2026-10-18 |
| LinkedIn Guest-View Profile Data Extractor | One record per requested profile, with identity, About, followers, connections, work/education links, self-authored sections… Fields include name, headline, location. | 30 | $0.99 per 1,000 results | 2026-10-17 |
| LinkedIn Profile Engagement Timeline Scraper | One record per public LinkedIn profile activity (post, repost, comment, or reaction), with the target post's author, text, URL, engagement… Fields include activityType, profileName, activityTimeAgo. | 10 | $0.99 per 1,000 results | 2026-10-23 |
| LinkedIn Profile Scraper with Company & Credential Data | One record per requested LinkedIn profile: identity, About, current company and school, the public connections indicator, work and… Fields include name, headline, location. | 33 | $0.99 per 1,000 results | 2026-11-10 |
| LinkedIn Profile, Certifications & Company Data Extractor | One record per requested LinkedIn profile: identity, About, current company and school, the public connections indicator, work/education… Fields include name, headline, location. | 20 | $0.99 per 1,000 results | 2026-11-07 |
| LinkedIn Company Pages with Funding & Affiliates | One record per LinkedIn company (plus optional affiliate/showcase records), with industry, headcount, headquarters, specialties, and… Fields include name, industry, employeeCount. | 7 | $0.99 per 1,000 results | 2026-10-31 |
| LinkedIn Event Finder with Speaker & Venue Details | Public LinkedIn Sales and Talent community events with schedules, timezones, descriptions, images, registration links, categories and… Fields include eventName, community, startDate. | 9 | $0.99 per 1,000 results | 2026-11-05 |
| LinkedIn Hashtag Feed Engagement Scraper | One record per public LinkedIn post found for a hashtag, with author, followers, text, media, engagement and first-page comments. Fields include hashtag, authorName, authorFollowers. | 9 | $0.99 per 1,000 results | 2026-10-30 |
| LinkedIn Keyword & Hashtag Post Discovery Scraper | One record per matching LinkedIn post, with full text, author, date, engagement metrics, top comments and media where the public post page… Fields include authorName, authorFollowers, postedAt. | 9 | $0.99 per 1,000 results | 2026-10-17 |
| LinkedIn People Finder by Role, Seniority & Network | LinkedIn profiles matching a structured people search, with name, headline, current company, seniority-related badges, and profile URL. Fields include name, headline, location. | 6 | $0.99 per 1,000 results | 2026-10-22 |
| LinkedIn Post Comment & Reply Thread Extractor | LinkedIn post comments and reply threads with author identity, reaction counts, and linked profiles. Fields include authorName, commentText, commentedAt. | 7 | $0.99 per 1,000 results | 2026-10-19 |
| LinkedIn Profile Feed Scraper with Likers & Commenters | One record per public LinkedIn post: text, author and follower count, engagement counts, top comments, media and video metadata, hashed… Fields include authorName, postedAt, mediaType. | 15 | $0.99 per 1,000 results | 2026-10-17 |
| LinkedIn Trending Posts & Top Voices Feed Scraper | Posts from LinkedIn's public Top Content directory with exact dates, authors, followers, badges, media, topic path/rank and top comments… Fields include authorName, authorFollowers, authorIsInfluencer. | 19 | $0.99 per 1,000 results | 2026-10-31 |
Call these Actors from code: the LinkedIn data API page
Store links: linkedin-people-search-by-name-with-company, linkedin-post-reactor-identity-and-reaction-type, linkedin-university-alumni-search-by-degree, b2b-lead-discovery-by-job-title-location, linkedin-activity-feed-scraper-with-engagement, linkedin-company-headcount-and-team-directory, linkedin-company-page-post-and-engagement, linkedin-guest-view-profile-data-extractor, linkedin-profile-engagement-timeline-scraper, linkedin-profile-scraper-with-company, linkedin-profile-certifications-and-company-data, linkedin-company-pages-with-funding-and-affiliates, linkedin-event-finder-with-speaker-and-venue, linkedin-hashtag-feed-engagement-scraper, linkedin-keyword-and-hashtag-post-discovery, linkedin-people-finder-by-role-seniority, linkedin-post-comment-and-reply-thread-extractor, linkedin-profile-feed-scraper-with-likers, linkedin-trending-posts-and-top-voices-feed
LinkedIn recipes for n8n
LinkedIn company posts to Slack
Post a company's new public LinkedIn posts to Slack, with reactions, comments and the post link, for…
LinkedInSlack
Troubleshooting
Why does the client say Unauthorized or invalid token?
Every Apify Actor tool needs a signed-in Apify account. Reconnect the server so the OAuth sign-in runs again, or switch to the token variant: an Authorization: Bearer header with an API token from Apify Console, Settings, API and integrations. For a local server the token must be in the server's own env block, not only in your shell.
Source: Apify MCP server README
Why did my agent's tool list change after an update?
Without a tools parameter Apify's server loads its default tool set, which changes between releases. The URLs on this site pin the tools with ?tools=, so the agent always gets the same Actor tool plus fetch-actor-details. Apify's README gives the same advice for production.
Source: Apify MCP server README
What happens when the agent sends input the Actor rejects?
The server answers with the Actor's input schema, so the agent can fix the arguments and call again. The fetch-actor-details tool in every scoped URL lets it read that schema before the first call.
Source: Apify MCP server README
Claude Code shows Needs authentication. Why?
The server is added but not signed in. Type /mcp in an interactive session and authenticate, or run claude mcp login with the server name. Headless runs with claude -p cannot complete OAuth, so sign in once interactively or use the --header token variant.
Source: Claude Code MCP documentation
Claude Code warns that a tool result is too large. What can I change?
Claude Code warns above 10,000 tokens of tool output and caps it at 25,000 by default (MAX_MCP_OUTPUT_TOKENS raises it). Ask the agent for fewer results per call, for example a lower result limit for the Actor.
Source: Claude Code MCP documentation
Cursor does not show the server's tools. What should I check?
Open the Output panel and pick MCP Logs to see the connection error. A deeplink install that does nothing usually means an older Cursor build; update it or paste the JSON into mcp.json by hand.
Source: Cursor MCP documentation
Questions
Can Claude list everyone who reacted to a LinkedIn post?
LinkedIn Post Reactor Identity & Reaction Type Scraper describes post-level totals and reaction types exposed by LinkedIn’s guest layout.
Can I ask Claude for a company’s LinkedIn headcount and employees?
Use LinkedIn Company Headcount & Team Directory Scraper for company summaries and optional employee roster rows. Unresolved or cookie-blocked requests can produce error rows, so a complete employee directory is not guaranteed.
Does this connection give Claude access to my private LinkedIn account?
The Apify token authorizes Apify operations and does not sign Claude into LinkedIn through OAuth. Public extraction also does not grant the approved partner scopes required by LinkedIn’s official API.
Sources
- Apify MCP server documentation, checked 2026-11-10
- LinkedIn APIs (partner programs) documentation, checked 2026-11-09
- LinkedIn terms