Skip to main content
Glama
AriOliv
by AriOliv

LinkedIn MCP

Inoffizieller Model Context Protocol-Server für LinkedIn – lies dein Profil, dein Netzwerk und deine Kontakte, suche Personen und Jobs und sende Nachrichten von jedem MCP-Client (Claude usw.).

Er läuft in zwei Modi:

  • HTTP + OAuth 2.1 (empfohlen) – der Server ist ein OAuth-2.1-Autorisierungsserver für MCP-Clients und stellt eine Brücke zum echten 3-legged OAuth von LinkedIn mit Zustimmungsbildschirm her. Jeder Benutzer meldet sich auf linkedin.com an; der Server sieht niemals sein Passwort.

  • stdio – ein lokaler Server, der ein LINKEDIN_ACCESS_TOKEN aus der Umgebung liest. Praktisch für einen einzelnen Benutzer oder schnelle Tests.

Dies spiegelt die Auth-Architektur von @aol/ifood-mcp und @aol/uber-mcp wider, wobei deren reverse-engineered Logins durch das erstklassige OAuth von LinkedIn ersetzt werden.


Tools

Tool

LinkedIn-Endpunkt

Hinweise

linkedin_me

GET /v2/userinfo

Funktioniert mit den Standard-Scopes openid profile email.

linkedin_network_stats

GET /v2/networkSizes/{urn}

Benötigt r_1st_connections_size.

linkedin_connections

GET /v2/connections

Benötigt ein genehmigtes Connections-Produkt.

linkedin_get_profile

GET /v2/people/{id}

Benötigt ein genehmigtes Profil-Produkt.

linkedin_search_people

GET /v2/search/people

Benötigt ein genehmigtes Such-Produkt.

linkedin_search_jobs

GET /v2/jobs/search

Benötigt ein genehmigtes Jobs-Produkt.

linkedin_send_message

POST /v2/messages

Benötigt w_member_social (Messaging).

LinkedIn-API-Zugriff. Standardmäßig gewährt eine normale LinkedIn-App nur die OpenID-Connect-Scopes (openid profile email), sodass linkedin_me sofort funktioniert. Die anderen Tools rufen Endpunkte auf, die LinkedIn hinter genehmigten Produkten (Sign In, Marketing, Talent Solutions usw.) versteckt. Bis deine App für diese genehmigt ist, geben diese Tools 403 zurück – das ist eine LinkedIn-Plattformbeschränkung, kein Fehler. Füge die gewährten Scopes nach der Genehmigung zu LINKEDIN_SCOPES hinzu.


Related MCP server: Linkd MCP Server

Schnellstart (HTTP + OAuth)

1. Eine LinkedIn-App erstellen

  1. Gehe zu https://www.linkedin.com/developers/appsApp erstellen.

  2. Kopiere unter Auth die Client-ID und das Client-Secret.

  3. Füge deinen Callback unter Autorisierte Weiterleitungs-URLs hinzu: http://localhost:3000/login/callback (oder PUBLIC_URL + /login/callback).

  4. Füge unter Produkte Mit LinkedIn über OpenID Connect anmelden hinzu (und alle anderen, die du benötigst).

2. Konfigurieren

cp .env.example .env
# then edit .env:
#   MCP_JWT_SECRET=$(openssl rand -hex 32)
#   LINKEDIN_CLIENT_ID=...
#   LINKEDIN_CLIENT_SECRET=...
#   PUBLIC_URL=http://localhost:3000

3. Ausführen

npm install
npm run build
npm run start:http      # or: npm run dev  (tsx watch)

Richte deinen MCP-Client auf http://localhost:3000/mcp aus. Bei der ersten Verbindung führt er den OAuth-2.1-Flow aus, leitet dich zu LinkedIn weiter, um dich anzumelden, und ruft dann Tools in deinem Namen auf.


Schnellstart (stdio)

cp .env.example .env
# set LINKEDIN_ACCESS_TOKEN=... (e.g. from the LinkedIn developer console token generator)
npm install && npm run build
npm start

MCP-Client-Konfiguration:

{
  "mcpServers": {
    "linkedin": {
      "command": "node",
      "args": ["/absolute/path/to/linkedin-mcpserver/build/index.js"],
      "env": { "LINKEDIN_ACCESS_TOKEN": "AQV..." }
    }
  }
}

So funktioniert die OAuth-Brücke

MCP client ──/authorize──▶ this server ──302──▶ /login ──▶ /login/start
                                                              │
                                                    302 ▼ linkedin.com/oauth/v2/authorization
                                              user signs in on LinkedIn
                                                              │
      /login/callback ◀──302 code&state──────────────────────┘
            │  exchange code → LinkedIn access + refresh token
            │  fetch /v2/userinfo → stable member id (sub)
            │  store tokens per‑user, mint an MCP auth code
            ▼
MCP client ──/token──▶ this server ──▶ HS256 JWT (audience‑bound to /mcp)
MCP client ──/mcp (Bearer JWT)──▶ tools call LinkedIn with the member's token
  • MCP-Zugriffstokens sind kurzlebige HS256-JWTs, signiert mit MCP_JWT_SECRET, zielgebunden an die /mcp-Ressource (RFC 8707), mit rotierenden Refresh-Tokens.

  • Downstream-LinkedIn-Tokens werden transparent aktualisiert, wenn die App für Refresh-Tokens genehmigt ist; andernfalls authentifiziert sich der Benutzer erneut.

  • Der gesamte Zustand befindet sich im Speicher (einzelner Prozess). Tausche die Stores in src/http/store.ts gegen Redis/DB aus, um horizontal zu skalieren.


Umgebung

Var

Erforderlich

Standard

Zweck

PORT

3000

HTTP-Port.

PUBLIC_URL

HTTP

http://localhost:PORT

URL, die Client + LinkedIn sehen.

MCP_JWT_SECRET

HTTP

HS256-Schlüssel (≥32 Zeichen). openssl rand -hex 32.

LINKEDIN_CLIENT_ID

HTTP

LinkedIn-App-Client-ID.

LINKEDIN_CLIENT_SECRET

HTTP

LinkedIn-App-Client-Secret.

LINKEDIN_SCOPES

openid profile email

Anzufragende OAuth-Scopes.

LINKEDIN_REDIRECT_URI

PUBLIC_URL/login/callback

OAuth-Callback-Überschreibung.

LINKEDIN_ACCESS_TOKEN

stdio

Token für den stdio-Modus.

LINKEDIN_API_BASE

https://api.linkedin.com

API-Host-Überschreibung.

LINKEDIN_VERSION

LinkedIn-Version-Header (YYYYMM) für /rest.


Aufbau

src/
  index.ts                 stdio server + tool catalog + executeTool + TokenProvider
  http-server.ts           remote MCP server (Streamable HTTP + OAuth 2.1)
  http/
    provider.ts            LinkedInOAuthProvider (OAuthServerProvider, HS256 JWTs)
    login-router.ts        /login → LinkedIn consent → /login/callback
    linkedin-auth.ts       LinkedIn OAuth client (authorize / token / userinfo)
    session-provider.ts    per-user token lookup + transparent refresh
    store.ts               in-memory OAuth + downstream token stores

Skripte

Skript

Aktion

npm run build

Kompiliere nach build/.

npm run start:http

Starte den HTTP/OAuth-Server.

npm start

Starte den stdio-Server.

npm run dev

tsx watch den HTTP-Server.

npm run dev:stdio

tsx watch den stdio-Server.

npm run typecheck

tsc --noEmit.

Lizenz

MIT. Siehe LICENSE.

Install Server
A
license - permissive license
A
quality
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.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol server that enables seamless interaction with LinkedIn for job applications, profile retrieval, feed browsing, and resume analysis through natural language commands.
    31
  • A
    license
    A
    quality
    D
    maintenance
    An unofficial Model Context Protocol server that enables programmatic access to LinkedIn data through tools like user search, company search, profile enrichment, and contact retrieval.
    8
    7
    17
    3
    ISC
  • F
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive Model Context Protocol server that enables AI assistants to interact with LinkedIn APIs for profile management, content creation, networking, messaging, and analytics.
    2
  • A
    license
    A
    quality
    F
    maintenance
    An unofficial Model Context Protocol server that provides LinkedIn tools for searching users, enriching profiles, retrieving contact information, and conducting deep research through natural language interfaces.
    5
    13
    5
    MIT

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

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/AriOliv/linkedin-mcp'

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