linkedin-mcp-server

linkedin-mcp-server

3.6

If you are the rightful owner of linkedin-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.

A Model Context Protocol (MCP) server that enables interaction with LinkedIn through Claude and other AI assistants, allowing for profile scraping, company analysis, and job searches.

LinkedIn MCP Server

A Model Context Protocol (MCP) server that enables interaction with LinkedIn through Claude and other AI assistants. This server allows you to scrape LinkedIn profiles, companies, jobs, and perform job searches.

Installation Methods

https://github.com/user-attachments/assets/eb84419a-6eaf-47bd-ac52-37bc59c83680

Usage Examples

Research the background of this candidate https://www.linkedin.com/in/stickerdaniel/
Get this company profile for partnership discussions https://www.linkedin.com/company/inframs/
Suggest improvements for my CV to target this job posting https://www.linkedin.com/jobs/view/4252026496

Features & Tool Status

Working Tools:

[!TIP]

  • Profile Scraping (get_person_profile): Get detailed information from LinkedIn profiles including work history, education, skills, and connections
  • Company Analysis (get_company_profile): Extract company information with comprehensive details
  • Job Details (get_job_details): Retrieve specific job posting details using direct LinkedIn job URLs
  • Session Management (close_session): Properly close browser session and clean up resources

Known Issues: (should be fixed after this PR is merged)

[!WARNING]

  • Job Search (search_jobs): Compatibility issues with LinkedIn's search interface
  • Recommended Jobs (get_recommended_jobs): Selenium method compatibility issues
  • Company Profiles (get_company_profile): Some companies can't be accessed / may return empty results (need further investigation)

🐳 Docker Setup (Recommended - Universal)

Prerequisites: Make sure you have Docker installed and running.

Zero setup required - just add the mcp server to your client config and replace email and password with your linkedin credentials.

Installation

Claude Desktop:

{
  "mcpServers": {
    "linkedin": {
      "command": "docker",
      "args": [
        "run", "-i", "--rm",
        "-e", "LINKEDIN_EMAIL",
        "-e", "LINKEDIN_PASSWORD",
        "stickerdaniel/linkedin-mcp-server"
      ],
      "env": {
        "LINKEDIN_EMAIL": "your.email@example.com",
        "LINKEDIN_PASSWORD": "your_password"
      }
    }
  }
}
🐳 Manual Docker Usage
docker run -i --rm \
  -e LINKEDIN_EMAIL="your.email@example.com" \
  -e LINKEDIN_PASSWORD="your_password" \
  stickerdaniel/linkedin-mcp-server
❗ Troubleshooting

Docker issues:

  • Make sure Docker is installed
  • Check if Docker is running: docker ps

Login issues:

  • Ensure your LinkedIn credentials are set and correct
  • LinkedIn may require a login confirmation in the LinkedIn mobile app

📦 Claude Desktop (DXT Extension)

Prerequisites: Claude Desktop and Docker installed

One-click installation for Claude Desktop users:

  1. Download the DXT extension
  2. Double-click to install into Claude Desktop
  3. Configure your LinkedIn credentials when prompted
  4. Start using LinkedIn tools immediately
❗ Troubleshooting

Docker issues:

  • Make sure Docker is installed
  • Check if Docker is running: docker ps

Login issues:

  • Ensure your LinkedIn credentials are set and correct
  • LinkedIn may require a login confirmation in the LinkedIn mobile app

🐍 Local Setup (Develop & Contribute)

Prerequisites: Chrome browser and Git installed

ChromeDriver Setup:

  1. Check Chrome version: Chrome → menu (⋮) → Help → About Google Chrome
  2. Download matching ChromeDriver: Chrome for Testing
  3. Make it accessible:
    • Place ChromeDriver in PATH (/usr/local/bin on macOS/Linux)
    • Or set: export CHROMEDRIVER_PATH=/path/to/chromedriver
    • if no CHROMEDRIVER_PATH is set, the server will try to find it automatically by checking common locations

Installation

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

# 2. Install UV package manager
curl -LsSf https://astral.sh/uv/install.sh | sh
uv python # install python if you don't have it

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

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

# 5. Start the server once manually
# (you will be prompted to enter your LinkedIn credentials, and they are securely stored in your OS keychain)
uv run main.py --no-headless --no-lazy-init
🔧 Configuration

CLI Options:

  • --no-headless - Show browser window (debugging)
  • --debug - Enable detailed logging
  • --no-setup - Skip credential prompts (make sure to set LINKEDIN_EMAIL and LINKEDIN_PASSWORD in env)
  • --no-lazy-init - Login to LinkedIn immediately instead of waiting for the first tool call

Claude Desktop:

{
  "mcpServers": {
    "linkedin": {
      "command": "uv",
      "args": ["--directory", "/path/to/linkedin-mcp-server", "run", "main.py", "--no-setup"]
    }
  }
}
❗ Troubleshooting

Scraping issues:

  • Use --no-headless to see browser actions
  • Add --no-lazy-init to attempt to login to LinkedIn immediately instead of waiting for the first tool call
  • Add --debug to see more detailed logging

ChromeDriver issues:

  • Ensure Chrome and ChromeDriver versions match
  • Check ChromeDriver is in PATH or set CHROMEDRIVER_PATH in your env

Python issues:

  • Check Python version: uv python --version (should be 3.12+)
  • Reinstall dependencies: uv sync --reinstall

Feel free to open an issue or PR!


License

MIT License

Acknowledgements

Built with LinkedIn Scraper by @joeyism and Model Context Protocol.

⚠️ Use in accordance with LinkedIn's Terms of Service. Web scraping may violate LinkedIn's terms. This tool is for personal use only.