# LinkedIn Ads

Читает структуру кампаний и статистику LinkedIn Ads прямо из чата с ассистентом, а черновики объявлений собирает только для выбранных аккаунтов.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI
- Автор: get-mcp-ads
- Лицензия: Apache-2.0 · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/get-mcp-ads/linkedin-ads-mcp-server
- Обновлён: 2026-10-23
- HTML: https://affpapa.org/nevibecode/mcp/linkedin-ads

## Что делает

Сервер подключается к LinkedIn Marketing API и отдаёт ассистенту 18 инструментов на чтение: аккаунты и их состояние, группы кампаний, кампании, креативы, отчёты по метрикам, профессиональные демографии, атрибуцию выручки и статус показов. Запросы уходят напрямую в LinkedIn, посредник не нужен.

Ещё 15 инструментов пишут и выключены, пока в конфигурации не стоит `LINKEDIN_ADS_ENABLE_WRITES=true`. Они готовят черновики групп, кампаний, текстовых и медийных объявлений, правят сущности, переименовывают, дублируют и удаляют черновики, загружают файлы. Каждое такое действие сначала показывает превью, а срабатывает только при `confirm`; показы оно не запускает. Понадобится собственное приложение LinkedIn: member access token в `LINKEDIN_ADS_ACCESS_TOKEN` и список числовых ID в `LINKEDIN_ADS_ACCOUNT_IDS`. Второй параметр обязателен, и любой аккаунт вне списка сервер отклонит до отправки запроса. С refresh-токеном access-токен обновляется в памяти.

Нужен Node.js 22.23.4, 24.22.1, 26.12.1 или новее: на более старом релизе сервер выдаст предупреждение в stderr. Версия API задаётся `LINKEDIN_ADS_API_VERSION` в формате YYYYMM. Проверить, какие переменные заданы, помогает `npm run doctor`, значения он не печатает.

## Требования
- Нужно: Node.js (команды через npx)
- Переменные окружения: `LINKEDIN_ADS_ACCESS_TOKEN`, `LINKEDIN_ADS_REFRESH_TOKEN`, `LINKEDIN_ADS_CLIENT_ID`, `LINKEDIN_ADS_CLIENT_SECRET`, `LINKEDIN_ADS_ACCOUNT_IDS`, `LINKEDIN_ADS_SCOPES`, `LINKEDIN_ADS_ENABLE_WRITES`, `LINKEDIN_ADS_API_VERSION`, `LINKEDIN_ADS_LOG_LEVEL` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.
- Работает с: LinkedIn

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env LINKEDIN_ADS_ACCESS_TOKEN=<LINKEDIN_ADS_ACCESS_TOKEN> --env LINKEDIN_ADS_REFRESH_TOKEN=<LINKEDIN_ADS_REFRESH_TOKEN> --env LINKEDIN_ADS_CLIENT_ID=<LINKEDIN_ADS_CLIENT_ID> --env LINKEDIN_ADS_CLIENT_SECRET=<LINKEDIN_ADS_CLIENT_SECRET> --env LINKEDIN_ADS_ACCOUNT_IDS=<LINKEDIN_ADS_ACCOUNT_IDS> --transport stdio linkedin-ads -- npx -y @getmcpads/linkedin-ads-mcp-server
```
Вместо <…> подставьте свои значения. Ещё 4 переменные окружения — в README сервера

### Codex

**Командой платформы**
```bash
codex mcp add linkedin-ads --env LINKEDIN_ADS_ACCESS_TOKEN=<LINKEDIN_ADS_ACCESS_TOKEN> --env LINKEDIN_ADS_REFRESH_TOKEN=<LINKEDIN_ADS_REFRESH_TOKEN> --env LINKEDIN_ADS_CLIENT_ID=<LINKEDIN_ADS_CLIENT_ID> --env LINKEDIN_ADS_CLIENT_SECRET=<LINKEDIN_ADS_CLIENT_SECRET> --env LINKEDIN_ADS_ACCOUNT_IDS=<LINKEDIN_ADS_ACCOUNT_IDS> -- npx -y @getmcpads/linkedin-ads-mcp-server
```
Вместо <…> подставьте свои значения. Ещё 4 переменные окружения — в README сервера

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "linkedin-ads": {
            "command": "npx",
            "args": [
                "-y",
                "@getmcpads/linkedin-ads-mcp-server"
            ],
            "env": {
                "LINKEDIN_ADS_ACCESS_TOKEN": "<LINKEDIN_ADS_ACCESS_TOKEN>",
                "LINKEDIN_ADS_REFRESH_TOKEN": "<LINKEDIN_ADS_REFRESH_TOKEN>",
                "LINKEDIN_ADS_CLIENT_ID": "<LINKEDIN_ADS_CLIENT_ID>",
                "LINKEDIN_ADS_CLIENT_SECRET": "<LINKEDIN_ADS_CLIENT_SECRET>",
                "LINKEDIN_ADS_ACCOUNT_IDS": "<LINKEDIN_ADS_ACCOUNT_IDS>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 4 переменные окружения — в README сервера

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "linkedin-ads": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@getmcpads/linkedin-ads-mcp-server"
            ],
            "env": {
                "LINKEDIN_ADS_ACCESS_TOKEN": "<LINKEDIN_ADS_ACCESS_TOKEN>",
                "LINKEDIN_ADS_REFRESH_TOKEN": "<LINKEDIN_ADS_REFRESH_TOKEN>",
                "LINKEDIN_ADS_CLIENT_ID": "<LINKEDIN_ADS_CLIENT_ID>",
                "LINKEDIN_ADS_CLIENT_SECRET": "<LINKEDIN_ADS_CLIENT_SECRET>",
                "LINKEDIN_ADS_ACCOUNT_IDS": "<LINKEDIN_ADS_ACCOUNT_IDS>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 4 переменные окружения — в README сервера

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e LINKEDIN_ADS_ACCESS_TOKEN=<LINKEDIN_ADS_ACCESS_TOKEN> -e LINKEDIN_ADS_REFRESH_TOKEN=<LINKEDIN_ADS_REFRESH_TOKEN> -e LINKEDIN_ADS_CLIENT_ID=<LINKEDIN_ADS_CLIENT_ID> -e LINKEDIN_ADS_CLIENT_SECRET=<LINKEDIN_ADS_CLIENT_SECRET> -e LINKEDIN_ADS_ACCOUNT_IDS=<LINKEDIN_ADS_ACCOUNT_IDS> linkedin-ads npx -y @getmcpads/linkedin-ads-mcp-server
```
Вместо <…> подставьте свои значения. Ещё 4 переменные окружения — в README сервера

## Когда брать
- посмотреть структуру кампаний и их статус
- выгрузить отчёт по метрикам за нужный период
- разобрать демографию профессиональной аудитории
- собрать черновик кампании и объявлений под выбранный аккаунт
- проверить, что показывает объявление до запуска

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
