Skip to content

LinkedIn MCP: Give Claude, Cursor and ChatGPT LinkedIn Data Without Your Login

A LinkedIn MCP server lets your AI agent pull company pages, job listings, posts and ads into the chat. Set one up in Claude, Cursor or ChatGPT in a minute, without handing over your LinkedIn session, and see the exact tool calls and what came back.

Published
Reading time
9 min read
Pixel-art robot with an orange >_ on its terminal head carries a cable from an office tower with the blue LinkedIn logo on its sign into a server rack labelled MCP
In this article
  1. Two kinds of LinkedIn MCP server
  2. How to connect the Scrape.ly MCP server
  3. The LinkedIn scrapers your agent can use
  4. What the agent does: the four tool calls
  5. A real run: company research
  6. A real run: job listings
  7. Prompts that work well
  8. Spending control for agents
  9. What to watch out for
  10. FAQ
  11. What is a LinkedIn MCP server?
  12. Will a LinkedIn MCP server get my account banned?
  13. Does it work with ChatGPT?
  14. Can my agent read LinkedIn profiles and messages?
  15. How much does a LinkedIn MCP setup cost?
  16. Do I need my own LinkedIn API access?

A LinkedIn MCP server is a Model Context Protocol server that gives an AI agent such as Claude, Cursor or ChatGPT tools for reading LinkedIn data: company pages, job listings, posts and ads. The best LinkedIn MCP setup is the hosted Scrape.ly MCP server, because your agent runs ready-made LinkedIn scrapers in the cloud against public, logged-out pages, so your own LinkedIn account is never part of the loop.

This guide shows the setup for each client, which scrapers the agent uses, the exact tool calls, and what came back from real runs on 22 October 2026: three company profiles in 6.6 seconds for $0.0062, and ten Berlin job listings for $0.018. It also explains how the popular open-source LinkedIn MCP servers work, and why that difference matters for your account.

Two kinds of LinkedIn MCP server

Search for "LinkedIn MCP" and the top results are open-source servers on GitHub. Most of them work the same way: they drive a browser that is signed in to your LinkedIn account.

The top Google result on 22 October 2026, stickerdaniel/linkedin-mcp-server, describes itself plainly: "Give your AI agents access to LinkedIn through your own browser session." It runs a Patchright Chromium browser on your machine, and on the first call it either imports the LinkedIn cookies from a browser where you're already signed in or opens a login window. Tool calls are serialized to protect that shared session. Its README is upfront about the risk:

LinkedIn's User Agreement prohibits automated access, and accounts using automated tools can be restricted or banned. Use at your own risk; there is no guarantee of account safety.

That's a fair warning from the maintainer, and it's the reason to pick a different architecture for agent work. Scrape.ly's LinkedIn Actors never log in. They read the public pages any logged-out visitor sees, on Scrape.ly's infrastructure and proxies, and return structured JSON.

Scrape.ly MCP server Session-based open-source servers
LinkedIn login None Your own session or cookies
Your LinkedIn account at risk No, it's never used The README of the top-ranked one warns accounts "can be restricted or banned"
Where it runs Hosted at https://api.scrape.ly/mcp, nothing to install Local browser on your machine
Data Public company pages, company search, jobs, posts, Ad Library Whatever your logged-in account can see
Parallel work Each request is its own cloud run Calls wait for one shared browser session
Output Structured fields, paged, exportable as JSON or CSV Depends on the server
Cost control Pay per result, a dollar cap per run, scoped keys with daily charge limits Runs on your machine; your account is what's at stake

How to connect the Scrape.ly MCP server

The Scrape.ly MCP server is hosted, speaks MCP's streamable HTTP transport, and signs you in with OAuth or a Scrape.ly API token. Create a free account first: the free plan includes $5 of usage every month, no card needed.

Cursor. Add this to ~/.cursor/mcp.json, or .cursor/mcp.json in a project:

json
{
  "mcpServers": {
    "scrapely": {
      "url": "https://api.scrape.ly/mcp",
      "headers": { "Authorization": "Bearer YOUR_TOKEN" }
    }
  }
}

Leave out headers and Cursor offers to sign in with OAuth instead. Create a token, if you use one, under Settings → API & Integrations.

Claude Code. One command, then run /mcp inside Claude Code and choose scrapely to sign in:

shell
claude mcp add --transport http scrapely https://api.scrape.ly/mcp

Claude Desktop. Add https://api.scrape.ly/mcp as a custom connector under Customize → Connectors. Claude signs you in with OAuth.

ChatGPT, VS Code, Windsurf and others. Any client that supports streamable HTTP uses the same URL with OAuth or a Bearer header. VS Code's .vscode/mcp.json format and a local stdio server for clients without remote support are in the MCP docs.

To keep the agent focused, you can expose specific Actors as their own tools by adding ?actors=owner/name to the server URL, comma-separated, up to 50.

The LinkedIn scrapers your agent can use

The agent doesn't need a LinkedIn tool per data type. It finds the right Actor in the Scrape.ly Store and runs it. These are the ones built for agent workflows:

Actor Input What comes back Price
LinkedIn Company Details Company URLs or names Name, website, industry, size, followers, specialties, office locations $2 per 1,000 companies
LinkedIn Company Search Keywords Name, industry, location, followers, company URL $2 per 1,000 companies
LinkedIn Jobs Scraper Keywords and location, or a search URL Title, company, location, date, seniority, full description, optional company details $1.50 per 1,000 jobs
LinkedIn Post Scraper Post link, profile or company page Public posts $1 per 1,000 posts
LinkedIn Ad Library Scraper Company, keyword, payer or URL Ad copy, creatives, CTA, run dates, impressions, targeting $1 per 1,000 ads

Prices are pay per result, as listed on each Store page on 23 October 2026, plus a fraction of a cent of platform usage per run. There are people-search and profile Actors too, but those return personal data; read the section on profiles in our LinkedIn scraping guide before you point an agent at them.

What the agent does: the four tool calls

Every LinkedIn request follows the same path through the server's tools:

  1. search-actors with keywords like "linkedin company" finds candidate Actors in the Store.
  2. fetch-actor-details returns the chosen Actor's input schema, README and pricing, so the agent knows which fields to send.
  3. call-actor starts the run with a JSON input and waits up to 45 seconds. Fast runs finish inside that window; for longer ones the agent follows up with get-actor-run.
  4. get-actor-output reads the results page by page, with only the fields the agent asks for.

The results never land in the call-actor reply. The agent reads them separately, so a 5,000-row dataset doesn't flood the context window.

A real run: company research

The prompt: "Use scrapely to get the LinkedIn company profiles of Google, Notion and Stripe, only companies with at least 1,000 employees and 100,000 followers, and give me a table of industry, headquarters, employees and followers."

The agent picks cornerledger/linkedin-company-details and sends this call-actor request: the input of the Actor's "Large companies only, 3 results" preset, plus a cap on the charge:

json
{
  "actor": "cornerledger/linkedin-company-details",
  "input": {
    "companies": [
      "https://www.linkedin.com/company/google",
      "https://www.linkedin.com/company/notionhq",
      "https://www.linkedin.com/company/stripe"
    ],
    "minEmployees": 1000,
    "minFollowers": 100000,
    "maxResults": 3
  },
  "waitSecs": 45,
  "callOptions": { "maxTotalChargeUsd": 0.1 }
}

Our run of this input on 22 October 2026 finished in 6.6 seconds, well inside the wait, with status message "3 companies saved". The log's summary line shows no login walls and nothing failed:

Text
2026-10-22T18:25:44.931Z [scrapely.actor] INFO  Finished: 3 saved, 0 not found, 0 filtered out, 0 login walls, 0 failed. datacenter_bytes=1219247 residential_bytes=0

Then the agent reads the dataset with get-actor-output, asking for just the fields it needs:

json
{
  "runId": "6d60a9c1d50d4b5ba",
  "fields": "name,industry,headquarters,employeeCount,followerCount,website"
}

What came back:

Company Industry Headquarters Employees Followers Website
Notion Software Development San Francisco, California 7,211 1,132,188 notion.com
Stripe Technology, Information and Internet South San Francisco, California 16,694 1,782,319 stripe.com
Google Software Development Mountain View, CA 330,447 42,553,244 goo.gle/3DLEokh

Each full record also carries the tagline, description, company type, founding year, every office location with parsed city and country, similar companies and the company's job search URL. The run was charged $0.0062 in total: $0.006 for three companies and the rest for compute, dataset writes and datacenter proxy traffic.

A real run: job listings

The prompt: "Use scrapely to find data engineer jobs in Berlin posted this week, 10 jobs, and list title, company, seniority and applicant count."

The agent sends openrole/linkedin-jobs-scraper this input, the Store's "Data engineer jobs in Berlin this week" preset:

json
{
  "keywords": "data engineer",
  "location": "Berlin",
  "distance": 0,
  "datePosted": "pastWeek",
  "limitPerSource": 10
}

This run reads each job's full description and company page, so it takes longer: our run on 22 October 2026 took 46 seconds. That's past the 45-second wait, so call-actor returns while the run is still going and the agent calls get-actor-run to wait for the finish. Five of the ten jobs:

Title Company Seniority Applicants Posted
Domain Data Engineer - Power Grid & System Operations (w/m/d) 50Hertz Transmission GmbH Mid-Senior level 56 2026-10-22
Data Engineer - Digital Health Excellence Center (w/m/d) EY Mid-Senior level not shown 2026-10-19
Data Engineer (f/m/x) Netconomy Mid-Senior level 50 2026-10-21
Senior Data Engineer - Shop Analytics (all genders) ABOUT YOU Mid-Senior level 73 2026-10-16
Data Engineer (all genders) in Berlin - Jobbird.com Jobster Not Applicable not shown 2026-10-22

Each job also came with its industry, apply method, full description and the employer's website and headcount (1,954 for 50Hertz). Total charge: $0.018 for ten jobs. The LinkedIn jobs guide covers every field and filter.

Prompts that work well

Name the Actor, the size of the job and a cap, and the agent does the rest:

  • "Use scrapely to search LinkedIn companies for 'vertical farming', 20 results, then get company details for the 5 with the most followers."
  • "Run openrole/linkedin-jobs-scraper for 'product designer' in Amsterdam, past 24 hours, 25 jobs, and group them by seniority."
  • "Get the last 20 public posts from the Stripe company page with echofield/linkedin-post-scraper and summarize the topics."
  • "Find the ads HubSpot is running in the LinkedIn Ad Library and list each ad's headline, CTA and run dates."
  • "Do all of this with a maximum charge of $0.50 per run."

The agent turns that last line into callOptions.maxTotalChargeUsd, which stops the run when it reaches the cap.

Spending control for agents

An agent that can start paid runs needs limits, and the Scrape.ly server has three:

  • A dollar cap per run. maxTotalChargeUsd covers everything the run can cost: Actor fees, compute, storage and proxy.
  • Scoped API keys with daily charge limits. Give an unattended agent its own key under Settings → API keys, with only actors:run and runs:read, and a daily limit on what it can spend.
  • A prepaid balance. Usage draws from your balance. There's no surprise invoice at the end of the month.

What to watch out for

  • Personal data. Company pages, job ads and ads are business data. People's profiles and posts are personal data under laws like the GDPR, so collect only what you need and keep it short-term.
  • LinkedIn's terms. Reading public, logged-out pages is a different question from automating a signed-in account, but the terms still apply. Our LinkedIn scraping guide walks through hiQ v. LinkedIn and what it did and didn't decide. This isn't legal advice.
  • Long runs. Job searches with descriptions take longer than 45 seconds. That's normal; the agent polls get-actor-run.
  • Context size. Ask for specific fields. Full company records include long descriptions and arrays of offices.
  • Stay on public pages. Inboxes, connections and messages sit behind a login, and automating a signed-in account is what puts it at risk. Scrape.ly's LinkedIn Actors stay on the public pages, so your account is never part of the run.

For a REST endpoint instead of a chat, the LinkedIn Company API page shows the same data with Python, JavaScript and cURL examples. To compare the Scrape.ly server with other scraping servers, see the best MCP servers for web scraping.

FAQ

What is a LinkedIn MCP server?

It's an MCP server that exposes LinkedIn data as tools an AI agent can call. Some drive a browser signed in to your account; the Scrape.ly MCP server instead runs scrapers that read public LinkedIn pages in the cloud and return structured results.

Will a LinkedIn MCP server get my account banned?

A server that automates your own logged-in session puts your account at stake; the README of the top-ranked open-source one warns that accounts "can be restricted or banned". Scrape.ly's LinkedIn Actors never log in, so your account isn't involved.

Does it work with ChatGPT?

Yes. ChatGPT and any other client that supports remote MCP servers over streamable HTTP connect to https://api.scrape.ly/mcp with OAuth or a Bearer token, the same as Claude and Cursor.

Can my agent read LinkedIn profiles and messages?

Not messages, connections or your feed: those exist only behind a login. Public profile data exists in the Store, but it's personal data, so use it carefully and only when you have a lawful reason.

How much does a LinkedIn MCP setup cost?

The server itself costs nothing. You pay per result for the Actors the agent runs: $2 per 1,000 companies, $1.50 per 1,000 jobs, $1 per 1,000 posts or ads, plus a little platform usage. Our three-company run cost $0.0062, and the free plan includes $5 every month.

Do I need my own LinkedIn API access?

No. The Actors read public pages, so there's no LinkedIn developer app, OAuth app or session cookie to set up. You only need a Scrape.ly account.

  • linkedin mcp
  • mcp
  • ai agents
  • claude
  • cursor
  • linkedin

About the author

The team behind Scrape.ly

Scrape.ly is the web data platform from TeraShift GmbH in Switzerland, powered by Evomi: ready-made scrapers in the Scrape.ly Store, a cloud runtime, an API with JavaScript and Python SDKs, proxies, a hosted anti-bot browser and an MCP server for AI agents.

//Keep reading\\

The internet is full of data.
Start owning yours.

Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.

No credit card. No setup calls.