Skip to main content
Glama
jahnavi-yarramsetty

LinkedIn MCP Server

LinkedIn MCP Server

Read your own LinkedIn posts and articles inside Claude Desktop (or any MCP host) via the official LinkedIn OAuth 2.0 API.

Compliance — This server uses only LinkedIn's official REST API with user-granted OAuth tokens. It accesses only the authenticated user's own data, performs no scraping, and stores no data beyond the local access token. Use is subject to the LinkedIn API Terms of Use.


Tools

Tool

Description

authenticate()

Start the OAuth flow — returns an auth URL to open in your browser

check_auth_status()

Verify the stored token is still valid

get_profile()

Return your LinkedIn profile (name, email, picture)

get_my_posts(count)

Fetch your most recent posts

get_my_articles(count)

Fetch your long-form articles (filtered from posts)

get_post_detail(post_id)

Full content of a single post by URN

revoke_auth()

Delete the stored token


Related MCP server: LinkedIn MCP Server

Setup

1. LinkedIn Developer App

  1. Go to linkedin.com/developers/apps and create an app (or use an existing one).

  2. Under Auth, add http://localhost:8080/callback as an Authorized Redirect URL.

  3. Under Products, add:

    • Sign In with LinkedIn using OpenID Connect — provides openid, profile, email

    • Community Management API — provides r_member_social (required for reading posts)

  4. Copy your Client ID and Client Secret.

2. Install dependencies

pip install -e .

Or without installing as a package:

pip install fastmcp httpx python-dotenv

3. Configure credentials

cp .env.example .env

Edit .env:

LINKEDIN_CLIENT_ID=your_client_id
LINKEDIN_CLIENT_SECRET=your_client_secret
LINKEDIN_REDIRECT_URI=http://localhost:8080/callback

4. Configure Claude Desktop

Edit %APPDATA%\Claude\claude_desktop_config.json (Windows) or ~/Library/Application Support/Claude/claude_desktop_config.json (macOS):

{
  "mcpServers": {
    "linkedin-posts": {
      "command": "python",
      "args": ["/absolute/path/to/server.py"],
      "cwd": "/absolute/path/to/linkedin-mcp"
    }
  }
}

Restart Claude Desktop after saving.

5. Authenticate

In Claude Desktop, ask:

"Call authenticate"

Open the returned URL in your browser, sign in, and grant access. The token is saved to ~/.linkedin_mcp_token.json automatically. Then try:

"Call get_my_posts"


Development / testing

Run the server with the MCP Inspector (browser UI for testing tools without Claude Desktop):

fastmcp dev inspector server.py --with-requirements requirements.txt

If fastmcp is not on your PATH, use the full path:

# Windows
C:\Users\<YOU>\AppData\Roaming\Python\Python3XX\Scripts\fastmcp.exe dev inspector server.py

Token lifecycle

  • LinkedIn access tokens are valid for 60 days.

  • There is no refresh token for standard apps — run revoke_auth() then authenticate() when the token expires.

  • The token is stored at ~/.linkedin_mcp_token.json (outside this repo).


Troubleshooting

Symptom

Fix

Tools not visible in Claude Desktop

Fully quit and reopen Claude Desktop; check Settings → Developer for MCP logs

get_my_posts returns 403

Add Community Management API to your LinkedIn app products, then re-authenticate

ModuleNotFoundError

Run pip install fastmcp httpx python-dotenv

Port 8080 already in use

Change LINKEDIN_REDIRECT_URI in .env to another port and update your LinkedIn app's redirect URL list


License

MIT

A
license - permissive license
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/jahnavi-yarramsetty/linkedin-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server