Find LinkedIn jobs and people, research companies, manage network, posts, and messages with MCP.
The LinkedIn MCP Server is a Model Context Protocol (MCP) server that helps find LinkedIn jobs and people, research companies, and manage networking activities including posts and messages. It is described as a browser-automation–focused tool and is available as a Python package.
🛠️ Key Features
Find LinkedIn jobs and people
Research companies
Manage network, posts, and messages
Uses browser automation (noted via Playwright)
🚀 Use Cases
Job search and recruiting workflows
Building career tools for LinkedIn
Social-media automation for networking and outreach
⚡ Developer Benefits
MCP integration for agent workflows
Python-based implementation (topics include python and mcp-server)
Supports automation via browser-automation tooling (playwright)
⚠️ Limitations
Scope is focused on LinkedIn use cases (jobs, people, company research, network, posts, messages)
Disclaimer: LinkedIn is a registered trademark of LinkedIn Corporation
and its affiliates. LinkedIn MCP Server is an independent, unofficial project
and is not affiliated with, endorsed by, sponsored by, or associated with
LinkedIn Corporation or its affiliates.
A LinkedIn MCP server to find jobs, search people, research companies, manage
your network, publish and engage with posts, and read or send messages.
⚡ Quickstart
1. Connect Claude Code
bash
claude mcp add --scope user --transport stdio linkedin-mcp -- \
uvx --from linkedin-mcp-local linkedin-mcp serve --transport stdio
2. Sign in to LinkedIn
Restart Claude Code. A dedicated browser window opens automatically—sign in to
LinkedIn and complete any required verification.
NOTE
Your session is saved locally and reused automatically.
Supported platforms
The server runs natively on Windows, macOS, and Linux. CI executes the complete
offline suite on Windows, macOS, Linux x86-64, and Linux ARM64. Browser and OS
version requirements follow the official
Playwright Python system requirements.
3. Try your first request
text
Find remote software engineering jobs in India posted on LinkedIn this week.
🛠️ Tools
TIP
Verified means the tool passed an end-to-end live compatibility test against LinkedIn's visible web UI on the date shown.
Area
Function
MCP tool
LinkedIn UI compatibility
What it does
Jobs
Search jobs
linkedin.jobs.search
LinkedIn UI compatibility Compatibility check date
Search by keywords, location, distance, date, workplace, experience, employment type, company, industry, function, title, benefits, Easy Apply, verification, applicant count, network, and other visible filters.
Read job details
linkedin.jobs.get
LinkedIn UI compatibility Compatibility check date
Read the complete job description, company, application method, and visible hiring team.
People
Search people
linkedin.people.search
LinkedIn UI compatibility Compatibility check date
Search by keywords, connection degree, hiring status, location, current or past company, title, school, industry, services, language, connections, and followers.
Read profiles
linkedin.people.get
LinkedIn UI compatibility Compatibility check date
Read the complete visible profile or request selected sections such as About, experience, education, skills, projects, certifications, and recommendations.
Companies
Search companies
linkedin.companies.search
LinkedIn UI compatibility Compatibility check date
Search by keywords, headquarters, industry, size, available jobs, and first-degree connections.
Read company details
linkedin.companies.get
LinkedIn UI compatibility Compatibility check date
Read Overview and About information, including website, headquarters, size, type, founding year, and specialties.
Posts
Search posts
linkedin.posts.search
LinkedIn UI compatibility Compatibility check date
Search by keywords, date, content type, author, company, relationship, mentions, author industry, and other visible filters.
Read posts
linkedin.posts.get
LinkedIn UI compatibility Compatibility check date
Read complete content, media, links, mentions, hashtags, reactions, and engagement.
Read discussions
linkedin.posts.comments.list
LinkedIn UI compatibility Compatibility check date
Read paginated comments, replies, attachments, and reactions.
Publish posts
linkedin.posts.create
LinkedIn UI compatibility Compatibility check date
Publish supported personal text, link, image, video, document, poll, celebration, event, hiring, and expert-request posts.
Comment
linkedin.posts.comment
LinkedIn UI compatibility Compatibility check date
Add text, links, emoji, mentions, photos, or GIFs to posts.
React
linkedin.posts.react
LinkedIn UI compatibility Compatibility check date
Add, change, or remove reactions on posts.
Network
List connections
linkedin.connections.list
LinkedIn UI compatibility Compatibility check date
Browse established first-degree connections with sorting and pagination.
Search connections
linkedin.connections.search
LinkedIn UI compatibility Compatibility check date
Search existing connections using applicable People filters.
List invitations
linkedin.invitations.list
LinkedIn UI compatibility Compatibility check date
Browse received and sent invitations using LinkedIn's visible filters.
Send invitations
linkedin.invitations.send
Not checked
Send connection requests with optional notes.
Accept invitations
linkedin.invitations.accept
Not checked
Accept incoming connection requests.
Ignore invitations
linkedin.invitations.ignore
Not checked
Ignore incoming connection requests.
Messaging
Search messages
linkedin.messaging.search
LinkedIn UI compatibility Compatibility check date
Search by recipient or message text using inbox categories and filters.
Read conversations
linkedin.messaging.conversation.get
LinkedIn UI compatibility Compatibility check date
Read message history, replies, edits, reactions, and attachments.
Send messages
linkedin.messaging.send
LinkedIn UI compatibility Compatibility check date
Send or reply in one-to-one conversations with text, links, emoji, files, images, and GIFs.
Server
Check runtime
linkedin.server.status
LinkedIn UI compatibility Compatibility check date
Inspect the shared runtime, queue, and active browser operation.
Check LinkedIn session
linkedin.session.status
LinkedIn UI compatibility Compatibility check date
Inspect browser-profile, authentication, login, and pause state.
List capabilities
linkedin.capabilities.list
LinkedIn UI compatibility Compatibility check date
Inspect available capabilities, versions, read/write effects, and required LinkedIn surfaces.
NOT CHECKED tools remain covered by the offline simulator on every pull request.
See the capability matrix for exact filters,
supported formats, inputs, outputs, limits, and unsupported features.
📦 Installation
Claude Code
bash
claude mcp add --scope user --transport stdio linkedin-mcp -- \
uvx --from linkedin-mcp-local linkedin-mcp serve --transport stdio
Check it with codex mcp list. Codex CLI, the Codex IDE extension, and ChatGPT
Desktop share this local configuration. Restart the client after adding it. See
the Codex MCP documentation.
For manual setup, open Cursor Settings → MCP →
Add new MCP server, set the command to uvx, and set the arguments to
--from linkedin-mcp-local linkedin-mcp serve --transport stdio.
See the Cursor MCP documentation.
Gemini CLI
In ~/.gemini/settings.json, add a local server named linkedin-mcp under
mcpServers with command uvx and arguments
--from linkedin-mcp-local linkedin-mcp serve --transport stdio, then run
gemini mcp list.
See the Gemini CLI MCP documentation.
Windsurf
Open Settings → AI → Manage MCP Servers, or add a local server named
linkedin-mcp to ~/.codeium/windsurf/mcp_config.json with command uvx and
arguments --from linkedin-mcp-local linkedin-mcp serve --transport stdio.
See the Windsurf MCP documentation.
Cline
Open MCP Servers → Configure, then add a local server named linkedin-mcp
with command uvx and arguments
--from linkedin-mcp-local linkedin-mcp serve --transport stdio.
See the Cline MCP documentation.
Roo Code
Open Roo Code's MCP settings and add a local server named linkedin-mcp to the
global file or .roo/mcp.json, using command uvx and arguments
--from linkedin-mcp-local linkedin-mcp serve --transport stdio.
See the Roo Code MCP documentation.
Or add a custom stdio extension with command uvx and arguments
--from linkedin-mcp-local linkedin-mcp serve --transport stdio, or start one
CLI session with:
Open Settings → Tools → AI Assistant → Model Context Protocol (MCP), click
Add, set the command to uvx, and set the arguments to
--from linkedin-mcp-local linkedin-mcp serve --transport stdio.
See the JetBrains MCP documentation.
Continue
Create .continue/mcpServers/linkedin-mcp.json with a local server named
linkedin-mcp, command uvx, and arguments
--from linkedin-mcp-local linkedin-mcp serve --transport stdio.
See the Continue MCP documentation.
Warp
Open Settings → AI → Manage MCP Servers → Add, name the server
linkedin-mcp, set the command to uvx, and set the arguments to
--from linkedin-mcp-local linkedin-mcp serve --transport stdio.
See the Warp MCP documentation.
💡 Examples
Find jobs
text
Find remote software engineering jobs in India posted on LinkedIn this week with Easy Apply.
Research people
text
Find LinkedIn profiles for engineering managers at Stripe in India and show me their relevant experience.
Research companies
text
Find fintech companies in Bengaluru on LinkedIn with 51–200 employees and summarize each company.
Explore posts
text
Find recent LinkedIn posts about AI agents and summarize the most useful discussions.
Manage your network
text
Show my latest received connection requests on LinkedIn.
text
Send a LinkedIn connection request to <profile URL> with the note <note>.
Send messages
text
Send <message> on LinkedIn to <profile URL>.
🏗️ Architecture
text
[Claude | Codex | Cursor | ...]
|
stdio / loopback HTTP
v
[Typed MCP boundary]
|
v
[Fair queue + pacing]
|
one operation at a time
v
[Capability executor] ---> [Process-local calls, cursors, evidence]
|
v
[Capability page objects]
|
v
[Browser manager: fresh page per call] <--> [Persistent auth profile]
|
visible web UI only
v
[LinkedIn]
Everything runs locally. There is no hosted backend, telemetry, database,
external queue, LangGraph runtime, or credential service. Browser cookies live
only in the local Playwright profile. The first client starts one shared local
runtime; later clients attach to it, and fair scheduling gives each client a
turn between complete tool calls. Operation state lasts only for that runtime.
Read the full architecture and privacy policy.
🔒 Privacy Policy
The server has no maintainer-operated backend, analytics, advertising, or
telemetry. LinkedIn receives normal visible-UI requests, and the invoking MCP
client receives tool results under its own data policy; the project sends
nothing to the maintainer. Read the complete privacy policy for
processing, storage, sharing, retention, and deletion details.
🛡️ Safety
Use of this software is at your own risk. You are solely responsible for
complying with LinkedIn's User Agreement,
applicable laws, and third-party rights. LinkedIn may limit or restrict accounts
that use prohibited automation.
The maintainers do not authorize spam, unauthorized data collection, privacy
violations, or circumvention of access controls.
Use only accounts and activity you are authorized to operate.
The server pauses on authentication expiry, checkpoints, restriction pages,
permission failures, and configuration errors.
It does not implement CAPTCHA bypass, proxy rotation, fingerprint spoofing,
credential harvesting, stealth plugins, or private LinkedIn endpoints.
Never commit or share the persistent browser profile or local assets.