---
title: "LinkedIn MCP: LinkedIn Data for Your AI Agent | Scrape.ly"
description: "A LinkedIn MCP server for Claude, Cursor or ChatGPT that reads public company, job and post data without your LinkedIn login. Real tool calls and costs."
url: https://scrape.ly/blog/linkedin-mcp
markdown: https://scrape.ly/blog/linkedin-mcp.md
---

[AI agents](https://scrape.ly/blog/category/ai-agents.md)

# 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.

[Scrape.ly Team The team behind Scrape.ly](https://scrape.ly/blog/author/scrapely-team.md)

- Published

  Oct 23, 2026

- 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](https://scrape.ly/media/linkedin-mcp.png?w=1080)

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](https://github.com/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](https://scrape.ly/mcp.md) 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](https://scrape.ly/docs/mcp.md).

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](https://scrape.ly/store.md) and runs it. These are the ones built for agent workflows:

| Actor                                                                                        | Input                                  | What comes back                                                                       | Price                  |
| -------------------------------------------------------------------------------------------- | -------------------------------------- | ------------------------------------------------------------------------------------- | ---------------------- |
| [LinkedIn Company Details](https://scrape.ly/store/cornerledger/linkedin-company-details.md) | 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](https://scrape.ly/store/openrole/linkedin-jobs-scraper.md)           | 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](https://scrape.ly/blog/scrape-linkedin.md) 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](https://scrape.ly/store/cornerledger/linkedin-company-details/presets/companies-employee-filter.md), 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:

```plaintext
20261022T18: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](https://scrape.ly/blog/scrape-linkedin-jobs.md) 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](https://scrape.ly/blog/scrape-linkedin.md) 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](https://scrape.ly/api/linkedin-company-api.md) 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](https://scrape.ly/blog/best-mcp-servers-for-web-scraping.md).

Scrape.ly Store Give your agent LinkedIn company data Public LinkedIn company profiles from URLs or names, no login: $2 per 1,000 companies, callable from any MCP client.

[Try it free](https://scrape.ly/store/cornerledger/linkedin-company-details.md) [Browse the Store](https://scrape.ly/store.md)

## 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.

About the author

[Scrape.ly Team](https://scrape.ly/blog/author/scrapely-team.md) 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.

- [Website](https://scrape.ly/index.md)

Keep reading

## More in AI agents

- [![Pixel-art robot with an orange >\_ on its terminal head carries a cable from a feed of posts headed by the orange Reddit logo into a server rack labelled MCP](https://scrape.ly/media/reddit-mcp.png?w=750)](https://scrape.ly/blog/reddit-mcp.md)
  ### [Reddit MCP: Connect Claude or Cursor to Reddit Data Without API Keys](https://scrape.ly/blog/reddit-mcp.md)
  [A Reddit MCP server lets Claude, Cursor or ChatGPT search Reddit, read subreddits and pull comment threads mid-conversation. Set one up in a minute without Reddit API credentials, and see the exact tool calls, a real run and what it cost.](https://scrape.ly/blog/reddit-mcp.md)
- [![Pixel-art robot with an orange >\_ on its terminal head hands a data card from a web page on the left into a chat window whose header shows the ChatGPT logo and the orange Claude spark](https://scrape.ly/media/web-scraping-with-chatgpt.png?w=750)](https://scrape.ly/blog/web-scraping-with-chatgpt.md)
  ### [ChatGPT Web Scraping (and Claude): What Actually Works in 2026](https://scrape.ly/blog/web-scraping-with-chatgpt.md)
  [What ChatGPT and Claude can and can't do for web scraping today: search, code generation, code execution and MCP connectors. Plus a tested scraper you can ask either one to write, and how to connect them to Scrape.ly so they run real scrapers for you.](https://scrape.ly/blog/web-scraping-with-chatgpt.md)
- [![Pixel-art robot with an orange >\_ on its terminal head plugs a cable into a server rack labelled MCP with the Scrape.ly logo on its front, while two more cables run into it from web pages on the left](https://scrape.ly/media/best-mcp-servers-for-web-scraping.png?w=750)](https://scrape.ly/blog/best-mcp-servers-for-web-scraping.md)
  ### [6 Best Web Scraping MCP Servers in 2026 (Setup for Claude Code and Cursor)](https://scrape.ly/blog/best-mcp-servers-for-web-scraping.md)
  [The 6 best MCP servers for web scraping in 2026, compared on hosting, sign-in, tools, free tiers and spending control, with copy-paste setup for Claude Code, Cursor and VS Code and a real agent run.](https://scrape.ly/blog/best-mcp-servers-for-web-scraping.md)

## 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.

[Get Started Free](https://my.scrape.ly/register) [Chat with Support](mailto:support@scrape.ly?subject=Question%20about%20Scrape.ly\&body=Hi%2C%20I%20have%20a%20question%20about%20Scrape.ly.)

No credit card. No setup calls.
