LinkedIn MCP
Enables AI assistants to access and interact with LinkedIn dataβprofiles, messaging, jobs, companies, and moreβvia MCP, with remote or local deployment.
README
<div align="center">
π LinkedIn MCP
The most reliable LinkedIn MCP server for AI assistants
Give Claude, Cursor, and any MCP-compatible AI assistant full access to LinkedIn β profiles, messaging, jobs, companies, and more. Zero local dependencies. Just add a URL.
Quick Start Β· Tools Β· Authentication Β· Comparison
</div>
β¨ Why LinkedIn MCP?
| Feature | Description | |
|---|---|---|
| π | Remote-First | Zero install β add a URL to your Claude config and go. No Python, no browser, no Docker required. |
| π§ | 30+ Tools | The most comprehensive LinkedIn MCP available. Profiles, messaging, jobs, companies, network, feed, and more. |
| π | Secure | OAuth 2.0 + cookie authentication. Rate limiting, CORS, origin validation built-in. |
| β‘ | Fast & Lightweight | API-based β no headless browser needed. ~5MB vs 500MB+ browser-based alternatives. |
| π | Reliable | No session expiry loops, no browser crashes, no dialog collisions. Stateless HTTP design. |
| π | Locale-Independent | Works worldwide. No English-only DOM selectors. API-based, not scraping. |
π Quick Start
Method 1: Remote URL (Recommended)
Add to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"linkedin": {
"url": "https://your-deployed-url.com/mcp",
"headers": {
"Authorization": "Bearer YOUR_TOKEN"
}
}
}
}
Method 2: npx (No Install)
{
"mcpServers": {
"linkedin": {
"command": "npx",
"args": ["-y", "linkedinmcp"],
"env": {
"LINKEDIN_COOKIE": "your_li_at_cookie_value"
}
}
}
}
Method 3: Clone & Run
git clone https://github.com/devag7/linkedin-mcp.git
cd linkedin-mcp
npm install
npm run dev
π Available Tools
π€ Profile Tools
| Tool | Description |
|---|---|
get_profile |
Get any LinkedIn profile with full details (experience, education, skills) |
get_my_profile |
Get the authenticated user's own profile |
get_profile_skills |
Get detailed skills with endorsement counts |
get_profile_recommendations |
Get recommendations given and received |
get_profile_activity |
Get a user's recent posts and activity |
get_sidebar_profiles |
Get "People also viewed" profile suggestions |
search_people |
Search people with advanced filters (location, company, title) |
π¬ Messaging Tools
| Tool | Description |
|---|---|
get_inbox |
List inbox conversations with read/unread filters |
get_conversation |
Read a specific conversation thread |
search_conversations |
Search messages by keyword |
send_message |
Send a message (supports multiline, rich text) |
reply_to_thread |
Reply to an existing conversation by thread ID |
mark_conversation_read |
Mark a conversation as read |
π’ Company Tools
| Tool | Description |
|---|---|
get_company |
Get company profile, description, and details |
get_company_posts |
Get recent posts from a company's feed |
get_company_employees |
List employees with filters |
search_companies |
Search companies by keyword and industry |
get_company_jobs |
Get open job positions at a company |
πΌ Job Tools
| Tool | Description |
|---|---|
search_jobs |
Search jobs with keyword, location, and experience filters |
get_job_details |
Get detailed information about a job posting |
get_saved_jobs |
Get the user's saved/bookmarked jobs |
get_job_applicants |
Get applicant information (recruiter accounts) |
π€ Network Tools
| Tool | Description |
|---|---|
connect_with_person |
Send a connection request with optional personalized note |
get_connections |
List 1st-degree connections, sorted by recently added |
get_pending_invitations |
View sent and received connection invitations |
withdraw_invitation |
Cancel a sent connection invitation |
accept_invitation |
Accept a received connection invitation |
get_network_stats |
Get network growth metrics and connection statistics |
π° Feed & Content Tools
| Tool | Description |
|---|---|
get_feed |
Get posts from the home feed |
create_post |
Create a new text or image post |
react_to_post |
React to a post (like, celebrate, support, etc.) |
comment_on_post |
Add a comment to a post |
search_posts |
Search posts by keyword or hashtag |
π§ Utility Tools
| Tool | Description |
|---|---|
whoami |
Get server info, auth status, and capabilities |
health_check |
Check server health and LinkedIn connectivity |
get_notifications |
Get recent LinkedIn notifications |
π Authentication
Method 1: LinkedIn OAuth 2.0 (Recommended)
- Create an app at LinkedIn Developer Portal
- Get your access token
- Set the environment variable:
export LINKEDIN_ACCESS_TOKEN="your_access_token"
Method 2: Session Cookie (Quick Setup)
- Log in to LinkedIn in your browser
- Open DevTools β Application β Cookies β
linkedin.com - Copy the
li_atcookie value - Optionally copy the
JSESSIONIDcookie value (for CSRF)
export LINKEDIN_COOKIE="your_li_at_cookie_value"
export LINKEDIN_CSRF_TOKEN="your_jsessionid_value"
β‘ Comparison with Alternatives
| Feature | LinkedIn MCP | linkedin-mcp-server |
|---|---|---|
| Transport | β Remote HTTP + stdio | β stdio only (local) |
| Install Required | β No β just add URL | β Python + Chromium (~500MB) |
| Browser Dependency | β None β API-based | β Patchright + Chromium |
| Language | TypeScript (MCP-native) | Python |
| Tools | 30+ | ~15 |
| Multiline Messages | β Native support | β Buggy (Shift+Enter hack) |
| Session Stability | β Stateless HTTP | β Session expiry loops |
| Connection Requests | β API-based, reliable | β Dialog collision bugs |
| Locale Support | β Worldwide | β οΈ English selectors |
| Docker Image Size | ~50MB | ~500MB+ |
| Known Critical Bugs | 0 | 10+ open issues |
βοΈ Environment Variables
| Variable | Required | Default | Description |
|---|---|---|---|
LINKEDIN_ACCESS_TOKEN |
One of these | β | LinkedIn OAuth access token |
LINKEDIN_COOKIE |
One of these | β | LinkedIn li_at session cookie |
LINKEDIN_CSRF_TOKEN |
No | β | LinkedIn JSESSIONID for CSRF protection |
PORT |
No | 3000 |
HTTP server port |
TRANSPORT |
No | stdio |
Transport mode: stdio or http |
LOG_LEVEL |
No | info |
Log level: debug, info, warn, error |
CACHE_TTL |
No | 300 |
Cache TTL in seconds |
RATE_LIMIT_RPM |
No | 30 |
Max requests per minute |
REQUEST_TIMEOUT |
No | 30000 |
Request timeout in milliseconds |
π Development
# Clone the repo
git clone https://github.com/devag7/linkedin-mcp.git
cd linkedin-mcp
# Install dependencies
npm install
# Run in development mode (stdio)
npm run dev
# Run in HTTP mode
npm run dev -- --transport http --port 3000
# Run tests
npm test
# Type checking
npm run typecheck
# Lint
npm run lint
# Build for production
npm run build
π€ Contributing
Contributions are welcome! Please see our Contributing Guide for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
π License
This project is licensed under the MIT License β see the LICENSE file for details.
β οΈ Disclaimer
This project is not officially affiliated with LinkedIn. Use responsibly and in accordance with LinkedIn's Terms of Service. The authors are not responsible for any misuse or account restrictions.
<div align="center">
If you find this useful, please give us a β! It helps others discover the project.
Made with β€οΈ by Dev Agarwalla
</div>
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.