LinkedIn MCP for OpenWorker
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 MCP for OpenWorkerShow my LinkedIn profile"
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 for OpenWorker
A local-first LinkedIn MCP server for OpenWorker. It runs over stdio, keeps tokens in environment variables or explicit tool inputs, and exposes small, approval-friendly tools for LinkedIn profile reads and post operations.
Tools
linkedin_start_oauth_flowstarts the browser OAuth flow, captures the localhost callback, exchanges the code, and stores the token locally.linkedin_auth_statusreports whether a stored token exists and when it expires.linkedin_logoutdeletes the stored token.linkedin_exchange_authorization_codeexchanges an OAuth code and stores the token, for manual fallback flows.linkedin_get_my_profilereads the authenticated member profile from/v2/userinfo.linkedin_create_text_postpublishes or drafts a text-only post through/rest/posts.linkedin_get_postretrieves a post by URN.linkedin_find_posts_by_authorlists posts for a member or organization URN.
Related MCP server: linkedin-mcp-server
Setup
npm i linkedin-mcp-openworkerCreate a LinkedIn developer app and request the products/scopes you need:
openid profile emailfor Sign In with LinkedIn using OpenID Connect.w_member_socialto publish as the authenticated member.Organization posting requires LinkedIn-approved organization scopes such as
w_organization_social.
OpenWorker supports MCP servers through Manage -> Integrations using the same mcpServers JSON format as Claude Desktop and Cursor. After building, add a server like this:
{
"mcpServers": {
"linkedin": {
"command": "npm",
"args": ["linkedin-mcp-openworker"],
"env": {
"LINKEDIN_CLIENT_ID": "paste-your-linkedin-client-id-here",
"LINKEDIN_CLIENT_SECRET": "paste-your-linkedin-client-secret-here",
"LINKEDIN_REDIRECT_URI": "http://127.0.0.1:33333/linkedin/oauth/callback",
"LINKEDIN_VERSION": "202607"
}
}
}
}LINKEDIN_VERSION defaults to 202607, matching LinkedIn Marketing API versioning guidance current at the time this project was created.
OAuth Flow
In your LinkedIn developer app, add this authorized redirect URL:
http://127.0.0.1:33333/linkedin/oauth/callbackAdd the MCP server to OpenWorker with
LINKEDIN_CLIENT_ID,LINKEDIN_CLIENT_SECRET, andLINKEDIN_REDIRECT_URI.Ask OpenWorker to run
linkedin_start_oauth_flow.The MCP starts a localhost callback server, opens your browser to LinkedIn, validates the returned
state, exchanges the authorization code, and stores the token at:
~/.linkedin-mcp-openworker/token.jsonAfter that, LinkedIn tools automatically use the stored token. Use
linkedin_auth_statusto inspect token status andlinkedin_logoutto delete it.
The default managed flow uses LinkedIn's regular 3-legged OAuth authorization endpoint:
https://www.linkedin.com/oauth/v2/authorizationThat is the endpoint LinkedIn documents for OpenID Connect. It requests openid profile email w_member_social by default, exchanges the authorization code with your client_secret, and stores the returned access token and ID token metadata locally. Do not use auth_method: "pkce" with OpenID scopes; LinkedIn rejects that combination with Open ID permission is not supported for PKCE flows.
LinkedIn's general 3-legged OAuth documentation says redirect URLs should be HTTPS. If LinkedIn rejects the localhost callback URL for your app, use an HTTPS callback/tunnel URL that forwards to this machine and set LINKEDIN_REDIRECT_URI to the exact URL registered in the LinkedIn Developer Portal.
By default, OAuth tools redact tokens in tool results. Pass return_access_token: true only when you explicitly want a result to include token values.
Notes
LinkedIn API access depends on the products approved for your developer app. A token without w_member_social cannot publish member posts, and organization posts require organization permissions plus an authenticated member with the right page role.
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-qualityDmaintenanceMCP server for LinkedIn, enabling posting, liking, commenting, and profile retrieval via official OAuth 2.0. Features CLI, HTTP admin, and optional Telegram bot.10MIT
- Flicense-qualityCmaintenanceMCP server for LinkedIn API integration. Enables authentication, profile access, connections, search, messaging, and feed management via OAuth2.
- Alicense-qualityBmaintenanceMCP server for AI-native LinkedIn prospecting. It enables lead research, audience building, conversation management, and controlled outreach actions such as messaging and publishing through an OAuth-protected remote endpoint.2MIT
- Alicense-qualityBmaintenanceMCP server that lets you publish text and image posts to LinkedIn, fetch your profile, and check auth status using natural language.MIT
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.
linkedin-humblebrag MCP — wraps StupidAPIs (requires X-API-Key)
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/Mohamed-Godaa/linkedin-mcp-openworker'
If you have feedback or need assistance with the MCP directory API, please join our Discord server