Skip to main content
Glama
AriOliv
by AriOliv

LinkedIn MCP

Servidor no oficial del Model Context Protocol para LinkedIn — lee tu perfil, red y conexiones, busca personas y empleos, y envía mensajes desde cualquier cliente MCP (Claude, etc.).

Funciona en dos modos:

  • HTTP + OAuth 2.1 (recomendado) — el servidor es un servidor de autorización OAuth 2.1 para clientes MCP y se conecta con la pantalla de consentimiento de OAuth de tres patas real de LinkedIn. Cada usuario inicia sesión en linkedin.com; el servidor nunca ve su contraseña.

  • stdio — un servidor local que lee un LINKEDIN_ACCESS_TOKEN del entorno. Útil para un solo usuario o para pruebas rápidas.

Esto refleja la arquitectura de autenticación de @aol/ifood-mcp y @aol/uber-mcp, intercambiando sus inicios de sesión de ingeniería inversa por el OAuth de primera clase de LinkedIn.


Herramientas

Herramienta

Endpoint de LinkedIn

Notas

linkedin_me

GET /v2/userinfo

Funciona con los ámbitos predeterminados openid profile email.

linkedin_network_stats

GET /v2/networkSizes/{urn}

Requiere r_1st_connections_size.

linkedin_connections

GET /v2/connections

Requiere un producto de conexiones aprobado.

linkedin_get_profile

GET /v2/people/{id}

Requiere un producto de perfil aprobado.

linkedin_search_people

GET /v2/search/people

Requiere un producto de búsqueda aprobado.

linkedin_search_jobs

GET /v2/jobs/search

Requiere un producto de empleos aprobado.

linkedin_send_message

POST /v2/messages

Requiere w_member_social (mensajería).

Acceso a la API de LinkedIn. De forma predeterminada, una aplicación estándar de LinkedIn solo otorga los ámbitos de OpenID Connect (openid profile email), por lo que linkedin_me funciona de inmediato. Las otras herramientas llaman a endpoints que LinkedIn restringe detrás de productos aprobados (Sign In, Marketing, Talent Solutions, etc.). Hasta que tu aplicación sea aprobada para esos, esas herramientas devolverán 403 — esto es una restricción de la plataforma de LinkedIn, no un error. Agrega los ámbitos concedidos a LINKEDIN_SCOPES una vez aprobado.


Related MCP server: Linkd MCP Server

Inicio rápido (HTTP + OAuth)

1. Crea una aplicación de LinkedIn

  1. Ve a https://www.linkedin.com/developers/appsCrear aplicación.

  2. En Autenticación, copia el Client ID y el Client Secret.

  3. Agrega tu callback en URLs de redirección autorizadas: http://localhost:3000/login/callback (o PUBLIC_URL + /login/callback).

  4. En Productos, agrega Iniciar sesión con LinkedIn usando OpenID Connect (y cualquier otro que necesites).

2. Configura

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. Ejecuta

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

Apunta tu cliente MCP a http://localhost:3000/mcp. En la primera conexión, ejecuta el flujo OAuth 2.1, te redirige a LinkedIn para iniciar sesión y luego llama a las herramientas en tu nombre.


Inicio rápido (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

Configuración del cliente MCP:

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

Cómo funciona el puente OAuth

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
  • Los tokens de acceso MCP son JWTs HS256 de corta duración firmados con MCP_JWT_SECRET, vinculados a la audiencia del recurso /mcp (RFC 8707), con tokens de actualización rotativos.

  • Los tokens de LinkedIn posteriores se actualizan de forma transparente cuando la aplicación está aprobada para tokens de actualización; de lo contrario, el usuario se vuelve a autenticar.

  • Todo el estado está en memoria (proceso único). Cambia los almacenes en src/http/store.ts por Redis/DB para escalar horizontalmente.


Entorno

Variable

Requerido

Predeterminado

Propósito

PORT

3000

Puerto HTTP.

PUBLIC_URL

HTTP

http://localhost:PORT

URL que ven el cliente y LinkedIn.

MCP_JWT_SECRET

HTTP

Clave HS256 (≥32 caracteres). openssl rand -hex 32.

LINKEDIN_CLIENT_ID

HTTP

ID de cliente de la aplicación de LinkedIn.

LINKEDIN_CLIENT_SECRET

HTTP

Secreto de cliente de la aplicación de LinkedIn.

LINKEDIN_SCOPES

openid profile email

Ámbitos OAuth a solicitar.

LINKEDIN_REDIRECT_URI

PUBLIC_URL/login/callback

Anulación del callback OAuth.

LINKEDIN_ACCESS_TOKEN

stdio

Token para el modo stdio.

LINKEDIN_API_BASE

https://api.linkedin.com

Anulación del host de la API.

LINKEDIN_VERSION

Encabezado LinkedIn-Version (YYYYMM) para /rest.


Estructura

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

Scripts

Script

Acción

npm run build

Compila a build/.

npm run start:http

Ejecuta el servidor HTTP/OAuth.

npm start

Ejecuta el servidor stdio.

npm run dev

tsx watch del servidor HTTP.

npm run dev:stdio

tsx watch del servidor stdio.

npm run typecheck

tsc --noEmit.

Licencia

MIT. Consulta 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