LinkedIn Model Context Protocol
STDIOMCP server enabling AI assistants to search jobs, generate resumes, and manage applications.
MCP server enabling AI assistants to search jobs, generate resumes, and manage applications.
A powerful Model Context Protocol server for LinkedIn interactions that enables AI assistants to search for jobs, generate resumes and cover letters, and manage job applications programmatically.
This project implements the Model Context Protocol (MCP) specification, allowing AI assistants to interact with LinkedIn through standardized JSON-RPC style requests and responses.
linkedin_mcp/
├── api/
│ ├── clients/ # API client implementations
│ │ ├── __init__.py # Client factory functions
│ │ ├── linkedin.py # LinkedIn API client
│ │ └── openai.py # OpenAI integration
│ │
│ ├── models/ # Data models and schemas
│ │ ├── __init__.py # Model exports
│ │ ├── common.py # Common data models
│ │ ├── enums.py # Enumerations
│ │ ├── requests.py # Request models
│ │ └── responses.py # Response models
│ │
│ └── services/ # Business logic
│ └── ...
│
├── core/ # Core application logic
│ ├── __init__.py
│ ├── exceptions.py # Custom exceptions
│ ├── mcp_handler.py # MCP protocol handler
│ └── protocol.py # Protocol definitions
│
├── utils/ # Utility functions
│ ├── __init__.py
│ ├── auth.py # Authentication helpers
│ ├── rate_limiter.py # Rate limiting
│ └── retry.py # Retry mechanisms
│
├── examples/ # Example scripts
│ └── basic_usage.py # Basic client usage example
│
├── .env.example # Example environment variables
├── README.md # This file
└── requirements.txt # Project dependencies
Clone the repository
git clone https://github.com/yourusername/linkedin-mcp.git cd linkedin-mcp
Create and activate a virtual environment
# Linux/macOS python -m venv venv source venv/bin/activate # Windows python -m venv venv .\venv\Scripts\activate
Install dependencies
pip install -r requirements.txt
Set up environment variables
cp .env.example .env
Edit the .env
file with your LinkedIn API credentials and other settings.
Create a .env
file in the project root with the following variables (see .env.example
for details):
# LinkedIn API Credentials (required) LINKEDIN_CLIENT_ID=your_client_id_here LINKEDIN_CLIENT_SECRET=your_client_secret_here LINKEDIN_REDIRECT_URI=http://localhost:8080/callback # Optional: OpenAI API Key (for resume/cover letter generation) # OPENAI_API_KEY=your_openai_api_key_here # Optional: Logging LOG_LEVEL=INFO # API Settings OPENAI_API_KEY=your_openai_api_key SESSION_DIR=sessions DATA_DIR=data
python server.py
{ "jsonrpc": "2.0", "id": 1, "method": "linkedin.login", "params": { "username": "[email protected]", "password": "password123" } }
{ "jsonrpc": "2.0", "id": 2, "method": "linkedin.searchJobs", "params": { "filter": { "keywords": "software engineer", "location": "New York, NY", "distance": 25 }, "page": 1, "count": 20 } }
{ "jsonrpc": "2.0", "id": 3, "method": "linkedin.generateResume", "params": { "profileId": "user123", "template": "standard", "format": "pdf" } }
Method | Description |
---|---|
linkedin.login | Authenticate with LinkedIn |
linkedin.logout | End the current session |
linkedin.checkSession | Check if the current session is valid |
linkedin.getFeed | Get LinkedIn feed posts |
linkedin.getProfile | Get LinkedIn profile information |
linkedin.getCompany | Get company profile information |
linkedin.searchJobs | Search for jobs with filters |
linkedin.getJobDetails | Get detailed information about a job |
linkedin.getRecommendedJobs | Get job recommendations |
linkedin.generateResume | Generate a resume from a LinkedIn profile |
linkedin.generateCoverLetter | Generate a cover letter for a job application |
linkedin.tailorResume | Customize a resume for a specific job |
linkedin.applyToJob | Apply to a job |
linkedin.getApplicationStatus | Check application status |
linkedin.getSavedJobs | Get saved jobs |
linkedin.saveJob | Save a job for later |
linkedin-mcp/
├── README.md
├── requirements.txt
├── server.py
├── data/
│ ├── applications/
│ ├── companies/
│ ├── cover_letters/
│ ├── jobs/
│ ├── profiles/
│ └── resumes/
├── linkedin_mcp/
│ ├── api/
│ │ ├── auth.py
│ │ ├── cover_letter_generator.py
│ │ ├── job_application.py
│ │ ├── job_search.py
│ │ ├── profile.py
│ │ └── resume_generator.py
│ ├── core/
│ │ ├── mcp_handler.py
│ │ └── protocol.py
│ └── utils/
│ └── config.py
├── sessions/
└── templates/
├── cover_letter/
│ └── standard.html
└── resume/
└── standard.html
pytest
This project is licensed under the MIT License - see the LICENSE file for details.