LinkedIn Ads MCP

Analiza tus datos de LinkedIn Ads

Documentación

Servidor MCP de LinkedIn Ads

License: MIT Node.js Version MCP Compatible

Un servidor MCP (Model Context Protocol) que permite a Claude AI acceder y analizar los datos de tus anuncios de LinkedIn. Diseñado para especialistas en marketing, fundadores y equipos de crecimiento que quieren aprovechar la IA para la optimización de campañas, informes de rendimiento y decisiones publicitarias basadas en datos.

[!TIP] ¿Lo quieres sin configuración? Del mismo autor: AdPlug es el MCP de LinkedIn Ads alojado. Inicia sesión con OAuth (sin app de desarrollador de LinkedIn, sin credenciales que gestionar), conecta Claude, ChatGPT o Cursor en unos dos minutos, y obtén Google Ads y Microsoft Ads en el mismo conector. Las herramientas de lectura son gratuitas; cada escritura se previsualiza antes de ejecutarse. Este servidor de código abierto sigue siendo gratuito y autoalojado.


Instalación rápida (¡Sin necesidad de programar!)

¿No quieres lidiar con temas técnicos? Simplemente copia uno de los prompts de abajo y pégalo en Claude. ¡La IA hará todo por ti!


Opción 1: Instalar con Claude Code (Recomendado)

Si tienes Claude Code instalado, simplemente copia y pega este prompt completo:

Haz clic para expandir el prompt de instalación de Claude Code
I want you to install the LinkedIn Ads MCP server so I can analyze my LinkedIn advertising data. Please do the following:

1. FIRST, check if Node.js is installed by running `node --version`. If not installed, tell me to install it from https://nodejs.org first.

2. Clone the repository to my home directory:
   - cd ~
   - git clone https://github.com/danielpopamd/linkedin-ads-mcp.git
   - cd linkedin-ads-mcp

3. Install dependencies and build:
   - npm install
   - npm run build

4. Create the .env file with placeholder values:
   - cp .env.example .env

5. NOW IMPORTANT - Ask me for my LinkedIn API credentials:
   - Ask: "Please provide your LinkedIn Client ID (from https://www.linkedin.com/developers/apps)"
   - Ask: "Please provide your LinkedIn Client Secret"

6. Update the .env file with the credentials I provide.

7. Set up Claude Desktop configuration:
   - Read the current Claude Desktop config file:
     - macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
     - Windows: %APPDATA%/Claude/claude_desktop_config.json
   - Add the linkedin-ads MCP server to mcpServers (merge with existing config if any):
     {
       "mcpServers": {
         "linkedin-ads": {
           "command": "node",
           "args": ["<FULL_PATH_TO>/linkedin-ads-mcp/dist/index.js"],
           "env": {
             "LINKEDIN_CLIENT_ID": "<MY_CLIENT_ID>",
             "LINKEDIN_CLIENT_SECRET": "<MY_CLIENT_SECRET>"
           }
         }
       }
     }
   - Replace <FULL_PATH_TO> with the actual path (e.g., /Users/username)
   - Replace the env values with my actual credentials

8. Run the authentication flow:
   - npm run auth
   - This will open my browser - tell me to authorize the app with LinkedIn

9. Tell me to restart Claude Desktop to activate the MCP server.

10. After restart, confirm setup by telling me to ask Claude: "List my LinkedIn ad accounts"

If you don't have my LinkedIn API credentials yet, first explain how to get them:
- Go to https://www.linkedin.com/developers/apps
- Create a new app (need a LinkedIn Company Page)
- Go to Products tab and request "Advertising API" access
- Go to Auth tab and add redirect URL: http://localhost:3000/callback
- Copy the Client ID and Client Secret

Start now!

Opción 2: Instalar con Claude Desktop (Basado en chat)

Si usas Claude Desktop directamente (sin Claude Code), copia este prompt para iniciar una configuración guiada:

Haz clic para expandir el prompt de configuración guiada de Claude Desktop
I want to install the LinkedIn Ads MCP server to analyze my LinkedIn advertising data with Claude. I'm not technical, so please guide me step by step with simple instructions.

Please walk me through:

1. **Check Prerequisites**
   - Do I have Node.js installed? (Tell me how to check and where to download if needed)
   - Do I have a LinkedIn Developer App? (If not, guide me through creating one at https://www.linkedin.com/developers/apps)

2. **Get LinkedIn API Access**
   Walk me through:
   - Creating a LinkedIn Developer App
   - Requesting Advertising API access (Products tab)
   - Adding the redirect URL: http://localhost:3000/callback (Auth tab)
   - Finding my Client ID and Client Secret

3. **Download and Install**
   Give me the exact commands to run in my terminal (one at a time):
   - How to open Terminal (Mac) or Command Prompt (Windows)
   - Clone the repository
   - Install dependencies
   - Build the project

4. **Configure Claude Desktop**
   - Tell me exactly where the config file is located
   - Give me the exact JSON to add (with placeholders for my credentials)
   - Show me how to edit the file

5. **Authenticate with LinkedIn**
   - What command to run
   - What to do when the browser opens

6. **Test the Setup**
   - Tell me to restart Claude Desktop
   - Give me a test question to ask

Please start with step 1 and wait for my response before moving to the next step. Use simple language and assume I've never used a terminal before.

Lo que necesitarás antes de instalar

Antes de usar cualquiera de los métodos de instalación, necesitarás:

  1. Node.js (versión 18 o superior) - Descargar aquí
  2. Una página de empresa de LinkedIn - Requerida para crear una app de desarrollador
  3. App de desarrollador de LinkedIn con acceso a la API de publicidad - Crear una aquí

Obtención de credenciales de la API de LinkedIn (5-10 minutos)

  1. Ve al Portal de desarrolladores de LinkedIn
  2. Haz clic en "Crear app"
  3. Completa:
    • Nombre de la app: "My LinkedIn Ads Analytics" (o lo que quieras)
    • Página de LinkedIn: Selecciona tu página de empresa
    • Logotipo de la app: Sube cualquier imagen cuadrada
  4. Después de crearla, ve a la pestaña "Productos" → Solicita la "API de publicidad" (la aprobación tarda de 1 a 5 días)
  5. Ve a la pestaña "Auth" → Añade la URL de redirección: http://localhost:3000/callback
  6. Copia tu ID de cliente y Secreto de cliente - ¡los necesitarás!

Creado por

Daniel Popa - Consultor de marketing de rendimiento y especialista en automatización con IA

Ayudo a startups ambiciosas a escalar de forma rentable mediante anuncios pagados, optimización de la tasa de conversión y estrategias de crecimiento basadas en datos. Con más de 10 años en marketing de rendimiento y más de $100M en presupuestos publicitarios gestionados, ahora me centro en implementar flujos de trabajo de IA y automatización para mejorar la eficiencia y el rendimiento del marketing.

Esta herramienta se creó para cerrar la brecha entre los datos publicitarios de LinkedIn y el análisis impulsado por IA, facilitando a los especialistas en marketing la obtención de información práctica a través de conversaciones en lenguaje natural con Claude.

  • Sitio web: danielpopa.me
  • Enfoque: Marketing de rendimiento, automatización con IA, estrategia de crecimiento

Instalación manual (para desarrolladores)

Si prefieres instalar manualmente o quieres más control, sigue las instrucciones a continuación.


Qué hace esto

Este servidor MCP conecta Claude Desktop (o cualquier cliente compatible con MCP) a la API de marketing de LinkedIn, permitiéndote:

  • Consultar el rendimiento de campañas usando lenguaje natural
  • Analizar la demografía de la audiencia para entender quién interactúa con tus anuncios
  • Hacer seguimiento de conversiones y clientes potenciales en tus campañas de LinkedIn
  • Comparar el rendimiento entre períodos de tiempo, campañas o grupos de campañas
  • Obtener información impulsada por IA sobre tus datos publicitarios

Ejemplos de conversaciones con Claude

"Show me campaign performance for the last 30 days"
"Which job functions are responding best to my ads?"
"Compare this week's performance vs last week"
"What's my cost per lead for the lead gen campaigns?"
"Which creatives have the best CTR?"
"Show me the daily trend for conversions"

Características

  • 25 herramientas especializadas - Que cubren cuentas, campañas, creatividades, audiencias, conversiones, análisis y gestión completa de campañas (crear, actualizar, eliminar)
  • Métricas completas - Cada informe incluye: Inversión, impresiones, clics, CTR, alcance, frecuencia, interacciones, tasa de interacción, CPM, CPC, conversiones, tasa de conversión, costo por conversión, penetración de audiencia y tiempo medio de permanencia
  • Autenticación OAuth única - Autentícate una vez y accede a todas tus cuentas publicitarias de LinkedIn
  • Actualización automática de tokens - Los tokens se actualizan automáticamente antes de su expiración
  • Gestión de límites de tasa - Retroceso exponencial integrado para los límites de tasa de la API
  • Nombres legibles para humanos - Los datos demográficos muestran nombres reales (no ID) para niveles de antigüedad, funciones laborales, industrias y más

Requisitos previos

1. App de desarrollador de LinkedIn

Antes de usar este servidor MCP, necesitas configurar una aplicación de desarrollador de LinkedIn:

  1. Ve al Portal de desarrolladores de LinkedIn
  2. Haz clic en "Crear app"
  3. Completa los detalles de tu app:
    • Nombre de la app: p. ej., "My LinkedIn Ads Analytics"
    • Página de LinkedIn: Selecciona tu página de empresa
    • Logotipo de la app: Sube un logotipo (requerido)
  4. Anota tu ID de cliente y Secreto de cliente

2. Solicitar acceso a la API de publicidad

  1. En tu app, ve a la pestaña "Productos"
  2. Selecciona "API de publicidad"
  3. Envía el formulario de solicitud con tu justificación comercial
  4. Espera la aprobación (normalmente de 1 a 5 días hábiles)

3. Configurar OAuth

  1. Ve a la pestaña "Auth" en tu app
  2. Añade esta URL de redirección: http://localhost:3000/callback
  3. Verifica que estos alcances de OAuth 2.0 estén disponibles:
    • r_ads - Leer cuentas publicitarias
    • r_ads_reporting - Leer datos de informes
    • rw_ads - Crear y gestionar campañas, creatividades y anuncios
    • r_organization_social - Leer publicaciones de la organización (para contenido creativo)

Instalación

# Clone the repository
git clone https://github.com/danielpopamd/linkedin-ads-mcp.git
cd linkedin-ads-mcp

# Install dependencies
npm install

# Build the project
npm run build

# Create your environment file
cp .env.example .env

Edita .env con tus credenciales de LinkedIn:

LINKEDIN_CLIENT_ID=your_client_id
LINKEDIN_CLIENT_SECRET=your_client_secret

Autenticación

Ejecuta el flujo de autenticación para obtener tus tokens de acceso:

npm run auth

Esto:

  1. Abrirá tu navegador en la página de OAuth de LinkedIn
  2. Te pedirá que autorices la aplicación
  3. Almacenará tus tokens localmente en ~/.linkedin-ads-mcp/tokens.json
  4. Los tokens son válidos durante 60 días y se actualizan automáticamente

Configuración de Claude Desktop

Añade esto a tu archivo de configuración de Claude Desktop:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

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

Importante: Reemplaza /full/path/to/linkedin-ads-mcp con la ruta real donde clonaste este repositorio.

Después de actualizar la configuración, reinicia Claude Desktop para que los cambios surtan efecto.


Herramientas disponibles

Gestión de cuentas

HerramientaDescripción
list_ad_accountsListar todas las cuentas publicitarias de LinkedIn accesibles
get_account_detailsObtener configuración y ajustes detallados de la cuenta

Rendimiento de campañas y creatividades

HerramientaDescripción
get_campaign_performanceMétricas de campaña con todos los KPI estándar, incluida la penetración de audiencia y el tiempo medio de permanencia
get_creative_performanceMétricas a nivel de anuncio con interacciones, estadísticas de video y tiempo medio de permanencia
get_campaign_groupsListar grupos de campañas con rendimiento agregado
list_campaignsListar todas las campañas, incluidos borradores y pausadas con cero impresiones

Audiencia y demografía

HerramientaDescripción
get_audience_demographicsRendimiento por función laboral, industria, nivel de antigüedad, tamaño de empresa, país, región
get_audience_reachAlcance único de miembros, frecuencia y métricas de penetración de audiencia nativa
list_saved_audiencesVer audiencias coincidentes y similares

Conversiones y generación de clientes potenciales

HerramientaDescripción
get_conversion_performanceMétricas de conversión por acción de conversión
list_conversionsVer reglas de seguimiento de conversiones y configuración
get_lead_gen_performanceEnvíos de formularios de clientes potenciales y costo por cliente potencial
list_lead_formsVer configuraciones de formularios de generación de clientes potenciales

Análisis avanzado

HerramientaDescripción
compare_performanceComparar métricas entre períodos de tiempo o entidades
get_daily_trendsDatos de series temporales diarias para análisis de tendencias

Gestión de campañas (operaciones de escritura)

HerramientaDescripción
create_campaign_groupCrear un nuevo grupo de campañas para organizar campañas
update_campaign_groupActualizar estado, presupuesto, nombre o fecha de finalización del grupo de campañas
delete_campaign_groupEliminar un grupo de campañas
create_campaignCrear una nueva campaña con segmentación, presupuesto y objetivo
update_campaignActualizar estado, presupuesto, segmentación o monto de oferta de la campaña
delete_campaignEliminar una campaña
create_creativeCrear una creatividad a partir de una publicación/compartición existente
create_inline_adCrear un anuncio con contenido integrado (texto, imagen, CTA) en una sola llamada
update_creative_statusActivar, pausar o archivar una creatividad
upload_imageSubir una imagen para usar en anuncios (PNG, JPG, GIF)

Métricas estándar

Cada informe de rendimiento incluye estas métricas:

MétricaDescripción
InversiónCosto total en USD
ImpresionesNúmero de veces que se mostraron los anuncios
ClicsClics totales en los anuncios
CTRTasa de clics (%)
AlcanceNúmero aproximado de miembros únicos alcanzados
FrecuenciaPromedio de impresiones por miembro único
InteraccionesInteracciones totales (me gusta, comentarios, compartidos, etc.)
Tasa de interacciónInteracciones / Impresiones (%)
CPMCosto por 1,000 impresiones
CPCCosto por clic
ConversionesEventos de conversión totales
Tasa de conversiónConversiones / Clics (%)
Costo por conversiónInversión / Conversiones
Penetración de audienciaMétrica nativa de LinkedIn: miembros únicos alcanzados / tamaño total de la audiencia objetivo (%). Usa el valor nativo de la API cuando esté disponible (rango ≤92 días), con respaldo del lado del cliente
Tiempo medio de permanenciaPromedio de segundos que los usuarios pasaron con >50% de los píxeles del anuncio visibles en la ventana gráfica

Límites de la API y mejores prácticas

Límites de la API de LinkedIn

  • Límite de tasa: 45 millones de valores de métricas por ventana de 5 minutos
  • Límite de respuesta: Máximo 15,000 elementos por respuesta
  • Métricas por solicitud: Máximo 20 métricas
  • Retraso de datos demográficos: 12-24 horas
  • Datos de alcance: Rango de fechas máximo de 92 días

Mejores prácticas

  1. Comienza con el listado de cuentas - Siempre lista las cuentas primero para obtener ID de cuenta válidos
  2. Usa rangos de fechas razonables - Los rangos más cortos devuelven resultados más rápido; usa 30 días para informes regulares
  3. Sé específico con las campañas - Filtra por ID de campaña cuando sepas qué campañas analizar
  4. Aprovecha las comparaciones - Usa la herramienta de comparación para identificar rápidamente cambios en el rendimiento

Estructura del proyecto

linkedin-ads-mcp/
├── src/
│   ├── index.ts              # MCP server entry point
│   ├── auth-cli.ts           # OAuth CLI tool
│   ├── auth/
│   │   ├── oauth.ts          # OAuth 2.0 flow
│   │   └── token-store.ts    # Secure token storage
│   ├── lib/
│   │   ├── linkedin-api.ts   # LinkedIn Marketing API client
│   │   └── types.ts          # TypeScript type definitions
│   └── tools/
│       ├── accounts.ts       # Account management tools
│       ├── performance.ts    # Campaign & creative performance
│       ├── demographics.ts   # Audience demographics tools
│       ├── conversions.ts    # Conversion & lead gen tools
│       ├── analytics.ts      # Advanced analytics tools
│       └── campaign-management.ts  # Campaign CRUD & image upload tools
├── dist/                     # Compiled JavaScript output
├── package.json
├── tsconfig.json
└── .env.example

Desarrollo

# Build the project
npm run build

# Run the server (for testing)
npm run dev

# Run authentication flow
npm run auth

Solución de problemas

Error de "No autenticado"

Ejecuta npm run auth para autenticarte con LinkedIn.

Respuestas de "Límite de tasa alcanzado"

El servidor maneja automáticamente los límites de tasa con retroceso exponencial. Si estás alcanzando los límites con frecuencia, reduce la frecuencia de tus solicitudes.

Token expirado

Los tokens se actualizan automáticamente. Si aún tienes problemas, elimina ~/.linkedin-ads-mcp/tokens.json y vuelve a autenticarte con npm run auth.

Acceso a la API denegado

Asegúrate de que tu app de desarrollador de LinkedIn tenga:

  1. El producto "API de publicidad" aprobado
  2. Los alcances de OAuth correctos habilitados (r_ads, r_ads_reporting)
  3. Tu cuenta de usuario tenga acceso a las cuentas publicitarias que intentas consultar

Nombres de campañas que aparecen como "Desconocido"

Esto normalmente significa que el ID de campaña del análisis no coincide con ninguna campaña en tu cuenta. Esto puede ocurrir con campañas archivadas o si hay un retraso en la sincronización.


Stack tecnológico

  • Model Context Protocol (MCP) - El protocolo que permite a Claude interactuar con herramientas externas
  • LinkedIn Marketing API - API oficial para datos publicitarios de LinkedIn
  • TypeScript - Desarrollo con seguridad de tipos
  • Node.js - Entorno de ejecución

Contribuciones

¡Las contribuciones son bienvenidas! No dudes en enviar un Pull Request.


Licencia

Licencia MIT: consulte el archivo LICENSE para obtener más detalles.


Agradecimientos

Construido con el Model Context Protocol SDK de Anthropic.


Hecho con flujos de trabajo impulsados por IA por Daniel Popa