linkedin-mcp-server
MCP ServerFreeOpen-source MCP server for LinkedIn. Give Claude and any MCP-compatible AI assistant access to profiles, companies, jobs, and messages.
Capabilities13 decomposed
mcp-native linkedin profile retrieval with persistent browser session management
Medium confidenceExposes LinkedIn person profiles as MCP tools callable by Claude and other MCP-compatible AI assistants. Uses Patchright (a hardened Playwright fork) to maintain persistent browser profiles stored locally (~/.linkedin-mcp/profile) with cookie-based authentication, eliminating repeated login flows. Implements a 'one-section-one-navigation' architecture where each profile section (work history, education, skills, certifications, posts) maps to a discrete URL, allowing the AI to request only needed data and minimize page loads.
Uses Patchright (hardened Playwright fork) instead of standard Playwright/Selenium to evade LinkedIn's bot detection, combined with persistent local browser profiles that maintain authentication state across sessions without re-login. The 'one-section-one-navigation' design allows granular data fetching mapped to discrete URLs, reducing page loads and rate-limit exposure compared to monolithic profile scraping.
Avoids repeated login flows and detection triggers that plague generic LinkedIn scrapers by leveraging persistent authenticated sessions and Patchright's anti-detection hardening, making it more reliable for long-running AI agent workflows than REST API wrappers or basic Selenium-based scrapers.
company profile and feed extraction with section-based navigation
Medium confidenceRetrieves comprehensive company data from LinkedIn including overview, employees, recent feed posts, and company metadata through MCP tools. Implements the same 'one-section-one-navigation' pattern as person profiles, where each company section (overview, employees, feed) maps to a specific URL. Uses Patchright browser automation to parse company pages and extract structured data without triggering rate limits or detection.
Applies the same 'one-section-one-navigation' architecture to company pages, allowing Claude to request only specific company sections (overview, employees, feed) rather than loading entire company profiles. This minimizes page loads and detection risk while enabling granular data extraction tailored to the AI's actual information needs.
More efficient than monolithic company scraping tools because it maps each data type to a discrete navigation action, reducing unnecessary page loads and rate-limit exposure. Patchright-based automation is more resilient to LinkedIn's anti-bot mechanisms than generic web scraping libraries.
docker containerization with docker-compose orchestration
Medium confidenceProvides Docker and docker-compose configurations for containerized deployment of the LinkedIn MCP server. Enables users to run the server in isolated containers with predefined dependencies, environment variables, and volume mounts for profile persistence. Supports both standalone Docker runs and multi-container orchestration via docker-compose, simplifying deployment across different environments (local, cloud, CI/CD).
Provides production-ready Dockerfile and docker-compose configurations that abstract away Python dependency management and enable containerized deployment. Includes volume mount configurations for persistent profile storage, allowing authentication state to survive container restarts.
More portable than native Python deployment because it eliminates Python version and dependency conflicts. More scalable than local deployment because it enables horizontal scaling via container orchestration platforms.
claude desktop integration with manifest-based tool registration
Medium confidenceIntegrates with Claude Desktop through a manifest.json file that registers the LinkedIn MCP server as a tool provider. The manifest defines tool schemas (input parameters, output types) and server connection details, enabling Claude Desktop to discover and invoke LinkedIn tools. Uses Claude Desktop's native MCP client to communicate with the server via stdio or network sockets.
Integrates with Claude Desktop through a manifest.json file that declares tool schemas and server connection details, enabling Claude Desktop's native MCP client to discover and invoke LinkedIn tools without custom integration code. Manifest-based registration is the standard MCP pattern for tool discovery.
More integrated than manual tool configuration because Claude Desktop automatically discovers tools from the manifest. More maintainable than hardcoded tool lists because schema changes are centralized in manifest.json.
one-section-one-navigation scraping architecture for minimal page loads
Medium confidenceImplements a 'one-section-one-navigation' design pattern where each data section (person work history, company overview, job details) maps to exactly one URL. This allows Claude to request only the specific data it needs without loading entire profiles or pages. Reduces page loads, minimizes rate-limit exposure, and improves reliability by limiting the DOM parsing surface area. Each tool corresponds to a discrete navigation action, enabling granular data fetching.
Implements a deliberate architectural pattern where each data section maps to exactly one URL/navigation action, allowing Claude to request only needed data without loading entire profiles. This design minimizes page loads, reduces DOM parsing overhead, and limits the attack surface for LinkedIn's bot detection, making it more efficient and reliable than monolithic profile scraping.
More efficient than monolithic scraping because it avoids loading unnecessary data. More reliable than full-page scraping because it limits DOM parsing to specific sections, reducing the risk of selector breakage when LinkedIn updates page layouts.
job search and filtering with structured query parameters
Medium confidenceEnables Claude to search LinkedIn job listings with filters (keywords, location, experience level, job type, salary range) and retrieve detailed job information by ID. Implements structured search parameters that map to LinkedIn's search API query format, allowing the AI to construct filtered job searches without manual URL manipulation. Returns job metadata including title, company, location, salary, description, and application requirements.
Exposes LinkedIn job search as structured MCP tools with filter parameters (location, experience level, job type, salary) that map directly to LinkedIn's search query format, allowing Claude to construct filtered searches programmatically. Separates search (list results) from detail retrieval (fetch full job posting by ID) to optimize for both discovery and deep analysis workflows.
More flexible than static job board integrations because it allows Claude to dynamically construct searches with multiple filters. More reliable than REST API wrappers because it uses authenticated browser automation, avoiding LinkedIn API rate limits and authentication barriers.
inbox message retrieval and conversation search with threading support
Medium confidenceRetrieves LinkedIn inbox conversations and enables message search across threads. Implements conversation listing (fetching recent inbox threads) and message search (finding specific messages within conversations). Uses Patchright to navigate LinkedIn's messaging interface and extract conversation metadata (participants, timestamps, message content). Maintains conversation threading context for multi-turn message analysis.
Exposes LinkedIn's messaging interface as MCP tools with both conversation listing and message search capabilities, maintaining thread context for multi-turn analysis. Uses Patchright to navigate the JavaScript-heavy messaging UI, which is more reliable than attempting to reverse-engineer LinkedIn's internal messaging API.
Provides conversation threading and search that generic email-to-LinkedIn bridges cannot offer. More reliable than REST API approaches because it uses authenticated browser automation, avoiding LinkedIn's strict API restrictions on messaging access.
connection request sending with personalized message support
Medium confidenceEnables Claude to send LinkedIn connection requests programmatically, optionally including personalized messages. Implements form submission via Patchright to navigate LinkedIn's connection request flow, including message composition and submission. Handles LinkedIn's rate limiting and connection request validation (e.g., preventing duplicate requests to the same person).
Automates LinkedIn connection requests with optional personalized messages through MCP, allowing Claude to integrate networking into multi-step workflows. Uses Patchright to handle LinkedIn's form submission and validation, respecting rate limits and preventing duplicate requests through client-side state tracking.
More integrated than manual LinkedIn outreach because it's callable from Claude workflows. More reliable than LinkedIn API approaches because LinkedIn's official API does not support connection requests; Patchright-based automation is the only viable approach.
sequential tool execution middleware with rate-limit protection
Medium confidenceImplements a 'Sequential Middleware Lock' that serializes all MCP tool calls within a single process to prevent LinkedIn from detecting multiple concurrent sessions from the same account. Uses a queue-based execution model where simultaneous tool invocations are queued and executed serially. This design decision protects against account suspension and detection while maintaining a single authenticated browser session across all tools.
Implements a process-level sequential execution lock that queues all MCP tool calls and executes them serially, preventing concurrent session detection by LinkedIn. This is a deliberate architectural trade-off prioritizing account safety over throughput, documented in the codebase as the 'Sequential Middleware Lock' design decision.
More account-safe than concurrent execution approaches because it eliminates the risk of multiple simultaneous requests triggering LinkedIn's bot detection. Trade-off is latency: slower than parallel scrapers but more reliable for long-term account health.
persistent browser profile management with cookie-based authentication
Medium confidenceManages persistent browser profiles stored locally (default: ~/.linkedin-mcp/profile) that maintain LinkedIn authentication state (cookies, session tokens) across server restarts. Eliminates repeated login flows by reusing authenticated browser contexts. Implements profile initialization on first run (prompting for credentials) and automatic session refresh on subsequent runs. Uses Patchright to manage browser lifecycle and profile persistence.
Implements persistent local browser profiles that maintain LinkedIn authentication state across server restarts, eliminating repeated login flows. Uses Patchright's profile management to store cookies and session tokens locally, enabling stateful authentication without requiring credential re-entry or external session stores.
More convenient than stateless authentication approaches (e.g., OAuth, API tokens) because it reuses browser-based authentication without requiring LinkedIn API access. More reliable than in-memory session storage because profiles survive server restarts.
fastmcp framework integration for mcp protocol compliance
Medium confidenceImplements the Model Context Protocol (MCP) server using the FastMCP framework, which handles MCP protocol serialization, tool registration, and request/response lifecycle management. Exposes all LinkedIn scraping tools as MCP-compliant tools callable by Claude Desktop and other MCP-compatible AI assistants. Manages tool schema definition (input parameters, output types) and error handling within the MCP protocol contract.
Uses FastMCP framework to expose all LinkedIn scraping capabilities as MCP-compliant tools, enabling seamless integration with Claude Desktop and other MCP-compatible AI assistants. FastMCP handles protocol serialization, tool schema validation, and lifecycle management, abstracting away MCP protocol complexity.
More standardized than custom REST API wrappers because it uses the MCP protocol, which is designed for AI tool integration. More convenient than direct Python imports because it enables cross-process and cross-language tool access.
patchright-based bot detection evasion for linkedin automation
Medium confidenceUses Patchright, a hardened fork of Playwright designed specifically for automation evasion, to bypass LinkedIn's advanced bot detection mechanisms. Patchright patches Playwright's WebDriver exposure, randomizes browser fingerprints, and implements anti-detection heuristics that prevent LinkedIn from identifying automated browser sessions. This enables reliable scraping without triggering account restrictions or CAPTCHAs.
Leverages Patchright, a hardened Playwright fork specifically designed for automation evasion, to bypass LinkedIn's bot detection mechanisms. Patchright patches WebDriver exposure, randomizes browser fingerprints, and implements anti-detection heuristics that standard Playwright cannot provide, making it the de facto standard for reliable LinkedIn automation.
More reliable than standard Playwright or Selenium for LinkedIn because Patchright's evasion techniques are specifically tuned for LinkedIn's detection mechanisms. More maintainable than custom evasion code because Patchright's techniques are centralized and updated by dedicated maintainers.
configuration management with environment variables and credential handling
Medium confidenceManages server configuration through environment variables (.env file) and credential storage, allowing users to customize LinkedIn credentials, profile directory, and server behavior without code changes. Implements credential validation on startup and provides clear error messages for missing or invalid configuration. Supports both interactive credential prompts (first run) and non-interactive credential loading (subsequent runs).
Implements environment variable-based configuration with optional interactive credential prompts, allowing users to configure the server without code changes. Supports both first-run interactive setup (prompting for credentials) and subsequent non-interactive runs (loading credentials from .env or environment).
More flexible than hardcoded configuration because it supports environment-specific overrides. More user-friendly than manual credential entry for each run because it persists credentials in .env files.
Capabilities are decomposed by AI analysis. Each maps to specific user intents and improves with match feedback.
Related Artifactssharing capabilities
Artifacts that share capabilities with linkedin-mcp-server, ranked by overlap. Discovered automatically through the match graph.
Linked API
** - MCP server that lets AI assistants control LinkedIn accounts and retrieve real-time data with [Linked API](https://linkedapi.io).
GoLogin MCP server
** - Manage your GoLogin browser profiles and automation directly through AI conversations!
Proxycurl
LinkedIn data extraction API for enrichment workflows.
AgentQL
** - Enable AI agents to get structured data from unstructured web with [AgentQL](https://www.agentql.com/).
Podify.io
Leverage AI and community to grow on LinkedIn
Puppeteer MCP Server
Automate browser interactions and take screenshots via Puppeteer MCP.
Best For
- ✓AI agent builders integrating LinkedIn data into Claude workflows
- ✓Recruitment automation teams using Claude for candidate research
- ✓Sales development teams automating prospect enrichment via AI assistants
- ✓Sales intelligence teams using Claude to research target accounts
- ✓Recruitment teams automating company research and employee discovery
- ✓Market research teams analyzing company activity and growth signals
- ✓DevOps teams deploying LinkedIn MCP servers in containerized environments
- ✓Cloud-native organizations using Kubernetes or Docker Compose
Known Limitations
- ⚠Requires valid LinkedIn credentials and active account; LinkedIn account suspension will block all operations
- ⚠Sequential execution lock serializes all tool calls to avoid detection, adding latency for concurrent requests
- ⚠Patchright-based browser automation may break if LinkedIn significantly changes DOM structure or anti-bot mechanisms
- ⚠No built-in caching of profile data; each request triggers a fresh page load and scrape
- ⚠Company pages may have dynamic content that requires JavaScript rendering; Patchright handles this but adds latency
- ⚠Employee lists on company pages are paginated; the tool may not retrieve all employees in a single call
Requirements
Input / Output
UnfragileRank
UnfragileRank is computed from adoption signals, documentation quality, ecosystem connectivity, match graph feedback, and freshness. No artifact can pay for a higher rank.
Repository Details
Last commit: Apr 21, 2026
About
Open-source MCP server for LinkedIn. Give Claude and any MCP-compatible AI assistant access to profiles, companies, jobs, and messages.
Categories
Alternatives to linkedin-mcp-server
Are you the builder of linkedin-mcp-server?
Claim this artifact to get a verified badge, access match analytics, see which intents users search for, and manage your listing.
Get the weekly brief
New tools, rising stars, and what's actually worth your time. No spam.
Data Sources
Looking for something else?
Search →