LinkedIn MCP Server
Click on "Deploy 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 MCP Servershow me my drafts"
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
Lets Claude Code post to your own LinkedIn: write, preview, save drafts, schedule, comment and react, all by talking to Claude. Nothing is published until you type a confirmation keyword.
What you need
Claude Code
Node.js 20 or newer (
node -vto check)macOS or Linux (Windows is untested)
A LinkedIn account
About 10 minutes
Related MCP server: @isteam/linkedin-mcp
Setup
1. Create your own LinkedIn app (5 minutes)
LinkedIn only lets software post for you through an "app" that you own. It is free and nobody else sees it.
Go to linkedin.com/developers/apps and click Create app.
Fill in:
App name: anything, e.g. "My Claude MCP"
LinkedIn Page: any company page you admin. If you have none, create a blank one first; LinkedIn insists on it.
App logo: any image
Open the Products tab and request both:
Share on LinkedIn
Sign In with LinkedIn using OpenID Connect
Open the Auth tab and add this redirect URL exactly:
http://localhost:8585/callbackStill on the Auth tab, copy your Client ID and Client Secret. Keep the secret private; it is a password.
2. Install
The easy way: open Claude Code and paste this, with your two values filled in.
Clone https://github.com/ayushnagvanshi101098-ship-it/linkedin-mcp-server.git into ~/linkedin-mcp-server, run
npm installandnpm run buildin it, then add it to Claude Code as a user-scope MCP server namednode ~/linkedin-mcp-server/dist/index.jswith the env vars LINKEDIN_CLIENT_ID=your_client_id and LINKEDIN_CLIENT_SECRET=your_client_secret.
Or by hand in a terminal:
git clone https://github.com/ayushnagvanshi101098-ship-it/linkedin-mcp-server.git ~/linkedin-mcp-server
cd ~/linkedin-mcp-server
npm install
npm run build
claude mcp add linkedin --scope user \
-e LINKEDIN_CLIENT_ID=your_client_id \
-e LINKEDIN_CLIENT_SECRET=your_client_secret \
-- node ~/linkedin-mcp-server/dist/index.js3. Connect your LinkedIn
Quit and reopen Claude Code, then say:
authenticate with linkedin
A browser tab opens. Approve it and you are connected. To check at any time, ask "what's my linkedin status".
LinkedIn logins expire after roughly two months. When posting stops working, say "authenticate with linkedin" again.
4. Post
Post this to LinkedIn: [your text]
Claude shows a preview of how it will look in the feed. Nothing goes out until you type POST IT.
Things you can say
"Post this to LinkedIn: ..." (text, or with an image, or a PDF document/carousel)
"Preview this post" / "Lint this post"
"Save this as a draft" / "Show my drafts" / "Publish draft 3"
"Schedule draft 3 for tomorrow at 9am"
"Show my post history"
"Delete that post"
The safety keywords
Every action that changes something waits for you to type a keyword.
You are about to | Type |
Publish a post or a draft |
|
Delete a published post |
|
Send a DM or a connection request |
|
Save or delete a draft, schedule, react, comment |
|
Good to know
The post checker is opinionated. It blocks em dashes, a few cliché phrases ("game-changer", "move the needle") and anything over 3,000 characters. If you want to post anyway, say
OVERRIDE LINT. The rules live insrc/lint/rules.ts.Video posts do not work yet. Text, image and PDF posts do. Upload videos on LinkedIn directly for now.
Scheduled posts need the scheduler, and it is macOS only. Say "install the linkedin scheduler" once. Your Mac must be awake at the scheduled time.
Commenting and reacting on other people's posts needs LinkedIn's Community Management API, which most personal apps do not have. On your own posts it works.
Optional: reading LinkedIn (inbox, profiles, search)
These tools read things the official API cannot, by driving a real browser logged in as you. You do not need them to post.
cd ~/linkedin-mcp-server && npx playwright install chromium # about 280 MB, onceThen say "linkedin scrape login" and log in by hand in the window that opens.
LinkedIn's terms discourage automated browsing. Calls are slowed down and run one at a time, but this part is at your own risk. The posting tools above use the official API and are unaffected.
Where your data lives
All on your machine, nothing is sent anywhere except LinkedIn.
File | What it is |
| Your LinkedIn login token |
| Drafts, schedule, post history |
| Settings |
| Browser login for the optional reading tools |
Never share these files or your Client Secret. Anyone holding them can act as you on LinkedIn.
All tools
Tool | What it does | Needs |
| Connect your LinkedIn account | |
| Connection, token expiry, database health | |
| Check a post against the rules | |
| Show the post as the feed will, with the "see more" fold | |
| Publish a post |
|
| Save or update a draft |
|
| Browse drafts | |
| Publish a saved draft |
|
| Delete a draft |
|
| Schedule or cancel a draft |
|
| List scheduled posts | |
| The background job that fires scheduled posts (macOS) | |
| Posts published through this server | |
| Record a post's impressions and reactions by hand |
|
| Likes, comments, shares for a post (Community Management API) | |
| Delete a published post |
|
| React to or comment on a post |
|
| Carries your keyword to the waiting action | |
| Browser login for the reading tools | |
| Read your DMs | |
| Send a DM or connection request |
|
| Read profiles, search people | |
| Read company pages |
Settings
Set these next to the Client ID and Secret if you need them. Most people need none.
Variable | What it does |
| Where the browser session and diagnostics go (default |
| A folder holding an optional |
| Set to |
Troubleshooting
"Port 8585 is already in use" during login: something else is on that port. Close it and try again.
Login page says the redirect does not match: the redirect URL in step 1.4 must be exactly
http://localhost:8585/callback.Claude does not see the tools: quit and reopen Claude Code, then run
claude mcp listand checklinkedinis connected.Something failed mid-action: a report is written to
~/.linkedin-mcp/diagnostics/.
This server cannot be deployed
Maintenance
Related MCP Connectors
Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.
A hosted LinkedIn MCP server for your own account. Paste one address into Claude, ChatGPT, Cursor or n8n to read your inbox, send messages and invitations, and search people. Free to start. Not made by LinkedIn.
PerfectPost is a LinkedIn content management platform. This MCP server gives AI assistants read and write access to a user's PerfectPost account: published posts with their engagement analytics, drafts lifecycle (create / edit / schedule), and LinkedIn profile data.
MCP server for LeadDelta — manage LinkedIn connections and CRM data via AI assistants.
Related MCP Servers
- AlicenseAqualityDmaintenanceFully featured MCP server that provides automation tools for LinkedIn, supporting browser-based scraping and API-based operations for content management, media uploads, and reactions.63MIT
- AlicenseAqualityCmaintenanceMCP server for LinkedIn that enables AI agents to post, comment, like, and manage content on LinkedIn.1012 npm1MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for LinkedIn, enabling posting, liking, commenting, and profile retrieval via official OAuth 2.0. Features CLI, HTTP admin, and optional Telegram bot.14 npmMIT
- AlicenseNot gradedqualityCmaintenanceA personal-use remote MCP server that lets you post to LinkedIn, queue/schedule drafts, and pull your own post analytics from Claude.12 npmMIT