Cómo configurar Hermes Agent conectado con LinkedIn mediante MCP (guía paso a paso)

Guía práctica para conectar Hermes Agent con la API oficial de LinkedIn a través de un servidor MCP: aplicación de desarrollador, configuración, OAuth 2.0, verificación y publicación.

Conectar Hermes Agent con LinkedIn mediante MCP: guía de configuración paso a paso


Los agentes de IA solo son tan útiles como los sistemas a los que pueden conectarse. Un agente que puede investigar, escribir código y gestionar tu web pero no puede publicar en LinkedIn queda a medio camino: la parte final del ciclo editorial, la difusión, sigue dependiendo de ti. En esta guía configuramos Hermes Agent conectado con la API oficial de LinkedIn a través de un servidor MCP (Model Context Protocol), de modo que el agente pueda leer tu perfil, verificar el estado de autenticación y publicar contenido en tu nombre — sin scraping, sin APIs no oficiales y sin riesgo para la cuenta.

La clave de todo el proceso es el Model Context Protocol: un estándar abierto que define un formato universal para que los agentes de IA se comuniquen con herramientas externas. En lugar de programar integraciones a medida con cada plataforma, se despliega un servidor MCP que encapsula la lógica de una API concreta (en este caso, LinkedIn) y expone sus capacidades como tools que cualquier cliente MCP compatible — incluyendo Hermes Agent — puede descubrir e invocar. El resultado es una capa de conexión estandarizada, auditable y reversible: si mañana quieres cambiar de agente, el servidor MCP sigue funcionando igual.

Ilustración abstracta de un agente de IA central conectado a una red de nodos profesionales mediante flujos de datos luminosos
Un agente de IA conectado a ecosistemas profesionales mediante el protocolo MCP.

Qué obtienes al conectar Hermes Agent con LinkedIn

El servidor MCP que usamos (linkedin-mcp-server) trabaja exclusivamente con la API oficial de LinkedIn y expone 15 herramientas organizadas en cuatro familias:

  • Identidad: leer tu perfil (nombre, foto, email), verificar el estado de autenticación y consultar el consumo de rate limits de la API.
  • Publicación: crear posts de texto o con imagen, subir imágenes, borrar tus posts y listar los publicados a través del servidor.
  • Interacción: comentar posts y reaccionar (me gusta, celebrar, apoyar, etc.).
  • Eventos: crear y consultar eventos de LinkedIn.

El alcance real de las herramientas disponibles depende de los scopes OAuth que concedas durante la autenticación. Un perfil con w_member_social desbloquea las herramientas de publicación; sin ese scope, el servidor expone únicamente las herramientas de lectura de identidad.

Requisitos previos

Antes de empezar necesitas cuatro elementos:

  1. Hermes Agent instalado y funcionando (verifica con hermes --version).
  2. Node.js 20 o superior (node --version).
  3. Una cuenta en la que puedas crear aplicaciones de desarrollador.
  4. El servidor MCP clonado en un directorio local, por ejemplo ~/MCP_SERVERS/linkedin-mcp-server.

Paso 1: Crear la aplicación de LinkedIn

LinkedIn gestiona el acceso a su API a través de aplicaciones de desarrollador. Entra en la consola de desarrollo de LinkedIn, inicia sesión y pulsa Create app. Rellena los campos obligatorios: nombre de la aplicación, una página de LinkedIn asociada (puede ser tu perfil profesional) y una URL de política de privacidad (la de tu web sirve perfectamente). Sube un logotipo y acepta el acuerdo legal.

Una vez creada, copia el Client ID y el Client Secret. Son las credenciales que el servidor MCP usará para completar el flujo OAuth 2.0. Trátalos como una contraseña: no los subas a un repositorio y no los incluyas en capturas de pantalla públicas.

En la configuración de la aplicación, añade la redirect URI que vas a usar en el paso de autenticación (por defecto, el servidor MCP usa http://localhost:3000/callback) y activa los scopes que necesites: openid, profile, email y, si vas a publicar, w_member_social. Guarda los cambios y espera a que LinkedIn los aplique (puede tardar unos minutos).

Paso 2: Registrar el servidor MCP en Hermes Agent

Hermes Agent gestiona los servidores MCP desde su archivo de configuración, normalmente ~/.hermes/config.yaml. Añade una entrada en la sección mcp_servers con el comando de arranque, el argumento del script compilado y las variables de entorno:

mcp_servers:
  linkedin:
    command: node
    args:
      - ~/MCP_SERVERS/linkedin-mcp-server/dist/index.js
    env:
      LINKEDIN_CLIENT_ID: tu_client_id_aqui
      LINKEDIN_CLIENT_SECRET: "tu_client_secret_aqui"
      LINKEDIN_REDIRECT_URI: http://localhost:3000/callback
      LINKEDIN_MCP_DATA_DIR: ~/.linkedin-mcp
    timeout: 120
    connect_timeout: 60
    enabled: true

Dos detalles que conviene tener presentes. Primero, la data dir es donde el servidor persiste los tokens OAuth en una base de datos SQLite: si la cambias de sitio, pierdes la sesión autenticada. Segundo, si el secret contiene caracteres especiales, enciérralo entre comillas para no romper el YAML.

Una vez guardado el archivo, reinicia Hermes Agent para que cargue el nuevo servidor. En una sesión CLI basta con salir (/exit o Ctrl+C) y relanzar; si lo corres como gateway, usa el comando de reinicio correspondiente a tu instalación.

Paso 3: Autenticación OAuth 2.0

La primera vez que el agente necesita hablar con LinkedIn, lanza el flujo de autenticación. En Hermes Agent basta con pedir al agente que inicie la autenticación de LinkedIn; internamente invoca la herramienta linkedin_auth_start, que abre en tu navegador la URL de autorización con el flujo OAuth 2.0 PKCE. Inicia sesión en tu cuenta, revisa los permisos solicitados y acepta.

LinkedIn redirige a la URL de callback con un código de autorización. Ese código se cambia, a través de la herramienta linkedin_auth_callback, por un access token que el servidor guarda de forma cifrada en la base de datos local. A partir de ese momento, y hasta que el token expire, el servidor se reautentifica automáticamente en cada arranque: no hay que repetir el proceso tras reiniciar Hermes Agent.

Un consejo práctico: si tu sesión de navegador ya está iniciada, el flujo completo lleva menos de un minuto. Si lo ejecutas en un servidor remoto sin navegador gráfico, copia la URL de autorización a tu equipo local, completa el login ahí y pega el código de callback de vuelta en la terminal.

Verificación: cómo comprobar que todo funciona

No des por bueno un sistema por la configuración: verifica su estado real con llamadas a las herramientas. El orden recomendado es:

1. Estado de autenticación. Pide al agente que compruebe el estado de la sesión. La herramienta linkedin_get_auth_status debe responder authenticated: true con tu nombre e ID de usuario.

2. Lectura de perfil. La herramienta linkedin_get_my_profile devuelve el nombre, el email verificado, la locale y la URL de tu foto de perfil. Si esta llamada devuelve un error de permisos, revisa los scopes concedidos en la aplicación.

3. Rate limits. linkedin_get_rate_limits muestra el consumo real de cada endpoint (por ejemplo, 1 de 80 llamadas al día para la lectura de perfil) y la hora de reseteo. Es útil antes de planificar campañas de publicación con varios posts al día.

Si las tres comprobaciones pasan, el sistema está operativo de extremo a extremo. En un escenario real, la verificación completa se hace en una sola conversación: el agente llama a las tres herramientas, resume el estado y te muestra los datos del perfil sin que tengas que teclear nada.

Publicar tu primer contenido

Con la conexión verificada, el flujo de publicación se reduce a pedirlo en lenguaje natural. Para un post de texto, la herramienta linkedin_create_post acepta el cuerpo y, opcionalmente, un artículo completo. Para posts con imagen, el orden es primero linkedin_upload_image (que devuelve un identificador) y luego el post referenciándolo.

El servidor mantiene un historial local de posts en la misma base de datos, con los URN de LinkedIn de cada publicación creada a través de él. Esto permite dos cosas: consultar qué se ha publicado y en qué momento, y borrar cualquier post con linkedin_delete_post si algo sale mal. Es una trazabilidad que, en flujos de contenido editorial, marca la diferencia entre un experimento y un canal de publicación gestionado.

Para interacción, las herramientas de comentarios y reacciones siguen el mismo patrón: se invocan indicando el URN del post objetivo. Combinadas con tareas programadas de Hermes Agent (por ejemplo, un trabajo recurrente que redacta el resumen semanal y lo envía como borrador para aprobación), se cierra el bucle completo: producción, revisión humana y publicación.

Buenas prácticas de seguridad

  • Mínimo privilegio: pide solo los scopes que usas de verdad. Un agente que únicamente difunde no necesita permisos que no va a ejercer.
  • Credenciales fuera del código: el Client ID y el Client Secret viven en la configuración de Hermes Agent, no en el repositorio. Si el directorio del proyecto es público, revisa el historial.
  • Revisión humana antes de publicar: el patrón más seguro es que el agente prepare y el humano apruebe pieza a pieza, especialmente al principio. Las herramientas de borrado y el historial local son la red de seguridad.
  • Vigila la caducidad: los tokens OAuth tienen fecha de expiración. Consulta el estado periódicamente y planifica la reautenticación antes de que la campaña de contenido se quede a medio gas.

Resumen

Conectar Hermes Agent con LinkedIn no es una integración a medida: es un servidor MCP estándar, una entrada en el archivo de configuración, un flujo OAuth de un minuto y tres comprobaciones de estado. Lo que ganas a cambio es un agente que cierra el ciclo completo del contenido editorial — investigar, redactar, gestionar la web y difundir — con una capa de conexión oficial, trazable y reversible. El siguiente paso natural es combinar esta conexión con tareas programadas y con la generación de imágenes para tener un canal de publicación que funcione de forma autónoma, dentro de un marco de aprobación humana que tú controlas.