Large Language ModelsGenerate imagesGenerate videos
LinkedIn MCP Server: URL, Setup and What You Can Automate
There is no official LinkedIn MCP server, so the right URL depends on which community server you pick. This article shows the local and hosted endpoints, the exact config for Claude Desktop, Claude Code and Cursor, the login flow, and the tasks worth automating, plus the account risks.
Type "LinkedIn MCP server URL" into a search bar and the first surprise is that there is no single address to copy. LinkedIn does not publish an MCP server of its own, and as of October 2026 every option you can install or connect to comes from a community project or a paid third-party platform. That changes how you choose one, how you set it up, and how much risk you take on with your account.
This article shows what the popular open-source server actually exposes, which URL belongs to which setup, the exact config for Claude Desktop, Claude Code and Cursor, and the job, research and outreach tasks worth handing to an assistant. It also marks the line between a useful shortcut and a restricted account.
What a LinkedIn MCP Server Does
MCP stands for Model Context Protocol, an open standard that lets an AI assistant call outside tools through one consistent interface. A LinkedIn MCP server is a small program that wraps LinkedIn actions (reading a profile, searching jobs, listing inbox threads) as tools your assistant can call in plain English.
People reach for one for the same few reasons. Recruiters want a shortlist without forty open tabs. Job seekers want listings ranked against their own background. Founders want a quick briefing on a prospect before a call. Each of those is a repetitive read-and-summarize loop, which is exactly what an assistant with the right tools does well, and exactly what a manual browser session does badly.
The Short Version
You type something like "find remote product design roles posted this week". The assistant calls the server, the server reads LinkedIn through a browser session or an API, and structured text comes back. The assistant then ranks, summarizes or drafts from it. No more copying between tabs.
Official vs Community Servers
Three families exist, and the URL question depends on which one you pick.
Type
How it reaches LinkedIn
Where it runs
Typical cost
Browser automation (the popular open-source server)
A logged-in browser session on your machine
Local, stdio
Free
REST API wrappers
An OAuth app approved by LinkedIn, limited to granted scopes
Local or hosted
Depends on your access
Managed scraping platforms
The vendor's infrastructure
Hosted remote URL
Paid
💡 The most used open-source option is stickerdaniel/linkedin-mcp-server on GitHub, published on PyPI as mcp-server-linkedin (it was previously named linkedin-scraper-mcp, and the old name still forwards to the new one). Every command, flag and tool name below comes from its documentation, and "the server" means this one.
For a personal account, the local browser-session server is the simplest path: no developer application to apply for, no third party holding your data, and a cost of zero. The trade-off is the terms-of-service risk described below, which is why it suits low-volume personal use. An API-based wrapper is safer on paper, but it only returns what your approved application is allowed to read, and LinkedIn grants those permissions selectively. A hosted platform saves setup time and costs money, and you accept a vendor in the middle.
The LinkedIn MCP Server URL
Local Servers Have No Public URL
The default transport is stdio. Your client launches the server as a child process and talks to it through standard input and output, so there is nothing to paste into a "server URL" field. What you give the client is a command: uvx mcp-server-linkedin@latest.
Running It Over HTTP
If your client only accepts a URL, start the server with the streamable HTTP transport:
The address your client connects to is http://127.0.0.1:8000/mcp. The Docker image documents port 8080 for the same job, which gives http://127.0.0.1:8080/mcp. Keep the host on 127.0.0.1. Anyone who can reach that port can act through your logged-in session.
Streamable HTTP is also the easier route when the server runs on a different machine from the client, for instance a home mini PC that stays on all day while you work from a laptop. In that case keep the port closed to the open internet and reach it over a private network or an SSH tunnel.
💡 In Claude Code, one line registers the HTTP address: claude mcp add --transport http linkedin http://127.0.0.1:8000/mcp
Hosted Endpoints in Directories
MCP directories also list remote endpoints, for example https://linkedin.run.mcp.com.ai/mcp, and https://gateway.pipeworx.io/linkedin_ads/mcp (that one targets LinkedIn Ads, not personal profiles). I have not vetted either. A hosted server sees whatever data and credentials you route through it, so read the publisher's privacy terms first and prefer a local server for anything tied to your personal account.
Setup
Address or command
Use it when
Local stdio
uvx mcp-server-linkedin@latest
One machine, Claude Desktop, Cursor or Claude Code
Local HTTP (uvx)
http://127.0.0.1:8000/mcp
Your client only accepts a URL
Local HTTP (Docker)
http://127.0.0.1:8080/mcp
You want isolation from your main system
Hosted
Set by the vendor
You accept a third party in the loop
Setup in Four Steps
Install uv
The server runs through uvx, which ships with the uv package manager (version 0.4.0 or newer). On macOS or Linux:
A browser window opens and you sign in by hand, two-step verification included. The session is stored under ~/.linkedin-mcp/profile/, and your password never passes through the assistant. Related flags:
--import-from-browser reuses a session from Chrome, Brave, Edge, Arc, Vivaldi or another Chromium browser.
--auto-import is on by default and imports from a logged-in local browser on the first tool call.
--logout clears the stored session.
Add It to Your Client
For Claude Desktop, edit claude_desktop_config.json (on Windows it sits in %APPDATA%\Claude, on macOS in ~/Library/Application Support/Claude). Cursor reads the same block from .cursor/mcp.json:
Read my own LinkedIn profile and tell me which sections look thin.
It calls get_my_profile, reads only your own data, and changes nothing. If it answers, the wiring works. The first run can be slow while the server sets up its managed browser, which is why the config above raises UV_HTTP_TIMEOUT to 300 seconds.
💡 @latest means the server updates itself on every launch. For a setup you rely on, pin a version such as uvx mcp-server-linkedin@4.14.0 (the PyPI version at the time of writing).
What You Can Automate
The server exposes roughly twenty tools, and every call runs one at a time through a queue.
This is where recruiters and sales teams save the most time. Ask for a shortlist and a one-paragraph summary per person instead of opening fifteen tabs.
Search for senior data engineers in Lisbon, open the first eight profiles, and list who has Kafka and dbt in their experience.
Job Search Without Tab Hell
search_jobs takes search terms and a location, then filters for date posted, job type, experience level, work type, Easy Apply and sort order, with results paginated up to ten pages. Pair it with get_job_details and get_job_apply_url and the assistant can turn a noisy results page into a ranked table with the apply links attached.
Find remote UX research roles posted in the last week, skip anything under mid-level, and rank them by how closely they match my profile.
I would keep the applying itself manual. The assistant finds and ranks. You click.
A routine that works: every Monday morning, ask for new listings from the past seven days that match two or three saved search ideas, have the assistant drop anything you already saw, and keep the top five in a short note. That is three or four tool calls, far below anything that looks like bulk activity, and you stay in charge of every application.
Company Research Before Interviews
Combine get_company_profile, get_company_posts and get_company_employees to build a one-page briefing: what the company announced lately, who works in the team you are joining, and which open roles hint at its priorities. search_posts and get_feed work the same way for topic monitoring, such as "what are people in my industry saying about this launch?"
Inbox and Outreach Drafts
get_inbox and search_conversations let the assistant find threads that went quiet, and it can draft a follow-up for each one using the context of the conversation. send_message asks for confirmation before anything goes out. Treat that confirmation as a hard stop: read the draft, edit it, and only then approve.
The Account Risk Is Real
What the Terms Say
The server's own documentation is blunt: "LinkedIn's User Agreement prohibits automated access, and accounts using automated tools can be restricted or banned." The project is independent, not affiliated with LinkedIn or Microsoft, intended for personal use, and comes with no warranty. Using it is your decision and your risk.
Habits That Lower the Risk
Start read-only. Profiles, jobs and company pages first, messaging last.
Keep volume low. The documentation tells you to use it sparingly and to prompt agents responsibly, because you own the volume of automation you run.
Draft, then send by hand. Never let an agent message or connect on its own.
Use a personal account you can afford to lose. Do not point it at the one profile your income depends on.
Here is my own rule of thumb, not an official threshold:
Task
Risk
Verdict
Reading your own profile
Low
Fine
A few job searches per day
Low to medium
Fine in moderation
Opening dozens of profiles in a row
Higher
Avoid
Bulk connection requests
High
Don't
Auto-sent messages
High
Draft only
If a task would make you uncomfortable doing by hand fifty times in an hour, it should not be something an agent does for you either. The goal is to replace tab juggling, not to run a campaign.
Fixing Setup Errors
The server never connects. The client often cannot see uvx on its PATH. Run which uvx (or where uvx on Windows) and paste the absolute path into the command field, then restart the client fully.
The first launch times out. The initial download is large. Run --login once in a terminal so everything is fetched before the client asks, and keep UV_HTTP_TIMEOUT at 300.
Login stops working. Run --logout, then --login again. Sessions expire.
Tool calls time out. The whole call is limited by --tool-timeout (180 seconds by default) and each page operation by --timeout (5000 ms). On a slow connection, add "--timeout", "10000" to args.
Two clients share one session. Calls queue across processes, so the second client simply waits its turn.
You want to watch it work. Add --no-headless and the browser window stays visible.
Use Claude Sonnet 5 on PicassoIA
The MCP server fetches data. A writing model turns it into something you can send. You can paste what your assistant returned into Claude Sonnet 5 on PicassoIA and shape the output there.
Copy the briefing. Take a job posting or company summary from your assistant. Remove personal details of other people.
Paste and instruct. Try: "Using this job posting and my background below, write a four-sentence application note in a direct tone, no buzzwords."
Run it and edit. Change one detail per revision so you can see what moved the result. Keep the instruction narrow: a model given a posting, a short background and a word limit writes something usable, while a model given "write me a great message" writes filler.
Compare. For quick drafts, Gemini 3.5 Flash responds fast, and GPT 5.6 Terra is another solid option for polished copy.
An assistant wired to LinkedIn saves hours of searching, but the result still needs words and visuals that sound like you. Take the next draft your assistant produces, open Picasso IA, and build the header image for it. Describe the scene in plain language, pick a model, generate a few variations, and keep the one that fits the post.
Start with something small: a photo-style banner for your next job update or a clean image for a company announcement. Two or three experiments will show you which prompts and models suit your style.