This LinkedIn MCP Server enables job search automation and CV optimization through integration with Anthropic's Claude. It can:
Generate Job Search URLs: Create properly formatted LinkedIn job search URLs with customizable query parameters
Retrieve Job IDs: Fetch new job IDs from LinkedIn search results with pagination support for exploring multiple pages
Extract Job Metadata: Get detailed information including title, company, description, and requirements for specific job IDs
Adapt CV to Job Descriptions: Tailor Francisco Perez-Sorrosal's CV to match specific job requirements using job ID, position, and location
Local Caching: Utilize caching mechanisms to store job descriptions and prevent redundant web scraping
The server streamlines the job application process by automating LinkedIn job discovery and enabling targeted CV customization based on extracted job requirements.
Used for hosting the MCP server that serves LinkedIn profile data to Claude
LinkedIn MCP Server with Anthropic's Claude Integration
A Python-based MCP (Model Context Protocol) server that gets stuff from your LinkedIn profile and integrates with the Anthropic API for potential analysis tasks.
TL;DR Install for Claude Desktop/Code Access to the LinkedIn profile
Features
- Job Search URL Generation: Create properly formatted LinkedIn job search URLs with location, distance, and query parameters
- Job ID Retrieval: Extract job IDs from LinkedIn search pages with pagination support
- Job Metadata Extraction: Get detailed job information including title, company, description, and requirements
- CV Adaptation: Combined with the cv MCP Server, adapt Francisco's CV to match specific job requirements
- Built with FastMCP for high performance and with Pixi for dependency management and task running
- Source code organized in the
src/
directory - Includes configurations for:
- Docker (optional, for containerization)
- Linting (Ruff, Black, iSort)
- Formatting
- Type checking (MyPy)
Prerequisites
- Python 3.11+
- Pixi (for dependency management and task execution)
- uv (for building the MCP bundle)
- Docker (optional, for containerization)
Project Structure
This project follows the src
layout for Python packaging.
Setup and Installation
- Clone the repository (if applicable) or ensure you are in the project root directory.
- Install dependencies using Pixi:
This command will create a virtual environment and install all necessary dependencies:
Running the Server
Pixi tasks are defined in pyproject.toml
:
mcps (MCP Server)
Development Mode (with auto-reload)
The server will start at http://localhost:10000
. It will automatically reload if you make changes to files in the src/
directory.
MCP Inspection Mode
This starts the inspector for the MCP Server.
Web scrapper
Development Tasks
Run Tests
Lint and Check Formatting
Apply Formatting and Fix Lint Issues
Build the Python Package
Creates sdist and wheel in dist/
:
Docker Support (Optional)
Build the Docker Image
Run the Docker Container
TODO: Rewrite this if necessary. Docker support not yet done.
MCP Server Installation
Local Installation with MCP
Init the dxt
Init dxt project with a manifest
Note When creating the manifest, in the mcp_config
section, put the full path to the python interpreter -> "command": "/Users/fperez/.pyenv/shims/python"
Bundle Python libs and Package Project as dxt
The output file linkedin-mcp-fps.dxt
is created on the dxt-package
directory. Alternatively, download the linkedin-mcp-fps.dxt
file from releases (TODO).
With the packaged extension:
- Double-click the
.dxt
file to install it in Claude Desktop - Alternatively, drag and drop it to Claude Desktop Settings/Extensions section
- Restart Claude Desktop (In new Claude versions it's not necessary)
- The extension should appear in your MCP servers list
Extension Requirements
This extension requires Python 3.11+ and includes all necessary dependencies bundled.
Dev Local Installation for Claude Desktop/Code (without DXT)
Remote Configuration for Claude Desktop/Code
For connecting to a remote MCP server:
Note: Update the host and port as needed for your deployment.
Currently I'm using render.com
to host the MCP server. The configuration for Claude is in the config/claude.json
file. It uses sse
but it is deprecated now. TODO: Make streamable-https the default for remote.
Render requires requirements.txt
to be present in the root directory. You can generate it using:
Also requires runtime.txt
to be present in the root directory with the Python version specified:
Remember also to set the environment variables in the render.com dashboard:
User Guide
Available Tools
- get_url_for_jobs_search: Generate LinkedIn job search URLs
- get_new_job_ids: Get new job IDs from LinkedIn
- get_jobs_raw_metadata: Extract detailed job information
- adapt_cv_to_latest_job: Adapt CV to job requirements
After installing the MCP server, you can access its functionality in Claude Desktop/Code using the tools to get information about jobs in Linkedin. Combined with the functionality provided by the MCP Server serving my CV you can ask things like this:
or simply:
or, as a recruiter, get your posted LinkedIn job id and write:
Cache
The system uses a local cache to avoid re-scraping jobs:
- Cache location:
~/.linkedin-mcp/raw_job_description_cache/
- Format: JSONL (JSON Lines)
- Automatically managed
- In-memory cache for fast lookups
- Configurable cache keys and storage locations
Troubleshooting
If you encounter issues:
- Import errors: Ensure all required Python packages are installed
- WebDriver issues: Make sure Chrome is installed for Selenium
- Connection errors: Check your internet connection for LinkedIn access
- Permission errors: Ensure the cache directory is writable
- Python path issues: Verify the manifest.json uses the correct Python executable path
Dev
Requirements
pixi
uv
Support
For issues and feature requests, visit: https://github.com/francisco-perez-sorrosal/linkedin-mcp
License
This project is licensed under the MIT License. See pyproject.toml
(See LICENSE
file) for details.
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Enables Claude to access and analyze LinkedIn profile data through the Model Context Protocol, allowing users to query their LinkedIn information directly within Claude Desktop.
Related MCP Servers
- -securityFlicense-qualityA Model Context Protocol server that enables seamless interaction with LinkedIn for job applications, profile retrieval, feed browsing, and resume analysis through natural language commands.Last updated -22
- -securityAlicense-qualityEnables posting text and media content directly to LinkedIn from Claude Desktop with support for authentication and visibility controls.Last updated -5MIT License
- AsecurityAlicenseAqualityEnables AI assistants to interact with LinkedIn data through the Model Context Protocol, allowing profile searches, job discovery, messaging, and network analytics.Last updated -284015MIT License
- AsecurityFlicenseAqualityAn unofficial Model Context Protocol server that enables programmatic access to LinkedIn data through tools like user search, company search, profile enrichment, and contact retrieval.Last updated -7203