logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

linkedin-mcp-service-gateway

A dedicated backend service for interfacing with the LinkedIn platform, enabling programmatic access for profile examination, corporate data extraction, and job opportunity discovery. It synthesizes insights and provides prescriptive advice derived from analyzed LinkedIn datasets.

Author

linkedin-mcp-service-gateway logo

stickerdaniel

Apache License 2.0

Quick Info

GitHub GitHub Stars 440
NPM Weekly Downloads 551
Tools 1
Last Updated 2026-02-19

Tags

linkedinlistingsprofileslinkedin mcplinkedin scrapebased linkedin

LinkedIn Interaction Service Backend

Continuous Integration Status Release Artifacts Software License Type

This centralized LinkedIn MCP gateway permits intelligent agents, such as Claude, to establish a secure connection to your professional network profile. You gain the capability to query individual professional records or organizational entities, retrieve tailored job suggestions, or initiate searches based on specified criteria—all executable from a contained Docker environment running locally.

Deployment Strategies

Container Orchestration DXT Integration uvx Package Manager Local Development

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

Operational Use Cases

Retrieve a curated list of prospective career opportunities tailored to my background.

Conduct a thorough background investigation on this professional entity https://www.linkedin.com/in/stickerdaniel/

Obtain comprehensive data on this corporation for potential alliance evaluations https://www.linkedin.com/company/inframs/

Generate suggested revisions for my curriculum vitae to align perfectly with the specifications of this job vacancy https://www.linkedin.com/jobs/view/4252026496

Functionality & Operational Status

[!TIP] - Personnel Data Harvesting (get_person_profile): Acquire granular details from a LinkedIn member's page, including professional tenure, educational background, proficiencies, and network associations. - Organizational Intelligence Gathering (get_company_profile): Extract extensive informational assets pertaining to a designated LinkedIn corporate profile name. - Vacancy Specification Retrieval (get_job_details): Fetch precise specifications associated with a specific LinkedIn job identifier. - Employment Listing Search (search_jobs): Execute queries for open positions, utilizing parameters such as required skills and geographical preference. - Personalized Job Fetching (get_recommended_jobs): Access recommendations for roles optimized for the user's profile composition. - Session Lifecycle Management (close_session): Ensure the underlying browser session is terminated correctly and all associated resources are reclaimed.

[!NOTE] Status Update (July 2025): All encapsulated functionalities are confirmed operational and receiving active upkeep. Should any operational deficiencies arise, kindly document them via the GitHub Issues Tracker.



Prerequisites: Confirm that the Docker engine is installed and actively running.

Bootstrap Procedure

Client Configuration Snippet:

{ "mcpServers": { "linkedin": { "command": "docker", "args": [ "run", "--rm", "-i", "-e", "LINKEDIN_COOKIE", "stickerdaniel/linkedin-mcp-server:latest" ], "env": { "LINKEDIN_COOKIE": "li_at=YOUR_SECRET_SESSION_TOKEN" } } } }

Obtaining the LinkedIn Authentication Token

🌐 Guide via Chrome Developer Tools 1. Authenticate within the LinkedIn web interface. 2. Invoke Chrome DevTools (utilize F12 or right-click followed by 'Inspect'). 3. Navigate to the **Application** tab, then **Storage**, and finally **Cookies** for `https://www.linkedin.com`. 4. Locate the entry labeled `li_at`. 5. Capture the content of the **Value** field; this constitutes your active LinkedIn session credential. 6. Incorporate this captured value as the `LINKEDIN_COOKIE` definition within your configuration settings.
🐳 Docker Token Acquisition Method **Execute the server container with the `--get-cookie` argument:** bash docker run -it --rm \ stickerdaniel/linkedin-mcp-server:latest \ --get-cookie Extract the resulting token from the standard output and designate it as the `LINKEDIN_COOKIE` in your client specification. If this automated process triggers a CAPTCHA challenge, revert to the browser inspection method detailed above.

[!NOTE] Session tokens typically invalidate within 30 days. Simply refresh your token and update the client configuration accordingly. Browser extensions designed for cookie management can expedite the retrieval process.

Docker Deployment Assistance

🔧 Advanced Configuration Directives **Communication Protocols:** - **Standard (stdio)**: Default communication channel for local daemon instances. - **Streamable HTTP**: Utilized for creating a network-accessible MCP daemon. **Command Line Interface (CLI) Modifiers:** - `--log-level {DEBUG,INFO,WARNING,ERROR}` - Adjusts verbosity (default: WARNING). - `--no-lazy-init` - Forces immediate initialization of the LinkedIn session upon startup, bypassing deferred loading. - `--transport {stdio,streamable-http}` - Specifies the data exchange mechanism. - `--host HOST` - Network interface address for HTTP server (default: 127.0.0.1). - `--port PORT` - TCP port for HTTP endpoint (default: 8000). - `--path PATH` - URI path prefix for HTTP operations (default: /mcp). - `--get-cookie` - Initiates a login attempt via credentials to extract the required session token. - `--cookie {cookie}` - Directly injects a specific LinkedIn authentication token. - `--user-agent {user_agent}` - Allows substitution of the default User-Agent header to mitigate anti-scraping measures. **HTTP Mode Configuration Example (for remote clients):** bash docker run -it --rm \ -e LINKEDIN_COOKIE="li_at=YOUR_COOKIE_VALUE" \ -p 8080:8080 \ stickerdaniel/linkedin-mcp-server:latest \ --transport streamable-http --host 0.0.0.0 --port 8080 --path /mcp **Validation using the mcp Inspector:** 1. Install and launch the inspector utility: bunx @modelcontextprotocol/inspector 2. In the browser interface, select `Streamable HTTP` as the communication protocol. 3. Define the endpoint URL as `http://localhost:8080/mcp`. 4. Establish the connection. 5. Proceed to validate individual tool functionality.
❗ Error Resolution Protocols **Containerization Failures:** - Verify Docker installation integrity. - Confirm Docker daemon activity status via `docker ps`. **Authentication Impediments:** - Guarantee the provided LinkedIn token is accurate and unexpired. - Ensure only one concurrent session utilizes a given authentication token; simultaneous uses result in token invalidation. - The `--get-cookie` function may necessitate manual validation via the LinkedIn mobile application. - Excessive login attempts within a brief window can invoke CAPTCHA protection. Consider delaying or employing the local setup for manual debugging (using `--no-headless` mode).



📦 Claude Desktop (DXT Extension Integration)

Prerequisites: Availability of Claude Desktop and the Docker runtime.

Automated Installation for DXT: 1. Obtain the latest DXT extension release package. 2. Execute the downloaded file to integrate it with Claude Desktop. 3. Configure the required LinkedIn session token within the extension's designated settings panel.

Obtaining the LinkedIn Authentication Token

🌐 Guide via Chrome Developer Tools 1. Log into your LinkedIn account. 2. Activate Chrome DevTools (F12 or right-click → Inspect). 3. Navigate to **Application** > **Storage** > **Cookies** > **https://www.linkedin.com**. 4. Isolate the cookie named `li_at`. 5. Copy the **Value** associated with it, which serves as the `LINKEDIN_COOKIE`.
🐳 Docker Token Acquisition Method **Run the server container with the `--get-cookie` flag:** bash docker run -it --rm \ stickerdaniel/linkedin-mcp-server:latest \ --get-cookie Capture the output token and input it into your client configuration. Consult the browser method if CAPTCHA is encountered.

[!NOTE] The authentication credential lifespan is roughly 30 days. Keep your client configuration updated with a fresh token. Cookie utility extensions are recommended for streamlined token management.

DXT Extension Configuration Support

❗ Troubleshooting Assistance **Containerization Failures:** - Confirm Docker prerequisite satisfaction. - Verify daemon readiness (`docker ps`). **Authentication Impediments:** - Validate the presence and correctness of the LinkedIn token. - Session conflict avoidance: Do not allow multiple simultaneous sessions (e.g., browser + container) using the identical token. - Be prepared for potential mobile app or CAPTCHA verification steps during token retrieval.



🚀 uvx Bootstrap (Quick Install - Universal)

Prerequisites: Ensure the uv package manager is installed.

Installation Command Sequence

Execute directly against the remote Git repository source:

bash

Direct execution of the latest version

uvx --from git+https://github.com/stickerdaniel/linkedin-mcp-server linkedin-mcp-server --help

Execution while supplying the necessary authentication token

uvx --from git+https://github.com/stickerdaniel/linkedin-mcp-server linkedin-mcp-server --cookie "li_at=YOUR_SESSION_TOKEN_HERE"

Obtaining the LinkedIn Authentication Token

🌐 Guide via Chrome Developer Tools 1. Secure login on LinkedIn. 2. Open Chrome DevTools (F12). 3. Inspect **Application** > **Storage** > **Cookies** for `https://www.linkedin.com`. 4. Obtain the **Value** from the `li_at` cookie entry. 5. Use this value as your configuration's `LINKEDIN_COOKIE`.
🚀 uvx Token Retrieval Sequence **Invoke the service with the dedicated flag:** bash uvx --from git+https://github.com/stickerdaniel/linkedin-mcp-server \ linkedin-mcp-server --get-cookie Copy the output credential for use in client configurations. Fall back to manual extraction if rate-limiting or CAPTCHA occurs.

[!NOTE] Authentication tokens require periodic renewal (approx. every 30 days). Update your configuration swiftly upon expiry.

uvx Deployment Configuration

🔧 Configuration Schematics **Client Definition Structure:** { "mcpServers": { "linkedin": { "command": "uvx", "args": [ "--from", "git+https://github.com/stickerdaniel/linkedin-mcp-server", "linkedin-mcp-server" ], "env": { "LINKEDIN_COOKIE": "li_at=YOUR_SECRET_SESSION_TOKEN" } } } } **Communication Modalities:** - **Default (stdio)**: Local IPC communication standard. - **Streamable HTTP**: Enables remote network connectivity for the service. **CLI Modifiers Reference:** - `--log-level {DEBUG,INFO,WARNING,ERROR}` - Controls logging detail (default: WARNING). - `--no-lazy-init` - Activates immediate connection establishment. - `--transport {stdio,streamable-http}` - Selects data transfer mechanism. - `--host HOST` - HTTP server binding address (default: 127.0.0.1). - `--port PORT` - HTTP listener port (default: 8000). - `--path PATH` - HTTP resource URI prefix (default: /mcp). - `--get-cookie` - Executes credential-based token extraction. - `--cookie {cookie}` - Supplies a pre-existing authentication token. - `--user-agent {user_agent}` - Customizes the outbound request header string. **Basic Execution Examples:** bash # Using environment variable injection LINKEDIN_COOKIE="YOUR_TOKEN" uvx --from git+https://github.com/stickerdaniel/linkedin-mcp-server linkedin-mcp-server # Using flag-based token injection uvx --from git+https://github.com/stickerdaniel/linkedin-mcp-server linkedin-mcp-server --cookie "YOUR_TOKEN" # Enabling verbose (DEBUG) logging uvx --from git+https://github.com/stickerdaniel/linkedin-mcp-server linkedin-mcp-server --log-level DEBUG # Token extraction routine uvx --from git+https://github.com/stickerdaniel/linkedin-mcp-server linkedin-mcp-server --get-cookie **HTTP Interface Setup (For Web Clients):** bash uvx --from git+https://github.com/stickerdaniel/linkedin-mcp-server linkedin-mcp-server --transport streamable-http --host 127.0.0.1 --port 8080 --path /mcp **Inspector Connectivity Steps:** 1. Install and launch the inspector: bunx @modelcontextprotocol/inspector 2. Select `Streamable HTTP` transport modality. 3. Configure the URI to `http://localhost:8080/mcp`. 4. Connect and initiate functional testing.
❗ Error Resolution Protocols **Installation Difficulties:** - Confirm `uv` installation: `curl -LsSf https://astral.sh/uv/install.sh | sh`. - Verify version: `uv --version` (requires 0.4.0 or newer). **Credential Errors:** - Ensure the token is valid, either via the `--cookie` flag or `LINKEDIN_COOKIE` variable. - Confirm token exclusivity across active sessions. **Login Failures:** - External verification (mobile app confirmation) might be needed for `--get-cookie`. - Rate limiting can trigger CAPTCHAs; retry later or use local setup for manual intervention.



🐍 Local Development Setup (Contribute & Debug)

Prerequisites: Possession of the Chrome browser and Git version control system.

ChromeDriver Installation Protocol: 1. Determine Chrome Version: Access Chrome settings menu (⋮) → Help → About Google Chrome. 2. Acquire Corresponding ChromeDriver: Source the appropriate binary from Chrome for Testing. 3. Ensure Path Accessibility: - Place the executable in a directory within your system's PATH (e.g., /usr/local/bin on Unix-like systems). - Alternatively, define an environment variable: export CHROMEDRIVER_PATH=/absolute/path/to/chromedriver. - If neither is set, the server attempts automated location.

Project Bootstrap

bash

1. Clone the repository source

git clone https://github.com/stickerdaniel/linkedin-mcp-server cd linkedin-mcp-server

2. Install the UV package manager

curl -LsSf https://astral.sh/uv/install.sh | sh uv python # Install Python environment if absent

3. Resolve dependencies (application and development sets)

uv sync uv sync --group dev

4. Install mandatory pre-commit hooks

uv run pre-commit install

5. Initial manual server launch

Credentials will be solicited interactively and persisted securely in the OS keychain for future use.

uv run -m linkedin_mcp_server --no-headless --no-lazy-init

Local Setup Guidance

🔧 Configuration Parameters **CLI Operational Modifiers:** - `--no-headless` - Renders the browser interface visible for debugging purposes. - `--log-level {DEBUG,INFO,WARNING,ERROR}` - Verbosity control (default: WARNING). - `--no-lazy-init` - Initiates the LinkedIn authentication sequence immediately. - `--get-cookie` - Triggers credential-based token extraction. - `--clear-keychain` - Erases all stored login tokens/credentials from the system's secure storage. - `--cookie {cookie}` - Direct injection of an active session token. - `--user-agent {user_agent}` - Custom HTTP User-Agent header specification. - `--transport {stdio,streamable-http}` - Defines the communication pipeline. - `--host HOST` - Binds the HTTP server to a specific interface (default: 127.0.0.1). - `--port PORT` - Specifies the HTTP communication port (default: 8000). - `--path PATH` - Sets the URI namespace for HTTP communication (default: /mcp). - `--help` - Displays usage instructions. **Claude Desktop Integration JSON Snippet:** **json** { "mcpServers": { "linkedin": { "command": "uv", "args": ["--directory", "/path/to/linkedin-mcp-server", "run", "-m", "linkedin_mcp_server"] } } }
❗ Common Issue Resolution **Authentication/Scraping Anomalies:** - Activate `--no-headless` to visually trace browser execution (e.g., CAPTCHA prompts, 2FA steps). - Use `--no-lazy-init` to force early connection attempt. - Employ `--log-level DEBUG` for deep inspection logs. - Token conflict: One token must serve only one active session at a time (e.g., close browser session before running Docker). **ChromeDriver Compatibility Errors:** - Verify exact version alignment between Chrome and ChromeDriver. - Confirm ChromeDriver's location within the system PATH or the `CHROMEDRIVER_PATH` variable. **Python Environment Issues:** - Check required Python version: `uv python --version` (3.12+ recommended). - Reinitialize dependencies: `uv sync --reinstall`.

Open an issue or submit a Pull Request if assistance is required!



Acknowledgements

This utility leverages foundational components from LinkedIn Scraper by @joeyism and the FastMCP framework.

⚠️ Adherence to LinkedIn's User Agreement is paramount. Automated data retrieval via web scraping may contravene LinkedIn's stipulated usage policies. This instrument is strictly intended for private, non-commercial application.

Star History

Star History Chart

License

This software package is distributed under the terms of the Apache 2.0 License.


BUSINESS MANAGEMENT UTILITIES: These encompass the array of applications, methodologies, computational frameworks, and regulatory mechanisms employed by corporate entities to maintain market relevance, secure competitive advantages, and continually elevate operational efficacy. In the contemporary digital ecosystem, business solutions frequently target specific organizational functions, such as resource allocation, data governance, personnel administration, strategic forecasting, or performance monitoring.

== General Perspective == Business utility platforms can be segmented based on their primary operational focus within an organization. Key functional groupings often involve tools for data intake and verification, systems for process oversight and enhancement, and mechanisms for data synthesis that support executive decision-making. The rapid technological advancement of the preceding decade has drastically complicated the selection process for optimal enterprise solutions, driven by continuous pressure to minimize expenditure and maximize revenue generation, alongside a necessity to deeply understand evolving client demands and rapidly deliver conforming products. Consequently, executive leadership must adopt a long-range, strategic posture toward adopting these platforms, resisting the temptation to simply integrate the newest available technology without critical assessment. The successful integration of any business apparatus requires careful selection tailored precisely to the organization's unique requirements, rather than forcing organizational structures to conform to the tool's inherent design.

== Prevalent Selections == A 2013 analysis by Bain & Company mapped the global adoption rates of management tools, reflecting regional needs shaped by economic climates. The top ten tools identified included:

Strategic Planning Frameworks Client Relationship Management (CRM) Systems Personnel Sentiment Assessment Protocols Competitive Analysis (Benchmarking) Integrated Performance Measurement (Balanced Scorecard) Core Capability Identification Operational Offshoring/Outsourcing Strategies Organizational Transformation Programs Logistics and Distribution Network Oversight Defining Corporate Ethos (Mission/Vision Statements) Target Market Segmentation Techniques Total Quality Management Methodologies

== Enterprise Software Applications == Software suites or interconnected programs utilized by professional staff to execute diverse corporate functions are termed 'business applications.' These applications are instrumental in amplifying productivity, quantitatively measuring output, and executing critical administrative functions with precision. The technological progression moved from early Management Information Systems (MIS) toward comprehensive Enterprise Resource Planning (ERP) platforms, subsequently incorporating CRM functionalities, and culminating in today's dominant cloud-based business management ecosystems. While a tangible link exists between IT investment and corporate results, value realization hinges on two primary factors: the proficiency of the implementation process and the judicious selection and subsequent customization of the chosen tools.

== Solutions for Small and Medium Enterprises (SMEs) == Specialized business utilities designed for SMEs are vital as they offer pathways to conserve critical resources...

See Also

`