SL

stickerdaniel/linkedin-mcp-server

Developer tools
2.6K stars 0 forks Quality 68 Trend 68

Open-source MCP server for LinkedIn. Give Claude and any MCP-compatible AI agent access to profiles, companies, jobs, and messages.

Overview

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 and , supported by . 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 → The @latest tag ensures you always run the newest version — uvx checks PyPI on each client launch and updates automatically.

README

MCP Server for LinkedIn

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 →


Installation Methods - MCP Server for LinkedIn

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

Installation

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.

[!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.

uvx Setup Help

📦 Claude Desktop MCP Bundle (formerly DXT)

Prerequisites: Claude Desktop.

One-click installation for Claude Desktop users:

  1. Download the latest .mcpb artifact from releases
  2. Click the downloaded .mcpb file to install it into Claude Desktop
  3. Call any LinkedIn tool

On startup, the MCP Bundle starts preparing the shared Patchright Chromium browser cache in the background. If you call a tool too early, Claude will surface a setup-in-progress error. On the first tool call that needs authentication, the server opens a LinkedIn login browser window and asks you to retry after sign-in.

MCP Bundle Setup Help

🐳 Docker Setup

Prerequisites: Make sure you have Docker installed and running, and uv installed on the host for the one-time --login step.

Authentication

Docker runs headless (no browser window), so you need to create a browser profile locally first and mount it into the container.

Step 1: Create profile on the host (one-time setup)

uvx mcp-server-linkedin@latest --login

This opens a browser window where you log in manually (5 minute timeout for 2FA, captcha, etc.). The browser profile and cookies are saved under ~/.linkedin-mcp/. On startup, Docker derives a Linux browser profile from your host cookies and creates a fresh session each time. If you experience stability issues with Docker, consider using the uvx setup instead.

Step 2: Configure Claude Desktop with Docker

{
  "mcpServers": {
    "mcp-server-linkedin": {
      "command": "docker",
      "args": [
        "run", "--rm", "-i",
        "-v", "~/.linkedin-mcp:/home/pwuser/.linkedin-mcp",
        "stickerdaniel/linkedin-mcp-server:latest"
      ]
    }
  }
}

[!NOTE] Docker creates a fresh session on each startup. Sessions may expire over time — run uvx mcp-server-linkedin@latest --login again if you encounter authentication issues.

[!NOTE] Why can’t I run --login in Docker? Docker containers don’t have a display server. Create a profile on your host using the uvx setup and mount it into Docker.

Docker Setup Help

🐍 Local Setup (Develop & Contribute)

Contributions are welcome! See CONTRIBUTING.md for architecture guidelines and checklists. Please open an issue first to discuss the feature or bug fix before submitting a PR.

Prerequisites: Git and uv installed

Installation

# 1. Clone repository
git clone https://github.com/stickerdaniel/linkedin-mcp-server
cd linkedin-mcp-server

# 2. Install UV package manager (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 3. Install dependencies
uv sync
uv sync --group dev

# 4. Install pre-commit hooks
uv run pre-commit install

# 5. Start the server
uv run -m linkedin_mcp_server

The local server uses the same managed-runtime flow as MCPB and uvx: it prepares the Patchright Chromium browser cache in the background and opens LinkedIn login on the first auth-requiring tool call. You can still run uv run -m linkedin_mcp_server --login when you want to create the session explicitly.

Local Setup Help

[!IMPORTANT] FAQ

Is this safe to use? Will I get banned? This tool controls a real browser session; it doesn’t exploit undocumented APIs or bypass authentication. 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. If you encounter any issues, let me know in the Discussions.

What if my agents execute too many actions? Tool calls run sequentially through a queue. You are responsible for the volume of automation you run; use it sparingly and prompt your agents responsibly.

Acknowledgements

Built with FastMCP and Patchright.

Use in accordance with LinkedIn’s User Agreement. Automated access may violate LinkedIn’s terms and can lead to account restrictions. This tool is for personal use only and comes with no warranty of any kind.

License

This project is licensed under the Apache 2.0 license.

View this README on GitHub

Install

uvx mcp-server-linkedin@latest

Configuration

{ "mcpServers": { "mcp-server-linkedin": { "command": "uvx", "args": ["mcp-server-linkedin@latest"], "env": { "UV_HTTP_TIMEOUT": "300" } } } }