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.
- Profile Scraping: Get detailed information from LinkedIn profiles
- Company Analysis: Extract company information, including employees if desired
- Job Search: Search for jobs and get recommended positions
To install LinkedIn MCP Server for Claude Desktop automatically via Smithery:
npx -y @smithery/cli install @stickerdaniel/linkedin-mcp-server --client claude
- Python 3.8 or higher
- Chrome browser installed
- ChromeDriver matching your Chrome version
- A LinkedIn account
git clone https://github.com/stickerdaniel/linkedin-mcp-server
cd linkedin-mcp-server
Or download and extract the zip file.
Using uv
(recommended):
# Install uv if you don't have it
curl -LsSf https://astral.sh/uv/install.sh | sh
# Create and activate virtual environment
uv venv
source .venv/bin/activate # On macOS/Linux
# OR
.venv\Scripts\activate # On Windows
Using uv
:
uv add "mcp[cli]" selenium httpx inquirer pyperclip
uv add "git+https://github.com/stickerdaniel/linkedin_scraper.git"
ChromeDriver is required for Selenium to interact with Chrome. You need to install the version that matches your Chrome browser.
-
Check your Chrome version:
- Open Chrome and go to the menu (three dots) > Help > About Google Chrome
- Note the version number (e.g., 123.0.6312.87)
-
Download matching ChromeDriver:
- Go to ChromeDriver Downloads / Chrome for Testing (Chrome-Version 115+)
- Download the version that matches your Chrome version
- Extract the downloaded file
-
Make ChromeDriver accessible:
- Option 1: Place it in a directory that's in your PATH (e.g.,
/usr/local/bin
on macOS/Linux) - Option 2: Set the CHROMEDRIVER environment variable to the path where you placed it:
export CHROMEDRIVER=/path/to/chromedriver # macOS/Linux # OR set CHROMEDRIVER=C:\path\to\chromedriver.exe # Windows
- Option 3: The server will attempt to auto-detect or prompt you for the path when run
- Option 1: Place it in a directory that's in your PATH (e.g.,
- Start the server once manually:
# Using uv (recommended)
uv run main.py --no-lazy-init --no-headless
-
Lazy initialization (default behavior):
- The server uses lazy initialization, meaning it will only create the Chrome driver and log in when a tool is actually used
- You can set environment variables for non-interactive use:
export [email protected] export LINKEDIN_PASSWORD=your_password
-
Configure Claude Desktop:
- The server will display and copy to your clipboard the configuration needed for Claude Desktop
- Open Claude Desktop and go to Settings > Developer > Edit Config
- Paste the configuration provided by the server
- Edit the configuration to include your LinkedIn credentials as environment variables
Example Claude Desktop configuration:
{
"mcpServers": {
"linkedin-scraper": {
"command": "/path/to/uv",
"args": ["--directory", "/path/to/project", "run", "main.py", "--no-setup"],
"env": {
"LINKEDIN_EMAIL": "[email protected]",
"LINKEDIN_PASSWORD": "your_password"
}
}
}
}
- After adding the configuration to Claude Desktop, restart the application
- Start a conversation with Claude
- You'll see tools available in the tools menu (hammer icon)
- You can now ask Claude to retrieve LinkedIn profiles, search for jobs, etc.
Examples of what you can ask Claude:
- "Can you tell me about Daniels work experience? His LinkedIn profile is https://www.linkedin.com/in/stickerdaniel/"
- "Search for machine learning engineer jobs on LinkedIn"
- "Tell me about Google as a company based on their LinkedIn page"
- Your LinkedIn credentials can be provided through environment variables or stored locally at
~/.linkedin_mcp_credentials.json
with user-only permissions - Credentials are never exposed to Claude or any other AI and are only used for the LinkedIn login to scrape data
- The server runs on your local machine, not in the cloud
- All LinkedIn scraping happens through your account - be aware that profile visits are visible to other users
If you encounter ChromeDriver errors:
- Ensure your Chrome browser is updated
- Download the matching ChromeDriver version
- Set the CHROMEDRIVER path correctly
- Try running with administrator/sudo privileges if permission issues occur
If login fails:
- Verify your LinkedIn credentials
- Check if your account has two-factor authentication enabled
- Try logging in manually to LinkedIn first, then run the server
- Check your LinkedIn mobile app for a login request after running the server
- Try to run the server with
--no-headless
to see where the login fails - Try to run the server with
--debug
to see more detailed logs
If Claude cannot connect to the server:
- Ensure the server is running when you start it manually
- Verify the configuration in Claude Desktop is correct
- Restart Claude Desktop
This project is licensed under the MIT License - see the LICENSE file for details.
- Based on the LinkedIn Scraper by joeyism
- Uses the Model Context Protocol (MCP) for integration with AI assistants
Note: This tool is for personal use only. Use responsibly and in accordance with LinkedIn's terms of service. Web scraping may violate LinkedIn's terms of service in some cases.