Skip to main content
Glama
ZLeventer

linkedin-campaign-manager-mcp

LinkedIn Campaign Manager MCP

npm version npm downloads Node.js MCP License: MIT

MCP-сервер для LinkedIn Marketing API — запрашивайте данные о кампаниях, эффективности и формах генерации лидов (Lead Gen Forms) у Claude на обычном английском языке.

19 инструментов «только для чтения», охватывающих рекламные аккаунты, кампании, креативы, аналитику эффективности, демографию, видеоаналитику, темпы расходования бюджета, сравнение периодов, конверсии, формы генерации лидов, аудитории и параметры таргетинга. Создано для команд B2B-маркетинга, запускающих спонсируемый контент, формы генерации лидов и кампании на основе аккаунтов (ABM) в LinkedIn.


Зачем это нужно

С LinkedIn Marketing API работать крайне сложно: ежемесячное версионирование Rosetta, недокументированные соответствия полей, вложенные параметры запросов в стиле Rest.li для аналитики и 60-дневные токены доступа, которые молча истекают. Этот сервер берет все это на себя, чтобы вы могли задавать вопросы на обычном английском языке, а не писать вручную dateRange=(start:(year:...)).

Ни один другой MCP-сервер с открытым исходным кодом для LinkedIn Ads не обладает такой глубиной. Большинство ограничиваются лишь «списком кампаний». Этот сервер включает демографию, воронку досмотров видео, темпы расходования бюджета, сравнение периодов и ответы из форм генерации лидов с персональными данными (PII), чтобы вы могли сверять лиды с Marketo или Salesforce.


Примеры запросов

После установки спрашивайте Claude о чем-то вроде:

  • "Каков тренд наших расходов на LinkedIn Ads за последние 28 дней в разбивке по группам кампаний?"

  • "Сравни CPL в кампаниях по захвату конкурентов в этом месяце и в прошлом — какие креативы повлияли на результат?"

  • "Выгрузи демографию для нашей самой затратной кампании — какие должности и отрасли конвертируются?"

  • "Какие формы генерации лидов имели самый высокий коэффициент отправки в прошлом месяце и какова была стоимость одного лида?"

  • "Покажи воронку досмотров видео для нашей кампании по повышению узнаваемости — на каком этапе люди отсеиваются?"

  • "Есть ли кампании с риском перерасхода? Покажи темпы расходования бюджета по всем активным кампаниям."

  • "Выгрузи вчерашние ответы из форм генерации лидов, чтобы я мог сверить их с Marketo."


Демо

🎥 Видео-обзор скоро появится — запрос эффективности кампаний LinkedIn из Claude Code менее чем за 60 секунд.


Инструменты

Инструмент

Что он делает

li_list_ad_accounts

Все рекламные аккаунты, к которым у пользователя есть доступ, со статусом и валютой.

li_get_account

Детали одного аккаунта: валюта, статус, тип, платежная информация.

li_list_campaigns

Кампании в аккаунте; фильтрация по статусу или группе кампаний.

li_get_campaign

Полные детали кампании: критерии таргетинга, ставка, бюджет, цель.

li_list_campaign_groups

Группы кампаний (контейнеры с общим бюджетом/целью).

li_list_creatives

Рекламные креативы; фильтрация по кампании или статусу.

li_get_creative

Полные детали креатива: заголовок, текст, URL, URN изображения/видео.

li_get_campaign_performance

Показы/клики/расходы/конверсии/лиды за указанный период. Гранулярность: DAILY/MONTHLY/YEARLY/ALL.

li_get_demographics_report

Эффективность по компании / размеру компании / отрасли / функции должности / названию должности / уровню ответственности / региону / стране.

li_compare_periods

Сравнение WoW/MoM/YoY с вычисляемыми на стороне сервера столбцами _current/_prior/_delta/_pct_change для каждой сущности.

li_get_video_analytics

Воронка досмотров видео для каждого креатива: начало → 25% → 50% → 75% → завершения + коэффициент завершения.

li_get_budget_pacing

Расходы против % использования бюджета для активных кампаний за настраиваемый период.

li_get_conversion_events

Определения событий конверсии Insight Tag: тип, окна атрибуции, статус включения.

li_get_conversion_performance

Эффективность по событию конверсии (сводка CONVERSION): разбивка по кликам и просмотрам.

li_get_audience_insights

Сегменты DMP: подобранные аудитории, списки компаний, комбинированные/похожие сегменты + размеры.

li_search_targeting_facets

Поиск по мере ввода для значений таргетинга (должности, навыки, компании, отрасли, локации, уровни ответственности).

li_get_leadgen_forms

Формы генерации лидов + конфигурация вопросов + состояние.

li_get_leadgen_responses

Фактические отправки форм с PII (имя, email, компания, должность).

li_get_leadgen_form_performance

Метрики LGF для каждого креатива: коэффициент открытия формы, коэффициент отправки, стоимость лида.


Настройка

1. Установка

npm install -g linkedin-campaign-manager-mcp

Или клонируйте и соберите локально:

git clone https://github.com/ZLeventer/linkedin-campaign-manager-mcp
cd linkedin-campaign-manager-mcp
npm install
npm run build

2. Создание приложения LinkedIn Developer

Marketing API ограничен. Вам нужно приложение LinkedIn Developer с одобрением определенных продуктов:

  1. Перейдите на developer.linkedin.comCreate App (свяжите с вашей страницей компании).

  2. Вкладка Products — запросите доступ к:

    • Marketing Developer Platform (покрывает r_ads, r_ads_reporting)

    • Lead Gen Forms или Community Management API (покрывает r_ads_leadgen_automation)

  3. LinkedIn проверяет доступ к приложению вручную — обычно это занимает 2–6 недель.

  4. Вкладка AuthAuthorized Redirect URLs — добавьте: http://127.0.0.1:53123 (измените 53123, если вы установили другой LINKEDIN_OAUTH_PORT).

  5. Скопируйте Client ID и Client Secret с вкладки Auth.

Без одобрения продукта каждый вызов API возвращает 403. Сервер компилируется и запускается нормально — ошибка 403 является проблемой прав на уровне приложения, а не кода.

3. Настройка окружения

cp .env.example .env
# edit .env with your LINKEDIN_CLIENT_ID, LINKEDIN_CLIENT_SECRET,
# LINKEDIN_DEFAULT_AD_ACCOUNT (numeric ID from Campaign Manager URL)

4. Авторизация (однократный поток OAuth)

npm run auth

Это открывает локальный HTTP-сервер на порту 53123 (или LINKEDIN_OAUTH_PORT), выводит URL авторизации в ваш терминал и ожидает обратный вызов OAuth. После того как вы подтвердите его в браузере, он обменяет код на токен доступа + 365-дневный токен обновления и сохранит их в token.json (режим 0600).

Вам нужно повторно запускать npm run auth только в том случае, если токен обновления истечет (через 365 дней).

5. Подключение к Claude Code (или любому MCP-клиенту)

Добавьте в ~/.claude.json в раздел mcpServers:

{
  "mcpServers": {
    "linkedin": {
      "command": "linkedin-campaign-manager-mcp",
      "env": {
        "LINKEDIN_CLIENT_ID": "your_client_id",
        "LINKEDIN_CLIENT_SECRET": "your_client_secret",
        "LINKEDIN_TOKEN_PATH": "/absolute/path/to/token.json",
        "LINKEDIN_DEFAULT_AD_ACCOUNT": "123456789",
        "LINKEDIN_API_VERSION": "202504"
      }
    }
  }
}

Или при запуске из исходного кода:

{
  "mcpServers": {
    "linkedin": {
      "command": "node",
      "args": ["/path/to/linkedin-campaign-manager-mcp/dist/index.js"],
      "env": {
        "LINKEDIN_CLIENT_ID": "...",
        "LINKEDIN_CLIENT_SECRET": "...",
        "LINKEDIN_TOKEN_PATH": "/path/to/token.json",
        "LINKEDIN_DEFAULT_AD_ACCOUNT": "123456789"
      }
    }
  }
}

Перезапустите Claude Code. 19 инструментов появятся под сервером linkedin.


Переменные окружения

Переменная

Обязательно

По умолчанию

Описание

LINKEDIN_CLIENT_ID

Да

Client ID приложения OAuth

LINKEDIN_CLIENT_SECRET

Да

Client Secret приложения OAuth

LINKEDIN_TOKEN_PATH

Нет

./token.json

Путь для чтения/записи файла токена

LINKEDIN_DEFAULT_AD_ACCOUNT

Рекомендуется

Числовой ID аккаунта; инструменты используют его, если ad_account_id не передан

LINKEDIN_OAUTH_PORT

Нет

53123

Порт обратной связи для редиректа OAuth

LINKEDIN_API_VERSION

Нет

202504

Версия LinkedIn Rosetta API (ГГГГММ)


Обработка URN

Ресурсы LinkedIn идентифицируются URN: urn:li:sponsoredAccount:123, urn:li:sponsoredCampaign:456 и т.д.

Все входные данные инструментов принимают либо простой числовой ID, либо полный URN — клиент автоматически оборачивает простые ID. Числовые ID отображаются в URL-адресах Campaign Manager (/accounts/<id>/, /campaigns/<id>/).


Ввод дат

Все параметры даты принимают:

Ввод

Значение

2024-10-01

Буквальная ISO-дата

today / yesterday

Самоочевидно

7daysAgo, 28daysAgo, 90daysAgo

N календарных дней до сегодня

Диапазон по умолчанию: 28daysAgoyesterday.


Особенности LinkedIn

Изменения версий API

LinkedIn Rosetta использует ежемесячные версии (202504 = апрель 2025). Версии устаревают примерно через 12 месяцев после выпуска — в этом случае вы получите ошибки 410 Gone. Обновляйте LINKEDIN_API_VERSION ежеквартально. См. документацию по версионированию.

Форма запроса аналитики

/adAnalytics использует вложенные параметры в стиле Rest.li, а не обычные строки ISO:

dateRange=(start:(year:2024,month:10,day:1),end:(year:2024,month:10,day:31))
campaigns=List(urn:li:sponsoredCampaign:123,urn:li:sponsoredCampaign:456)

Это обрабатывается внутри dateRangeParam() и liGetRaw(). Если вы расширяете сервер, направляйте вызовы аналитики через liGetRaw() с вручную сформированным URL — не используйте liGet() для эндпоинтов аналитики, так как URLSearchParams исказит вложенные скобки.

Задержка данных аналитики

Аналитика LinkedIn обычно запаздывает на 2–6 часов для большинства метрик и до 24 часов для данных о конверсиях. Вчерашние цифры обычно полные; сегодняшние — частичные.

60-дневные токены доступа, 365-дневные токены обновления

Токены доступа истекают через 60 дней; токены обновления — через 365 дней. Клиент автоматически обновляет токен доступа при каждом запросе, когда это необходимо. Если токен обновления истек, снова запустите npm run auth.

PII в ответах Lead Gen

li_get_leadgen_responses возвращает фактические PII лида — имя, email, компанию, должность. Обращайтесь с выводом как с конфиденциальной информацией: не записывайте в общие журналы, незашифрованные хранилища или публичные каналы. Политика использования данных LinkedIn требует удаления ответов лидов в течение 90 дней с момента получения, если лид не дал активного согласия. Этот инструмент предназначен для авторизованной сверки с CRM (Marketo/SFDC).

Ограничения скорости (Rate limits)

LinkedIn не публикует точные цифры ограничений скорости. На практике ожидайте троттлинг около 100 аналитических вызовов в минуту на приложение. Повтор при ошибке 429 не встроен — если вы достигли лимитов, уменьшите частоту вызовов или кэшируйте результаты на стороне клиента.


Когда НЕ использовать этот сервер

  • Создание или редактирование кампаний, бюджетов или креативов — сервер предназначен только для чтения. Создание кампаний имеет слишком много режимов сбоя для безопасной автоматизации; используйте интерфейс Campaign Manager.

  • Данные о показах в реальном времени — используйте LinkedIn Insight Tag + GA4 для данных, близких к реальному времени.

  • Оценка размера аудитории для произвольных критериев таргетинга — используйте конструктор аудиторий в интерфейсе Campaign Manager для разовой оценки. li_get_audience_insights возвращает только размеры сохраненных/загруженных сегментов.


Лицензия

MIT © 2026 Zach Leventer

Install Server
A
license - permissive license
A
quality
B
maintenance

Maintenance

Maintainers
2hResponse time
0dRelease cycle
2Releases (12mo)

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/ZLeventer/linkedin-campaign-manager-mcp'

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