linkedin-campaign-manager-mcp
LinkedIn 广告系列管理器 MCP
用于 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 广告系列效果。
工具
工具 | 功能 |
| 用户可访问的所有广告账户,包含状态和货币。 |
| 单个账户详情:货币、状态、类型、账单信息。 |
| 账户中的广告系列;可按状态或广告系列组筛选。 |
| 完整的广告系列详情:定向标准、出价、预算、目标。 |
| 广告系列组(共享预算/目标容器)。 |
| 广告创意;可按广告系列或状态筛选。 |
| 完整的创意详情:标题、文案、URL、图片/视频 URN。 |
| 指定日期范围内的展示次数/点击次数/支出/转化次数/潜在客户数。支持 DAILY/MONTHLY/YEARLY/ALL 粒度。 |
| 按公司/公司规模/行业/职能/职位/资历/地区/国家划分的效果。 |
| WoW/MoM/YoY 对比,服务器端计算每个实体的 _current/_prior/_delta/_pct_change 列。 |
| 每个创意的视频完成漏斗:开始 → 25% → 50% → 75% → 完成 + 完成率。 |
| 在可配置周期内,活跃广告系列的支出与预算使用百分比。 |
| Insight Tag 转化事件定义:类型、归因窗口、启用状态。 |
| 按转化事件(CONVERSION 维度)划分的效果:点击后转化与浏览后转化细分。 |
| DMP 分段:匹配受众、公司列表、组合/类似受众分段 + 大小。 |
| 定向值的即时搜索(职位、技能、公司、行业、地点、资历)。 |
| 潜在客户开发表单 + 问题配置 + 状态。 |
| 包含 PII(姓名、电子邮件、公司、职位)的实际表单提交数据。 |
| 每个创意的 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 build2. 创建 LinkedIn 开发者应用
Marketing API 是受限的。您需要一个具有特定产品批准的 LinkedIn 开发者应用:
前往 developer.linkedin.com → 创建应用(关联到您的公司主页)。
产品选项卡 — 请求访问:
Marketing Developer Platform(涵盖r_ads,r_ads_reporting)Lead Gen Forms或Community Management API(涵盖r_ads_leadgen_automation)
LinkedIn 会手动审核应用访问权限 — 通常需要 2–6 周。
Auth 选项卡 → 授权重定向 URL — 添加:
http://127.0.0.1:53123(如果您设置了不同的LINKEDIN_OAUTH_PORT,请相应更改53123)。从 Auth 选项卡复制 Client ID 和 Client 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.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 服务器下。
环境变量
变量 | 必需 | 默认 | 描述 |
| 是 | — | OAuth 应用客户端 ID |
| 是 | — | OAuth 应用客户端密钥 |
| 否 |
| 读取/写入令牌文件的路径 |
| 推荐 | — | 数字账户 ID;当未传递 |
| 否 |
| OAuth 重定向的环回端口 |
| 否 |
| LinkedIn Rosetta API 版本 (YYYYMM) |
URN 处理
LinkedIn 资源由 URN 标识:urn:li:sponsoredAccount:123, urn:li:sponsoredCampaign:456 等。
所有工具输入都接受纯数字 ID 或完整 URN — 客户端会自动包装纯数字 ID。数字 ID 出现在广告系列管理器 URL 中 (/accounts/<id>/, /campaigns/<id>/)。
日期输入
所有日期参数接受:
输入 | 含义 |
| 字面 ISO 日期 |
| 不言自明 |
| 今天之前的 N 个日历日 |
默认范围:28daysAgo → yesterday。
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
Maintenance
Related MCP Connectors
Managed LinkedIn MCP server for AI agents: search, connect, message and enrich on accounts you own.
233 tools for Google, Microsoft, TikTok, LinkedIn Ads in Claude or ChatGPT. Writes need approval.
Search Meta, Google Ads, LinkedIn, and TikTok ad libraries plus creative analysis via MCP.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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