LinkedIn MCP Server

MCP server for LinkedIn's official API - create posts, manage events, and interact with LinkedIn through AI assistants

Local serverstdioGo

What is the LinkedIn MCP server?

MCP server for LinkedIn's official API - create posts, manage events, and interact with LinkedIn through AI assistants. The linkedin mcp server wraps that behind the Model Context Protocol, so an assistant can use it through 14 defined tools rather than through you.

What it actually does

A Model Context Protocol (MCP) server that provides AI assistants with access to LinkedIn's official API. Create posts, manage events, and interact with LinkedIn - all through natural language via any MCP-compatible client.

Its toolset

Everything the assistant can do here goes through one of these:

  • linkedin_auth_start — Start OAuth 2.0 authentication flow
  • linkedin_auth_callback — Complete OAuth with authorization code
  • linkedin_auth_logout — Revoke token and log out
  • linkedin_get_my_profile — Get your LinkedIn profile (name, headline, photo, email)
  • linkedin_get_my_email — Get your email address
  • linkedin_get_auth_status — Check authentication status
  • linkedin_get_rate_limits — View API rate limit usage
  • linkedin_create_post — Create text, article, or image posts
  • linkedin_delete_post — Delete your posts
  • linkedin_create_comment — Comment on posts
  • linkedin_react_to_post — React to posts (like, celebrate, support, love, insightful, funny)
  • linkedin_upload_image — Upload images for posts

Adding it to your client

The server ships on npm as npm, so your MCP client can launch it on demand — there is no separate build step. Add the server block to your client's configuration, restart it, and the tools register themselves.

Configuration

You will need 4 environment variables: LINKEDIN_CLIENT_ID, LINKEDIN_CLIENT_SECRET, LINKEDIN_API_BASE_URL, LINKEDIN_AUTH_BASE_URL. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.

  1. Node.js 20+ 2. LinkedIn Developer App (see setup steps below)

When to reach for it

Among the team communication options, the useful question is rarely "what can it do" but "what does it cost you to run" — permissions, credentials, and how much of your context its toolset consumes. LinkedIn's toolset — linkedin_auth_start, linkedin_auth_callback, linkedin_auth_logout and 11 more — is a fair guide to whether it matches your workflow. It is maintained by souravdasbiswas; worth a glance at recent repository activity before you build anything load-bearing on it.

We check each listing at SyncDev against the project's documentation before it goes live — if something here drifts out of date, it is a bug worth reporting.

Caveats

  • It runs with your machine's permissions. That is convenient and also the reason to think about what you point it at before you approve a tool call.
  • With 14 tools registered it takes up a noticeable share of the context window; turn it off in projects that never touch LinkedIn.
  • Missing credentials fail quietly in some clients — if no tools show up, check the environment block first.
  • MCP clients confirm each tool call by default. Leave that on until you have watched what the linkedin mcp server does with a few real requests.

Available tools

ToolWhat it does
linkedin_auth_startStart OAuth 2.0 authentication flow
linkedin_auth_callbackComplete OAuth with authorization code
linkedin_auth_logoutRevoke token and log out
linkedin_get_my_profileGet your LinkedIn profile (name, headline, photo, email)
linkedin_get_my_emailGet your email address
linkedin_get_auth_statusCheck authentication status
linkedin_get_rate_limitsView API rate limit usage
linkedin_create_postCreate text, article, or image posts
linkedin_delete_postDelete your posts
linkedin_create_commentComment on posts
linkedin_react_to_postReact to posts (like, celebrate, support, love, insightful, funny)
linkedin_upload_imageUpload images for posts
linkedin_list_my_postsList posts created through this server with URNs for reference
linkedin_create_eventCreate LinkedIn events

How to install the LinkedIn MCP server

Or add manually to `~/.claude.json`:

```json
{
  "mcpServers": {
    "linkedin": {
      "command": "node",
      "args": ["/path/to/linkedin-mcp-server/dist/index.js"],
      "env": {
        "LINKEDIN_CLIENT_ID": "your_client_id",
        "LINKEDIN_CLIENT_SECRET": "your_client_secret"
      }
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Configuration

  1. Node.js 20+ 2. LinkedIn Developer App (see setup steps below)
VariableDescriptionRequired
LINKEDIN_CLIENT_IDConfiguration value read at startup.Optional
LINKEDIN_CLIENT_SECRETCredential the server authenticates with.Yes
LINKEDIN_API_BASE_URLEndpoint or connection string the server talks to.Yes
LINKEDIN_AUTH_BASE_URLEndpoint or connection string the server talks to.Yes

Example prompts to try

  • Use LinkedIn to linkedin auth start.
  • Use LinkedIn to linkedin auth callback.
  • Use LinkedIn to linkedin auth logout.

Frequently asked questions

The server uses OAuth 2.0 with a redirect URI (`http://localhost:3000/callback`). The assistant generates an authorization URL; you open it in a browser, authorize the app, then copy the redirect URL (which shows a “page not found” error) back to the assistant. The assistant extracts the code and state to complete the flow. The token is stored locally and persists across server restarts for up to 60 days.