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 | |------|-------------|---------------------| | linkedin_get_profile | Get your LinkedIn profile information | Basic (OpenID) | | linkedin_create_post | Create a text post (up to 3000 chars) | Share on LinkedIn | | linkedin_create_article_post | Share an article link with commentary | Share on LinkedIn | | linkedin_get_posts | Get your recent posts | Share on LinkedIn ⚠️ | | linkedin_delete_post | Delete a post by ID | Share on LinkedIn | | linkedin_get_connections_count | 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.
---
Setup
LinkedIn requires creating a Developer App to get OAuth credentials. This takes about 10 minutes.
Step 1 — Create a LinkedIn Developer App
- Go to developer.linkedin.com/apps
- Click "Create app"
- Fill in the required fields:
- App name: e.g.
My LinkedIn MCP - LinkedIn 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/callback
- Click "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 auth
Your 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-server
Or 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 | |-------|-------------| | PUBLIC | Everyone on LinkedIn (default) | | CONNECTIONS | Your 1st-degree connections only | | LOGGED_IN | 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 auth
---
Data & 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: ``bash 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: ``bash rm ~/.linkedin-mcp/token.json && linkedin-mcp-server auth ``
linkedin_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











