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 Post a quick update about my new role"
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
LinkedIn MCP Server — post content, share articles, and manage your LinkedIn profile through Claude using the official LinkedIn API.
6 tools for creating posts, sharing articles, managing your profile, and more — powered by the official LinkedIn REST API with OAuth 2.0.
Tools
Tool | Description | Permissions Required |
| Get your LinkedIn profile information | Basic (OpenID) |
| Create a text post (up to 3000 chars) | Share on LinkedIn |
| Share an article link with commentary | Share on LinkedIn |
| Get your recent posts | Share on LinkedIn ⚠️ |
| Delete a post by ID | Share on LinkedIn |
| Get your total connection count | ⚠️ May need partner access |
⚠️ API Limitations:
linkedin_get_postsandlinkedin_get_connections_countuse LinkedIn endpoints that may require elevated or partner-level API access depending on your app's approval status. The core tools (get profile, create post, share article, delete post) work with standard access.
Related MCP server: linkedin-mcp-server
Setup
LinkedIn requires creating a Developer App to get OAuth credentials. This takes about 10 minutes.
Step 1 — Create a LinkedIn Developer App
Click "Create app"
Fill in the required fields:
App name: e.g.
My LinkedIn MCPLinkedIn Page: You need a LinkedIn company page linked — create a simple one at linkedin.com/company/setup/new if you don't have one
App logo: Upload any image (required)
Agree to the terms and click "Create app"
Step 2 — Configure OAuth Redirect URL
In your new app, go to the "Auth" tab
Under "OAuth 2.0 settings", find "Authorized redirect URLs for your app"
Click "Add redirect URL" and enter exactly:
http://127.0.0.1:3000/callbackClick "Update"
Copy your Client ID and Client Secret from this page — you'll need them next
Step 3 — Request API Products
Go to the "Products" tab in your app
Request access to both of these products:
Sign In with LinkedIn using OpenID Connect — click "Request access" → Select → Agree
Share on LinkedIn — click "Request access" → Select → Agree
Both are typically approved instantly for personal use
Step 4 — Install & Configure
# Install globally
npm install -g @dev-hitesh-gupta/linkedin-mcp-server
# Create config directory and add your credentials
mkdir -p ~/.linkedin-mcp
cat > ~/.linkedin-mcp/credentials.json << 'EOF'
{
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET"
}
EOF
# Authenticate — opens browser for LinkedIn sign-in
linkedin-mcp-server authYour access token is saved to ~/.linkedin-mcp/token.json and valid for 60 days.
Step 5 — Add to Claude Code
claude mcp add linkedin -- npx @dev-hitesh-gupta/linkedin-mcp-serverOr manually in your Claude config (~/.claude/claude_desktop_config.json):
{
"mcpServers": {
"linkedin": {
"command": "npx",
"args": ["@dev-hitesh-gupta/linkedin-mcp-server"]
}
}
}Usage Examples
Create a post:
Post to LinkedIn: "Just shipped a new open-source MCP server for LinkedIn automation! Check it out. #opensource #ai"Share an article:
Share this article on LinkedIn: https://example.com/article
My commentary: "Great read on the future of AI tooling"Control visibility:
Value | Who sees it |
| Everyone on LinkedIn (default) |
| Your 1st-degree connections only |
| Any logged-in LinkedIn member |
Re-authentication
LinkedIn tokens expire after 60 days. Re-authenticate when needed:
rm ~/.linkedin-mcp/token.json
linkedin-mcp-server authData & Auth Storage
All data is stored locally:
~/.linkedin-mcp/
├── credentials.json # Your LinkedIn app Client ID + Secret
└── token.json # OAuth access token (expires in 60 days)Security: Never commit these files to version control.
Troubleshooting
"Not authenticated" error:
linkedin-mcp-server auth"Unable to determine member URN": Ensure the Sign In with LinkedIn using OpenID Connect product is approved in your app's Products tab.
Post creation fails: Ensure the Share on LinkedIn product is approved. Check the Products tab in your LinkedIn Developer app.
"Access blocked" during sign-in: Your LinkedIn app may still be under review. Check the Products tab for approval status.
Token expired:
rm ~/.linkedin-mcp/token.json && linkedin-mcp-server authlinkedin_get_posts or linkedin_get_connections_count returns errors:
These tools use LinkedIn API endpoints that require elevated permissions not available with standard developer access. This is a LinkedIn API restriction.
Requirements
Node.js 18+
A LinkedIn account
LinkedIn Developer App with OAuth credentials (see setup above)
License
MIT — Hitesh Gupta
Available Tools
6 toolslinkedin_create_article_postA
Create a LinkedIn post with an article/link. Great for sharing blog posts, news articles, or any web content with your network.
Inputs: text (required), articleUrl (required), title, visibility, +1 more.
linkedin_create_postA
Create a text post on LinkedIn. Supports different visibility options: PUBLIC (everyone), CONNECTIONS (1st degree connections only), or LOGGED_IN (LinkedIn members only).
Inputs: text (required), visibility.
linkedin_delete_postA
Delete a LinkedIn post by its ID.
Inputs: postId (required).
linkedin_get_connections_countA
Get the number of LinkedIn connections. Note: This may require additional API permissions.
Inputs: no named parameters.
linkedin_get_postsA
Get the authenticated user's recent LinkedIn posts. Note: This may require additional API permissions.
Inputs: count.
linkedin_get_profileA
Get the authenticated user's LinkedIn profile information including name, email, and profile picture.
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 6 tools
Each tool targets a distinct operation: creating article vs text posts, deleting posts, retrieving posts, profile, and connections count. No overlap in functionality.
All tools follow a consistent 'linkedin_verb_noun' pattern (e.g., linkedin_create_post, linkedin_get_profile), making the naming predictable and clear.
With 6 tools covering posting, reading, and profile operations, the count is well-scoped for a focused LinkedIn server, not too many or too few.
Covers core post creation, deletion, and retrieval, but lacks update post and more detailed connection data, leaving notable gaps for a complete LinkedIn interaction surface.
Maintenance
Related MCP Connectors
Publish and schedule LinkedIn posts from your AI assistant.
Save, illustrate, schedule, and publish LinkedIn posts from Claude, ChatGPT, or any MCP client.
Draft LinkedIn posts in your voice, then schedule or publish them through LinkedIn's official API.
Lets Claude and AI agents post and schedule on Instagram, TikTok, LinkedIn and 5 more networks.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceEnables posting text and media content directly to LinkedIn from Claude Desktop with support for authentication and visibility controls.12MIT
- AlicenseAqualityDmaintenancePost to LinkedIn from Claude — create posts, upload images, edit/delete posts, and manage company pages via natural language. Uses the official LinkedIn REST API with OAuth 2.0.9149 npm2MIT
- AlicenseAqualityDmaintenanceEnables Claude Desktop to manage your LinkedIn profile and company pages, including posting, reading posts, and fetching profile information.7149 npm4MIT
- AlicenseAqualityDmaintenanceEnables Claude to interact with LinkedIn for posting, commenting, sharing media, and viewing feed and profile.9149 npm3MIT