linkedin-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@linkedin-mcpGenerate my resume PDF for LinkedIn import"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
LinkedIn MCP Server — Remote Edition (Claude + ChatGPT)
An MCP server exposing LinkedIn actions, reachable from both Claude and ChatGPT as a custom connector. Runs over HTTP (not stdio) because ChatGPT only supports remote, HTTPS-reachable MCP servers — it cannot launch a local script the way Claude Desktop can.
What this can and can't do
LinkedIn's public API does not expose any endpoint for a third-party app to write directly to a profile's About, Experience, or Projects sections — for any account type. That's a platform restriction, not something this code can work around without violating LinkedIn's User Agreement (browser automation/credential scraping), which this project does not do.
Tool | What it does |
| Reads your name, email, photo via OpenID Connect |
| Publishes a text or link post to your feed |
| Builds a PDF from structured About/Experience/Projects data, formatted for LinkedIn's own Import Resume feature |
generate_resume_pdf is the practical route to "updating" Experience/Education:
LinkedIn auto-parses a resume PDF and pre-fills those sections for review. About
and Projects aren't reliably auto-parsed — the PDF still includes them clearly
labeled so you have polished text ready to paste in manually.
Related MCP server: linkedin-mcp-pro
Two tokens, don't mix them up
LINKEDIN_ACCESS_TOKEN— LinkedIn's own OAuth token. This server uses it to call LinkedIn's API on your behalf. Obtained once viaauth_setup.py.MCP_BEARER_TOKEN— a secret you generate (e.g.openssl rand -hex 32). Claude and ChatGPT send this asAuthorization: Bearer <token>on every call. Without it, anyone who finds your server's URL could post to your LinkedIn or read your profile. Treat it like a password.
1. LinkedIn app setup
Create an app: https://www.linkedin.com/developers/apps
Auth tab → add redirect URL:
http://localhost:8765/callbackProducts tab → request:
Sign In with LinkedIn using OpenID Connect (auto-approved)
Share on LinkedIn (auto-approved)
Copy the Client ID / Secret from the Auth tab.
2. Local setup & one-time LinkedIn auth
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# fill in LINKEDIN_CLIENT_ID, LINKEDIN_CLIENT_SECRET, and set a random MCP_BEARER_TOKEN
python auth_setup.py # opens browser, completes LinkedIn OAuth, saves LINKEDIN_ACCESS_TOKEN to .env3. Deploy it somewhere public
Both Claude and ChatGPT need to reach this server over HTTPS — localhost won't
work for either unless you tunnel it. Pick one:
Quick test (ngrok tunnel, temporary URL):
python server.py # starts on http://0.0.0.0:8000
ngrok http 8000 # gives you a temporary https:// URLPermanent (Docker, deploy to Render/Fly.io/Railway/any host that runs containers):
docker build -t linkedin-mcp .
docker run -p 8000:8000 --env-file .env linkedin-mcpPoint that platform's generated HTTPS domain at container port 8000, path /mcp.
A Procfile is also included for platforms that build directly from source
(Railway, Heroku-style) without a Dockerfile.
Your MCP endpoint URL will be: https://<your-domain>/mcp
4. Connect it to Claude
Claude.ai / Claude Desktop → Settings → Connectors → Add custom connector:
URL:
https://<your-domain>/mcpAuthorization: Bearer token → paste your
MCP_BEARER_TOKEN
5. Connect it to ChatGPT
ChatGPT → Settings → Apps & Connectors → Advanced settings → enable Developer mode (requires Plus/Pro/Business/Enterprise) → Add custom connector:
URL:
https://<your-domain>/mcpAuthentication: choose token/API key auth → paste your
MCP_BEARER_TOKENIn a new chat, open the
+menu → Developer mode → toggle this connector on for that conversation (ChatGPT enables connectors per-conversation).
Using generate_resume_pdf
generate_resume_pdf(
output_path="/tmp/resume.pdf",
full_name="Vaibhav Sharma",
headline="Frontend / Full-Stack Developer",
email="you@example.com",
phone="+91-XXXXXXXXXX",
location="Bengaluru, India",
about="Frontend/full-stack developer specializing in AI-powered conversational...",
experience=[{
"title": "Frontend Developer",
"company": "Kapture CRM",
"location": "Bengaluru, India",
"start_date": "Jan 2024",
"end_date": "Present",
"bullets": [
"Built and shipped the Vitos AI voice/chat agent builder UI end-to-end",
"Normalized Redux state using createEntityAdapter across the Vitos state tree",
],
}],
projects=[{
"name": "Shifra",
"description": "Voice-controlled AI assistant built with xAI's Grok API.",
"tech": ["React", "TypeScript", "Grok API", "Vercel"],
}],
skills=["React", "TypeScript", "Redux", "Node.js"],
)Then: LinkedIn → Me → View Profile → Enhance profile → Import resume, review
the auto-filled Experience/Education, and paste the About/Projects text manually.
Since the file lands wherever the server runs, ask Claude/ChatGPT to send you the
generated PDF or point output_path somewhere you can retrieve it (e.g. a synced
folder), depending on how you've deployed the server.
Files
server.py— remote MCP server (streamable-http + bearer auth) + tool definitionslinkedin_client.py— LinkedIn REST API wrapper (userinfo, posts)resume_builder.py— reportlab-based resume PDF generatorauth_setup.py— one-time OAuth2 flow to obtain a LinkedIn access tokenDockerfile/Procfile— deployment.env.example— credential template
linkedIn-mcp
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceAn intelligent bridge between Claude and LinkedIn. This MCP server empowers Claude to act as your high-level career consultant, capable of auditing your profile, optimizing your identity, and managing your professional content with real-time API access.1MIT
- AlicenseAqualityAmaintenanceSelf-hosted, ban-safe MCP server for LinkedIn that provides 22 tools for profiles, search, jobs, posts, connections, and messages. Integrates with any MCP-compatible client like Claude Desktop.581MIT
- Alicense-qualityCmaintenanceAI-powered LinkedIn automation server for content generation, profile/company data extraction, and connection request automation, integrating with MCP clients like Claude Desktop.MIT
- Alicense-qualityCmaintenanceLinkedIn MCP server for Claude to create posts, read profile, and get analytics.24MIT
Related MCP Connectors
Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.
MCP server for LeadDelta — manage LinkedIn connections and CRM data via AI assistants.
MCP server for AI job search — find jobs, track applications, get alerts. Claude, ChatGPT, Cursor.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/iamvaibhav31/linkedIn-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server