linkedin-mcp-server

linkedin-mcp-server

Enables posting content, sharing articles, and managing your LinkedIn profile through Claude using the official LinkedIn API with OAuth 2.0.

Category
Visit Server

README

linkedin-mcp-server

LinkedIn MCP Server — post content, share articles, and manage your LinkedIn profile through Claude using the official LinkedIn API.

npm version License: MIT Node.js

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_posts and linkedin_get_connections_count use 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

  1. Go to developer.linkedin.com/apps
  2. Click "Create app"
  3. 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)
  4. Agree to the terms and click "Create app"

Step 2 — Configure OAuth Redirect URL

  1. In your new app, go to the "Auth" tab
  2. Under "OAuth 2.0 settings", find "Authorized redirect URLs for your app"
  3. Click "Add redirect URL" and enter exactly:
    http://127.0.0.1:3000/callback
    
  4. Click "Update"
  5. Copy your Client ID and Client Secret from this page — you'll need them next

Step 3 — Request API Products

  1. Go to the "Products" tab in your app
  2. 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
  3. 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

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.

Official
Featured
TypeScript
Magic Component Platform (MCP)

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.

Official
Featured
Local
TypeScript
Audiense Insights MCP Server

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.

Official
Featured
Local
TypeScript
VeyraX MCP

VeyraX MCP

Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.

Official
Featured
Local
graphlit-mcp-server

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.

Official
Featured
TypeScript
Kagi MCP Server

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.

Official
Featured
Python
E2B

E2B

Using MCP to run code via e2b.

Official
Featured
Neon Database

Neon Database

MCP server for interacting with Neon Management API and databases

Official
Featured
Exa Search

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.

Official
Featured
Qdrant Server

Qdrant Server

This repository is an example of how to create a MCP server for Qdrant, a vector search engine.

Official
Featured