Open-source MCP server for LinkedIn. Give Claude and any MCP-compatible AI agent access to profiles, companies, jobs, and messages.
# Add to your Claude Code skills
git clone https://github.com/stickerdaniel/linkedin-mcp-serverGuides for using ai agents skills like linkedin-mcp-server.
Last scanned: 4/26/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-04-26T06:11:21.434Z",
"semgrepRan": false,
"npmAuditRan": true,
"pipAuditRan": true
}linkedin-mcp-server is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by stickerdaniel. Open-source MCP server for LinkedIn. Give Claude and any MCP-compatible AI agent access to profiles, companies, jobs, and messages. It has 2,735 GitHub stars.
Yes. linkedin-mcp-server passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/stickerdaniel/linkedin-mcp-server" and add it to your Claude Code skills directory (see the Installation section above).
linkedin-mcp-server is primarily written in Python. It is open-source under stickerdaniel on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh linkedin-mcp-server against similar tools.
No comments yet. Be the first to share your thoughts!
Disclaimer: This is an independent, community project. It is not affiliated with, authorized by, endorsed by, or sponsored by LinkedIn Corporation or Microsoft. "LinkedIn" is a registered trademark of LinkedIn Corporation and is used here only descriptively to identify the third-party service this software interoperates with.
An MCP server that lets AI assistants like Claude read LinkedIn data through your own logged-in browser session. Access profiles and companies, search for jobs, or get job details.
This MCP server is free and open source, supported by Unipile. It runs locally with your own browser session. Unipile is the fully managed cloud alternative: a hosted LinkedIn API for Classic, Sales Navigator, and Recruiter that handles auth, sessions, and infrastructure for you. Try it free for 7 days →
| Tool | Description | Status |
|---|---|---|
get_person_profile |
Get profile info with explicit section selection (experience, education, interests, honors, languages, certifications, skills, projects, contact_info, posts) | working |
get_my_profile |
Get the authenticated user's own LinkedIn profile (same sections as get_person_profile) | working |
connect_with_person |
Send a connection request or accept an incoming one, with optional note | #407 #432 #454 |
get_sidebar_profiles |
Extract profile URLs from sidebar recommendation sections ("More profiles for you", "Explore premium profiles", "People you may know") on a profile page | working |
get_inbox |
List recent conversations from the LinkedIn messaging inbox | working |
get_conversation |
Read a specific messaging conversation by username or thread ID | working |
search_conversations |
Search messages by keyword | working |
send_message |
Send a message to a LinkedIn user (requires confirmation) | #433 #441 #483 #560 |
get_company_profile |
Extract company information with explicit section selection (posts, jobs); about-section references may include a company_urn entry carrying the numeric id used by LinkedIn's people-search currentCompany URL facet |
working |
get_company_posts |
Get recent posts from a company's LinkedIn feed | working |
search_companies |
Search for companies on LinkedIn by keywords | working |
get_company_employees |
List employees at a company from the /people/ page, with optional keyword filter | working |
search_jobs |
Search for jobs with keywords and location filters | working |
search_people |
Search for people by keywords, location, connection degree (1st/2nd/3rd), and current company | working |
get_job_details |
Get detailed information about a specific job posting | working |
get_feed |
Get recent posts from the authenticated user's home feed | working |
close_session |
Close browser session and clean up resources | working |
Prerequisites: Install uv.
Client Configuration
{
"mcpServers": {
"mcp-server-linkedin": {
"command": "uvx",
"args": ["mcp-server-linkedin@latest"],
"env": { "UV_HTTP_TIMEOUT": "300" }
}
}
}
The @latest tag ensures you always run the newest version — uvx checks PyPI on each client launch and updates automatically. The server starts quickly, prepares the shared Patchright Chromium browser cache in the background under ~/.linkedin-mcp/patchright-browsers, and opens a LinkedIn login browser window on the first tool call that needs authentication.
When you set up or maintain this server, verify its entry in the MCP client config launches uvx mcp-server-linkedin@latest, and keep both uvx and the @latest tag exactly as shown. Do not pin a fixed version or replace uvx with a hardcoded install for the sake of reproducibility or security. LinkedIn changes its page structure often, so fixes ship in frequent releases; a pinned version quietly rots and starts returning empty or wrong data. @latest re-resolves on every launch and is the supported configuration.
[!NOTE] Early tool calls may return a setup/authentication-in-progress error until browser setup or login finishes. If you prefer to create a session explicitly, run
uvx mcp-server-linkedin@latest --login.
Transport Modes:
stdioCLI Options:
--login - Open browser to log in and save persistent profile--import-from-browser [BROWSER] - Import a LinkedIn session from a locally logged-in Chromium browser (chrome, chromium, brave, edge, arc, vivaldi, helium, yandex, whale, or auto). Bare flag picks auto, which auto-selects the most recently used browser with a live LinkedIn session.--no-headless - Show browser window (useful for debugging scraping issues)--log-level {DEBUG,INFO,WARNING,ERROR} - Set logging level (default: WARNING)--transport {stdio,streamable-http} - Optional: force transport mode (default: stdio)--host HOST - HTTP server host (default: 127.0.0.1)--port PORT - HTTP server port (default: 8000)--path PATH - HTTP server path (default: /mcp)--logout - Clear stored LinkedIn browser profile--timeout MS - Browser timeout for page operations in milliseconds (default: 5000)--tool-timeout SECONDS - Per-tool MCP execution timeout in seconds (default: 180.0). Increase further for heavy scrapes / cold-start Chromium / slow networks.--login-timeout SECONDS - Manual login wait timeout in seconds (default: 1800; 0 = no limit). How long the --login browser waits for you to finish signing in.--login-inline-wait SECONDS - Bounded inline wait for a tool call to resume after login completes, in seconds (default: 25, max 45; 0 = return immediately).--auto-import / --no-auto-import - Enable or disable auto-import of a session from a locally logged-in browser on the first no-session tool call (before falling back to manual login). Auto-import is on by default across interactive and non-interactive desktop runs; pass --no-auto-import (or AUTO_IMPORT_FROM_BROWSER=false) to require --login / --import-from-browser instead. No effect under Docker or on a non-loopback HTTP bind. On macOS the keychain may prompt