Open-source MCP server for LinkedIn. Give Claude and any MCP-compatible AI assistant 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
}No comments yet. Be the first to share your thoughts!
Through this LinkedIn MCP server, AI assistants like Claude can connect to your LinkedIn. Access profiles and companies, search for jobs, or get job details.
| 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 #448 |
| 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 | #434 |
| search_conversations | Search messages by keyword | working |
| send_message | Send a message to a LinkedIn user (requires confirmation) | #433 #441 |
| 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.
Client Configuration
{
"mcpServers": {
"linkedin": {
"command": "uvx",
"args": ["linkedin-scraper-mcp@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 linkedin-scraper-mcp@latest --login.
Transport Modes:
stdioCLI Options:
--login - Open browser to log in and save persistent profile--no-headless - Show browser window (useful for debugging scraping issues)--log-level {DEBUG,INFO,WARNING,ERROR} - Set logging level (default: WARNING)--transport {stdio,streamable-http} - Optional: force transport mode (default: stdio)--host HOST - HTTP server host (default: 127.0.0.1)--port PORT - HTTP server port (default: 8000)--path PATH - HTTP server path (default: /mcp)--logout - Clear stored LinkedIn browser profile--timeout MS - Browser timeout for page operations in milliseconds (default: 5000)--tool-timeout SECONDS - Per-tool MCP execution timeout in seconds (default: 180.0). Increase further for heavy scrapes / cold-start Chromium / slow networks.--user-data-dir PATH - Path to persistent browser profile directory (default: ~/.linkedin-mcp/profile)--chrome-path PATH - Path to Chrome/Chromium executable (for custom browser installations)Basic Usage Examples:
# Run with debug logging
uvx linkedin-scraper-mcp@latest --log-level DEBUG
HTTP Mode Example (for web-based MCP clients):
uvx linkedin-scraper-mcp@latest --transport streamable-http --host 127.0.0.1 --port 8080 --path /mcp
Runtime server logs are emitted by FastMCP/Uvicorn.
Tool calls are serialized within a single server process to protect the shared
LinkedIn browser session. Concurrent client requests queue instead of running in
parallel. Use --log-level DEBUG to see scraper lock wait/acquire/release logs.
Test with mcp inspector:
bunx @modelcontextprotocol/inspectorStreamable HTTP as Transport TypeURL to http://localhost:8080/mcpInstallation issues:
curl -LsSf https://astral.sh/uv/install.sh | shuv --version (should be 0.4.0 or higher)uvx downloads all Python dependencies. On slow connections, uv's default 30s HTTP timeout may be too short. The recommended config above already sets UV_HTTP_TIMEOUT=300 (seconds) to avoid this.Session issues:
~/.linkedin-mcp/profile/~/.linkedin-mcp/patchright-browsers/Login issues:
--loginuvx linkedin-scraper-mcp@latest --login which opens a browser where you can solve it manually.Timeout issues:
--timeout 10000 or TIMEOUT=10000 (milliseconds, default 5000).--tool-timeout 300 or TOOL_TIMEOUT=300 (seconds, default 180).Custom Chrome path:
--chrome-path /path/to/chromeCHROME_PATH=/path/to/chromePrerequisites: Claude Desktop.
One-click installation for Claude Desktop users:
.mcpb artifact from releases.mcpb file to install it into Claude Desktop