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 3,212 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!
⚠️ Third-Party Software Notice
This skill is third-party open-source software developed and hosted independently on GitHub. SkillsLLM is an informational directory and does not control or maintain the underlying repository.
Any security checks, ratings, or warnings displayed by SkillsLLM are automated and limited in scope. They do not constitute a security certification or guarantee that the software is safe, error-free, or free from malicious code, vulnerabilities, compromised dependencies, or prompt-injection risks.
Review the source code, permissions, dependencies, and configuration before installing or running any third-party skill. Use is at your own risk. To the maximum extent permitted by applicable law, SkillsLLM is not liable for losses arising from third-party software.
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 |
|---|---|
get_person_profile |
Get profile info with explicit section selection (experience, education, interests, honors, languages, certifications, skills, projects, contact_info, posts) |
get_my_profile |
Get the authenticated user's own LinkedIn profile (same sections as get_person_profile) |
connect_with_person |
Send a connection request or accept an incoming one, with optional note |
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 |
get_inbox |
List recent conversations from the LinkedIn messaging inbox |
get_conversation |
Read a specific messaging conversation by username or thread ID |
search_conversations |
Search messages by keyword |
send_message |
Send a message to a LinkedIn user (requires confirmation) |
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 |
get_company_posts |
Get recent posts from a company's LinkedIn feed |
search_companies |
Search for companies on LinkedIn by keywords |
get_company_employees |
List employees at a company from the /people/ page, with optional keyword filter |
search_jobs |
Search for jobs with keywords and location filters |
get_saved_jobs |
List job postings saved by the authenticated user |
search_people |
Search for people by keywords, location, connection degree (1st/2nd/3rd), and current company |
get_job_details |
Get detailed information about a specific job posting |
get_feed |
Get recent posts from the authenticated user's home feed |
search_posts |
Search posts/content globally by keyword (the "Posts" tab) with an optional recency filter (past-24h/past-week/past-month) |
close_session |
Close browser session and clean up resources |
Prerequisites: Install uv.
Client Configuration
{
"mcpServers": {
"mcp-server-linkedin": {
"command": "uvx",
"args": ["mcp-server-linkedin@latest"],
"env": { "UV_HTTP_TIMEOUT": "300" }
}
}
}
The @latest tag turns on automatic updates, which keep the server working with LinkedIn's current page structure. 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.
AI agent? Get a quick confirmation from the user before enabling automatic updates.
[!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 a browser to sign in and save the session--import-from-browser [BROWSER] - Reuse a session from a locally signed-in Chromium browser (chrome, chromium, brave, edge, arc, vivaldi, helium, yandex, whale, auto). Bare flag picks auto, the most recently used browser with a live LinkedIn session.--logout - Clear the stored session--no-headless - Show the browser window (useful for debugging)--log-level {DEBUG,INFO,WARNING,ERROR} - Logging level (default: WARNING)--transport {stdio,streamable-http} - Force the transport mode (default: stdio)--host HOST / --port PORT / --path PATH - HTTP server address (defaults: 127.0.0.1, 8000, /mcp)--timeout MS - Timeout for a single page operation (default: 5000)--tool-timeout SECONDS - Timeout for a whole tool call (default: 180). Raise it for heavy scrapes, slow networks, or a cold-start browser.--login-timeout SECONDS - How long the login browser waits for you to finish signing in (default: 1800; 0 = no limit). --login-viewer ends the session after 30 minutes either way.--login-viewer - Docker only: show the --login browser at a token-protected URL on port 6080 (see Authentication)--login-inline-wait SECONDS - How long a tool call waits for a login to finish before telling the model to retry (default: 25, max 45; 0 = return at once)--browser-wait SECONDS - How long to wait for another server process to hand over the shared browser (default: 25, max 45; 0 = report busy at once). Only matters with several MCP clients running at once.--browser-min-hold SECONDS - Shortest time this process keeps the shared browser before handing it over (default: 20). Clamped to 3 seconds below --browser-wait, so raise that one along with it. Higher means fewer browser restarts but longer waits for other clients.--browser-idle-timeout SECONDS - Close an idle browser and release the profile after this long without a tool call (default: 600; 0 = keep it open)--auto-import / --no-auto-import - Import a session from a signed-in local browser on the first tool call that needs one, before falling back to manual login (default: on). Skipped in Docker, behind a proxy, and on a non-loopback HTTP bind. On macOS the keychain may prompt once.--user-data-dir PATH - Browser profile directory (default: ~/.linkedin-mcp/profile). Rotating or clearing a session deletes this directory and its parent, which holds the stored cookies and derived profiles.--claim-profile-root - Take over a profile directory the server will not claim on its own, such as one whose parent already holds other files. Needed once per directory.--chrome-path PATH - Path to a Chrome/Chromium executable--proxy-server URL - Route browser traffic thr