Skip to main content
Glama
vahabcore

linkedin-mcp-server

by vahabcore

Servidor MCP de LinkedIn

License: MIT Node.js Version MCP Version Tests

Un servidor de producción listo para el Protocolo de Contexto de Modelo (MCP) que conecta agentes de IA (Google Gemini Spark, OpenAI Codex, Claude Desktop, Cursor, Windsurf) con la API REST de LinkedIn oficial.

Permite a los agentes de IA redactar y publicar actualizaciones de texto de forma autónoma, compartir vistas previas de enlaces enriquecidos, subir imágenes, crear encuestas interactivas, gestionar publicaciones existentes e interactuar con reacciones y comentarios en hilos.

https://github.com/user-attachments/assets/cda965be-d6a2-4a37-8d3c-29a68a9959e1


Características

  • Transporte MCP de Modo Dual:

    • Eventos enviados por el servidor (SSE) a través de GET /mcp y POST /messages para clientes como Google Gemini Spark y Claude.

    • HTTP Streamable a través de POST /mcp para entornos de ejecución modernos de línea de comandos y agentes como OpenAI Codex (rmcp).

  • 12 Herramientas Integrales:

    • Creación de Contenido: Actualizaciones de texto, tarjetas de vista previa de enlaces de artículos, subidas de imágenes binarias (pipeline de 3 pasos) y encuestas de múltiples opciones.

    • Gestión de Contenido: Eliminar publicaciones por URN, obtener estadísticas de participación (me gusta, comentarios, compartidos) y verificar conexiones de perfil de cuenta.

    • Interacción Social: Añadir reacciones (LIKE, CELEBRATE, LOVE, INSIGHTFUL, FUNNY, EMPATHY), eliminar reacciones, añadir comentarios, responder en hilos y eliminar comentarios.

  • Validación Robusta: Impulsada por esquemas Zod para todos los parámetros de entrada de las herramientas.

  • Preparado para la Empresa: Conjunto automatizado de pruebas unitarias y de integración con cobertura del 100% de los endpoints.


Related MCP server: @isteam/linkedin-mcp

Referencia de Herramientas

Herramienta

Categoría

Descripción

Parámetros

create_text_post

Contenido

Publicar una publicación de texto estándar en tu feed de LinkedIn

content (cadena, obligatorio)

create_link_post

Contenido

Publicar una publicación con una tarjeta de vista previa en la que se puede hacer clic

content (cadena), url (cadena, URL), title (cadena)

create_image_post

Contenido

Descargar una imagen desde una URL, subirla a LinkedIn y publicarla

content (cadena), image_url (cadena, URL)

create_poll_post

Contenido

Crear una encuesta con duración personalizable

question (cadena), options (array de cadenas, 2-4 elementos), duration (ONE_DAY, THREE_DAYS, ONE_WEEK, TWO_WEEKS)

delete_post

Gestión

Eliminar una publicación usando su URN de publicación

post_urn (cadena, ej. urn:li:ugcPost:...)

get_user_profile

Gestión

Recuperar los detalles del perfil autenticado (nombre, ID de miembro)

Ninguno

get_post_stats

Gestión

Obtener métricas de participación (me gusta, comentarios, compartidos)

post_urn (cadena)

react_to_post

Interacción

Añadir una reacción a una publicación

post_urn (cadena), reaction_type (LIKE, CELEBRATE, LOVE, INSIGHTFUL, FUNNY, EMPATHY)

remove_reaction

Interacción

Eliminar tu reacción de una publicación

post_urn (cadena)

comment_on_post

Interacción

Añadir un comentario de nivel superior en una publicación

post_urn (cadena), comment_text (cadena)

delete_comment

Interacción

Eliminar un comentario que hiciste

post_urn (cadena), comment_id (cadena)

reply_to_comment

Interacción

Publicar una respuesta en hilo a un comentario existente

post_urn (cadena), parent_comment_urn (cadena), reply_text (cadena)


Configuración y Autenticación

1. Configuración del Portal de Desarrolladores de LinkedIn

  1. Crea una aplicación de LinkedIn en el Portal de Desarrolladores de LinkedIn.

  2. En la pestaña Productos, solicita acceso a:

    • Compartir en LinkedIn (proporciona el permiso w_member_social)

    • Iniciar sesión con LinkedIn usando OpenID Connect (proporciona los permisos openid y profile)

  3. En la pestaña Auth, añade una URL de redirección (por ejemplo, https://httpbin.org/get o tu dominio).

2. Generar un Token de Acceso de Usuario

  1. Construye la URL de autorización en tu navegador:

    https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&scope=openid%20profile%20w_member_social
  2. Autoriza la aplicación y copia el parámetro de consulta code de la URL de redirección.

  3. Intercambia el código por un token de acceso de 60 días:

    curl -X POST https://www.linkedin.com/oauth/v2/accessToken \
      -d "grant_type=authorization_code" \
      -d "code=YOUR_AUTHORIZATION_CODE" \
      -d "client_id=YOUR_CLIENT_ID" \
      -d "client_secret=YOUR_CLIENT_SECRET" \
      -d "redirect_uri=YOUR_REDIRECT_URI"
  4. Obtén tu ID de miembro:

    curl -H "Authorization: Bearer YOUR_ACCESS_TOKEN" https://api.linkedin.com/v2/userinfo

    El campo sub es tu identificador de miembro (por ejemplo, urn:li:person:<sub_id>).


Configuración

Copia el archivo de entorno de ejemplo:

cp .env.example .env

Configura tus variables de entorno .env:

LINKEDIN_ACCESS_TOKEN=your_oauth2_access_token
LINKEDIN_AUTHOR_URN=urn:li:person:your_member_sub_id
PORT=3000

Ejecución Local

# Install dependencies
npm install

# Run unit and integration tests
npm test

# Start the server
npm start

# Start in development mode (with live reload)
npm run dev

Integración con Clientes

OpenAI Codex CLI

Añade el servidor usando la CLI de Codex:

codex mcp add linkedin --url https://your-server-domain.com/mcp

O añádelo directamente a ~/.codex/config.toml:

[mcp_servers.linkedin]
url = "https://your-server-domain.com/mcp"

Claude Desktop

Añádelo a tu claude_desktop_config.json:

{
  "mcpServers": {
    "linkedin": {
      "command": "node",
      "args": ["/path/to/linkedin-mcp-server/server.js"],
      "env": {
        "LINKEDIN_ACCESS_TOKEN": "your_access_token",
        "LINKEDIN_AUTHOR_URN": "urn:li:person:your_sub_id"
      }
    }
  }
}

Google Gemini Spark

En la configuración de tus aplicaciones personalizadas de Gemini Spark, introduce la URL de tu endpoint SSE público:

https://your-server-domain.com/mcp

Despliegue

Desplegar en Railway

  1. Instala la CLI de Railway: npm i -g @railway/cli

  2. Vincula o crea un proyecto:

    railway init
    railway up
  3. Establece las variables de entorno:

    railway variable set LINKEDIN_ACCESS_TOKEN="your_token" LINKEDIN_AUTHOR_URN="urn:li:person:your_sub_id"
  4. Genera un dominio público:

    railway domain

Desarrollo y Pruebas

El conjunto de pruebas incluye 62 pruebas unitarias y de integración automatizadas que cubren el cliente de la API de LinkedIn, las 12 herramientas de registro y ejecución, y los transportes SSE y HTTP Streamable.

# Run tests once
npm test

# Run tests in watch mode
npm run test:watch

Licencia

Este proyecto está licenciado bajo la Licencia MIT.

A
license - permissive license
-
quality - not tested
B
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

View all related MCP servers

Related MCP Connectors

  • Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.

  • MCP server for LeadDelta — manage LinkedIn connections and CRM data via AI assistants.

  • MCP server for AI agents to plan, verify, and deploy Cloudflare-native apps.

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

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