linkedin-mcp-server
Enables posting content, sharing articles, and managing your LinkedIn profile through Claude using the official LinkedIn API with OAuth 2.0.
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 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:
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 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
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.