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 Server Show me 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 Server
A comprehensive, containerized Model Context Protocol (MCP) server for LinkedIn. This professional-grade server allows large language models and agents to interact with LinkedIn's official REST API seamlessly. It provides granular tools to manage user profiles, handle network connections, author posts, and oversee organizations.
π Key Features
The project leverages a highly modular architecture, making it easy to extend and maintain:
π€ Profile Management (
src/tools/profile)Retrieve authenticated user profile information (
get_my_profile).
π Content Creation (
src/tools/content)Share simple text updates to the user's feed (
create_text_post).Share rich articles with URL and descriptive commentary (
create_article_post).
π Network Management (
src/tools/network)View and list 1st-degree connections (
get_connections) (requiresr_networkpermission).
π’ Organization Management (
src/tools/organization)List the company pages and organizations you administer (
get_organizations).
Related MCP server: LinkedIn MCP Server
π Prerequisites
To run this server, you will need:
LinkedIn Developer Account: An application registered in the LinkedIn Developer Portal.
Access Token: An OAuth 2.0 Access Token with necessary scopes (e.g.,
w_member_social,r_liteprofile,r_organization_admin).Docker (Optional but recommended for robust execution).
Node.js v20+ (Required if running natively without Docker).
π οΈ Installation & Setup
Option A: Using Docker (Recommended)
Containerization ensures the MCP server runs consistently regardless of your environment.
Build the Docker image:
docker build -t linkedin-mcp-server .Configure your MCP client (e.g.,
mcp.jsonfor Claude Desktop):{ "mcpServers": { "linkedin": { "command": "docker", "args": [ "run", "-i", "--rm", "-e", "LINKEDIN_ACCESS_TOKEN=your_linkedin_access_token_here", "linkedin-mcp-server" ] } } }
Option B: Running Locally
Install dependencies:
npm installBuild the TypeScript code:
npm run buildConfigure your MCP client:
{ "mcpServers": { "linkedin": { "command": "node", "args": ["/absolute/path/to/Linekedin_MCP_server/build/index.js"], "env": { "LINKEDIN_ACCESS_TOKEN": "your_linkedin_access_token_here" } } } }
π Available Tools Reference
get_my_profile: Fetches the currently authenticated user's profile details.create_text_post: Posts a plain-text status update on the LinkedIn feed.create_article_post: Shares a URL to an article with a customized title and description.get_connections: Retrieves 1st-degree connections.get_organizations: Gets a list of LinkedIn pages/organizations that the authenticated user manages.
π‘οΈ Troubleshooting
401 Unauthorized: Ensure your
LINKEDIN_ACCESS_TOKENis correct, well-formed, and has not expired.403 Forbidden: Your LinkedIn App lacks the necessary permissions for the endpoint. Check your app's authorized "Products" in the LinkedIn Developer Portal and ensure your token includes the right scopes.
π Architecture
The project is split cleanly into isolated modules:
src/index.ts: The MCP Server entry point.src/linkedin-client.ts: The robust API wrapper usingaxios.src/tools/*: Directory containing individually exported toolsets.
Available Tools
5 toolscreate_article_postB
Share an article with a URL and description.
Inputs: text (required), articleUrl (required), articleTitle (required), articleDescription.
create_text_postC
Share a simple text update on the user's feed.
Inputs: text (required).
get_connectionsA
List the user's 1st-degree connections (requires r_network permission).
Inputs: limit.
get_my_profileB
Retrieve the authenticated user's LinkedIn profile information.
Inputs: no named parameters.
get_organizationsA
List organizations the user administers.
Inputs: no named parameters.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogβ¦
TDQS
Scored across 5 tools
Each tool has a clear and distinct purpose: two for posting (article vs text), three for retrieval (connections, profile, organizations). No overlap or ambiguity.
All tools follow a consistent verb_noun pattern (create_*, get_*), making the API predictable and easy to navigate.
5 tools is slightly lean for a social network API, but covers essential profile and posting operations. The set feels focused rather than incomplete.
Core operations are present (post, retrieve profile/connections/organizations), but notable gaps exist such as updating or deleting posts, commenting, or searching.
Related MCP Connectors
LinkedIn for AI agents: search people, read profiles, posts and connections via a connected account
LinkedIn for AI agents: inbox, invitations, Sales Navigator search, posts, jobs, quotas, webhooks.
LinkedIn actions for AI agents: search, messaging, posts and invites, as hosted MCP tools.
LinkedIn jobs, companies and people for AI agents, plus messages and invites via your own account.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to interact with LinkedIn for posting, commenting, liking, and managing connections via OAuth2 authentication.27 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables interaction with LinkedIn's Community Management API, allowing users to retrieve profile information and create posts via natural language.128 npm41MIT
- AlicenseBqualityCmaintenanceEnables AI agents to manage LinkedIn profiles, posts, connections, skills, education, and certifications through the LinkedIn API.18176 npm64MIT
- AlicenseBqualityCmaintenanceEnables AI agents with read/write access to LinkedIn API, including profile, posts, media, organizations, comments, reactions, and analytics.207 npmMIT