This LinkedIn MCP server allows Claude and other AI assistants to access your LinkedIn. It can scrape LinkedIn profiles and companies, get your recommended jobs, and perform job searches.
Through this LinkedIn MCP server, AI assistants like Claude can connect to your LinkedIn. Give access to profiles and companies, get your recommended jobs, or search for keywords. All from a Docker container on your machine.
https://github.com/user-attachments/assets/eb84419a-6eaf-47bd-ac52-37bc59c83680
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
Current Status: All Tools Working
[!TIP]
- Profile Scraping (
get_person_profile
): Get detailed information from a LinkedIn profile including work history, education, skills, and connections- Company Analysis (
get_company_profile
): Extract comprehensive company information from a LinkedIn company profile name- Job Details (
get_job_details
): Retrieve specific job posting details using LinkedIn job IDs- Job Search (
search_jobs
): Search for jobs with filters like keywords and location- Recommended Jobs (
get_recommended_jobs
): Get personalized job recommendations based on your profile- Session Management (
close_session
): Properly close browser session and clean up resources
<br/> <br/>[!NOTE]
July 2025: All tools are currently functional and actively maintained. If you encounter any issues, please report them in the GitHub issues.
Prerequisites: Make sure you have Docker installed and running.
Client Configuration:
{
"mcpServers": {
"linkedin": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "LINKEDIN_COOKIE",
"stickerdaniel/linkedin-mcp-server",
"--no-setup"
],
"env": {
"LINKEDIN_COOKIE": "XXXXXX...",
}
}
}
}
Run the server with the --get-cookie
flag:
docker run -i --rm \
-e LINKEDIN_EMAIL="your.email@example.com" \
-e LINKEDIN_PASSWORD="your_password" \
stickerdaniel/linkedin-mcp-server \
--get-cookie
Copy the cookie from the output and set it as LINKEDIN_COOKIE
in your client configuration. If this fails with a captcha challenge, use the method below.
li_at
LINKEDIN_COOKIE
in the configuration[!NOTE]
The cookie will expire during the next 30 days. Just get the new cookie and update your client config. There are also many cookie manager extensions that you can use to quickly copy the cookie.
Transport Modes:
CLI Options:
--no-setup
- Skip interactive prompts (required for Docker/non-interactive environments)--debug
- Enable detailed logging--no-lazy-init
- Login to LinkedIn immediately instead of waiting for the first tool call--transport {stdio,streamable-http}
- Set transport mode--host HOST
- HTTP server host (default: 127.0.0.1)--port PORT
- HTTP server port (default: 8000)--path PATH
- HTTP server path (default: /mcp)--get-cookie
- Attempt to login with email and password and extract the LinkedIn cookie--cookie {cookie}
- Pass a specific LinkedIn cookie for loginHTTP Mode Example (for web-based MCP clients):
docker run -i --rm \
-e LINKEDIN_EMAIL="your.email@example.com" \
-e LINKEDIN_PASSWORD="your_password" \
-p 8080:8080 \
stickerdaniel/linkedin-mcp-server \
--no-setup --transport streamable-http --host 0.0.0.0 --port 8080 --path /mcp
Test with mcp inspector:
bunx @modelcontextprotocol/inspector
Streamable HTTP
as Transport Type
URL
to http://localhost:8080/mcp
Docker issues:
docker ps
Login issues:
Prerequisites: Claude Desktop and Docker installed
One-click installation for Claude Desktop users:
Run the server with the --get-cookie
flag:
docker run -i --rm \
-e LINKEDIN_EMAIL="your.email@example.com" \
-e LINKEDIN_PASSWORD="your_password" \
stickerdaniel/linkedin-mcp-server \
--get-cookie
Copy the cookie from the output and set it as LINKEDIN_COOKIE
in your client configuration. If this fails with a captcha challenge, use the method below.
li_at
LINKEDIN_COOKIE
in the configuration[!NOTE]
The cookie will expire during the next 30 days. Just get the new cookie and update your client config. There are also many cookie manager extensions that you can use to quickly copy the cookie.
Docker issues:
docker ps
Login issues:
Prerequisites: Chrome browser and Git installed
ChromeDriver Setup:
/usr/local/bin
on macOS/Linux)export CHROMEDRIVER_PATH=/path/to/chromedriver
# 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 will be securely stored in your OS keychain
# Once logged in, your cookie will be stored in your OS keychain and used for subsequent runs until it expires
uv run main.py --no-headless --no-lazy-init
CLI Options:
--no-headless
- Show browser window (debugging)--debug
- Enable detailed logging--no-setup
- Skip credential prompts (make sure to set LINKEDIN_COOKIE
or LINKEDIN_EMAIL
and LINKEDIN_PASSWORD
in env or that you run the server once manually, so the authentication is stored in your OS keychain and you can run the server without credentials)--no-lazy-init
- Login to LinkedIn immediately instead of waiting for the first tool call--get-cookie
- Login with email and password and extract the LinkedIn cookie--cookie {cookie}
- Pass a specific LinkedIn cookie for login--transport {stdio,streamable-http}
- Set transport mode--host HOST
- HTTP server host (default: 127.0.0.1)--port PORT
- HTTP server port (default: 8000)--path PATH
- HTTP server path (default: /mcp)--help
- Show helpHTTP Mode Example (for web-based MCP clients):
uv run main.py --no-setup --transport streamable-http --host 127.0.0.1 --port 8000 --path /mcp
Claude Desktop:
{
"mcpServers": {
"linkedin": {
"command": "uv",
"args": ["--directory", "/path/to/linkedin-mcp-server", "run", "main.py", "--no-setup"]
}
}
}
</details>
<details>
<summary><b>โ Troubleshooting</b></summary>
Login/Scraping issues:
--no-headless
to see browser actions (captcha challenge, LinkedIn mobile app 2fa, ...)--no-lazy-init
to attempt to login to LinkedIn immediately instead of waiting for the first tool call--debug
to see more detailed loggingChromeDriver issues:
CHROMEDRIVER_PATH
in your envPython issues:
uv python --version
(should be 3.12+)uv sync --reinstall
Feel free to open an issue or PR!
<br/> <br/>MIT License
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.
stickerdaniel/linkedin-mcp-server
April 13, 2025
July 7, 2025
Python