Skip to main content
Glama
ZLeventer

linkedin-campaign-manager-mcp

LinkedIn 广告系列管理器 MCP

npm version npm downloads Node.js MCP License: MIT

用于 LinkedIn Marketing API 的 MCP 服务器 — 可通过 Claude 用纯英语查询广告系列、效果和潜在客户开发表单。

包含 19 个只读工具,涵盖广告账户、广告系列、创意、效果分析、受众特征、视频分析、预算进度、周期对比、转化、潜在客户开发表单、受众和定向维度。专为在 LinkedIn 上运行赞助内容、潜在客户开发表单和基于账户的广告系列的 B2B 付费社交团队打造。


为什么存在此项目

LinkedIn Marketing API 的使用体验非常糟糕:每月一次的 Rosetta 版本更新、缺乏文档的字段映射、用于分析的 Rest.li 风格嵌套查询参数,以及会静默过期的 60 天访问令牌。此服务器在后台处理了所有这些复杂性,因此您可以用纯英语提问,而无需手动编写 dateRange=(start:(year:...))

目前没有其他开源的 LinkedIn 广告 MCP 服务器能达到这种深度。大多数服务器仅止步于“列出广告系列”。本项目包含受众特征、视频完成漏斗、预算进度、周期对比以及带有 PII(个人身份信息)的潜在客户开发表单响应,以便您可以将潜在客户与 Marketo 或 Salesforce 进行核对。


示例提示词

安装后,您可以向 Claude 询问如下问题:

  • “过去 28 天我们的 LinkedIn 广告支出趋势如何,按广告系列组细分?”

  • “对比本月与上月竞争对手征服广告系列的 CPL(潜在客户获取成本)——哪些创意推动了数据增长?”

  • “提取我们支出最高的广告系列的受众特征——哪些资历和行业的人在转化?”

  • “上个月哪些潜在客户开发表单的提交率最高,每个潜在客户的成本是多少?”

  • “展示我们品牌认知广告系列的视频完成漏斗——用户在哪里流失了?”

  • “是否有任何广告系列面临超支风险?显示所有活跃广告系列的预算进度。”

  • “提取昨天的潜在客户开发表单响应,以便我可以将其与 Marketo 进行抽查核对。”


演示

🎥 演示视频即将推出 — 在 60 秒内通过 Claude Code 查询 LinkedIn 广告系列效果。


工具

工具

功能

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(姓名、电子邮件、公司、职位)的实际表单提交数据。

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 开发者应用

Marketing API 是受限的。您需要一个具有特定产品批准的 LinkedIn 开发者应用:

  1. 前往 developer.linkedin.com创建应用(关联到您的公司主页)。

  2. 产品选项卡 — 请求访问:

    • Marketing Developer Platform(涵盖 r_ads, r_ads_reporting

    • Lead Gen FormsCommunity Management API(涵盖 r_ads_leadgen_automation

  3. LinkedIn 会手动审核应用访问权限 — 通常需要 2–6 周。

  4. Auth 选项卡授权重定向 URL — 添加:http://127.0.0.1:53123 (如果您设置了不同的 LINKEDIN_OAUTH_PORT,请相应更改 53123)。

  5. 从 Auth 选项卡复制 Client IDClient Secret

如果没有产品批准,每个 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

这会在端口 53123(或 LINKEDIN_OAUTH_PORT)上打开一个本地 HTTP 服务器,将授权 URL 打印到您的终端,并等待 OAuth 回调。在浏览器中批准后,它会将代码交换为访问令牌 + 365 天刷新令牌,并将其保存到 token.json(模式 0600)。

只有在刷新令牌过期(365 天后)时,才需要重新运行 npm run auth

5. 连接到 Claude Code(或任何 MCP 客户端)

~/.claude.jsonmcpServers 下添加:

{
  "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

OAuth 应用客户端 ID

LINKEDIN_CLIENT_SECRET

OAuth 应用客户端密钥

LINKEDIN_TOKEN_PATH

./token.json

读取/写入令牌文件的路径

LINKEDIN_DEFAULT_AD_ACCOUNT

推荐

数字账户 ID;当未传递 ad_account_id 时,工具将回退到此 ID

LINKEDIN_OAUTH_PORT

53123

OAuth 重定向的环回端口

LINKEDIN_API_VERSION

202504

LinkedIn Rosetta API 版本 (YYYYMM)


URN 处理

LinkedIn 资源由 URN 标识:urn:li:sponsoredAccount:123, urn:li:sponsoredCampaign:456 等。

所有工具输入都接受纯数字 ID 或完整 URN — 客户端会自动包装纯数字 ID。数字 ID 出现在广告系列管理器 URL 中 (/accounts/<id>/, /campaigns/<id>/)。


日期输入

所有日期参数接受:

输入

含义

2024-10-01

字面 ISO 日期

today / yesterday

不言自明

7daysAgo, 28daysAgo, 90daysAgo

今天之前的 N 个日历日

默认范围:28daysAgoyesterday


LinkedIn 特有的注意事项

API 版本更迭

LinkedIn Rosetta 使用月度版本(202504 = 2025 年 4 月)。版本在发布约 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

li_get_leadgen_responses 返回实际的潜在客户 PII — 姓名、电子邮件、公司、职位。请将输出视为敏感信息:不要写入共享日志、未加密的存储或公共渠道。LinkedIn 的数据使用政策要求在收到潜在客户后的 90 天内删除响应,除非潜在客户明确同意。此工具旨在用于授权的 CRM 核对(Marketo/SFDC)。

速率限制

LinkedIn 不发布硬性速率限制数字。在实践中,预计每个应用每分钟约 100 次分析调用会受到限制。未内置 429 重试机制 — 如果达到限制,请降低调用频率或在客户端缓存结果。


何时不应使用此服务器

  • 创建或编辑广告系列、预算或创意 — 设计上为只读。广告系列创建有太多的失败模式,无法安全自动化;请使用广告系列管理器 UI。

  • 实时展示数据 — 使用 LinkedIn Insight Tag + GA4 获取近乎实时的数据。

  • 针对任意定向标准的受众规模估算 — 使用广告系列管理器受众构建器 UI 进行临时估算。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