@dev-hitesh-gupta/linkedin-mcp-server
v1.0.0
Published
LinkedIn MCP Server — post, share articles, and manage your LinkedIn profile through Claude using the official LinkedIn API and OAuth 2.0. 6 tools for posting, profile access, and connection management.
Maintainers
Readme
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)
- App name: e.g.
- 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 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 |
|-------|-------------|
| 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 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
