关于 LinkedIn Ads
LinkedIn Ads MCP 服务将广告账户数据和操作接入 MCP 客户端,适合需要查看投放并准备广告变更的团队。提供账户范围限制、默认关闭的写入工具和逐项预览确认。
主要功能
- 01读取账户、广告系列与素材
- 02分析表现、人口统计和归因
- 03查询定向与媒体库
- 04写入工具默认关闭并预览
- 05限制账户范围并验证实体
适用场景
- 01检查广告账户健康状态
- 02分析广告表现与受众人口统计
- 03准备广告系列或广告草稿
- 04验证报告查询和定向选项
MCP 相关
作为 MCP 服务,它向兼容 stdio 的 MCP 客户端提供 18 个读取工具、15 个可选写入工具和 6 个资源。写入需启用并明确确认,所有请求直接发送至 LinkedIn Marketing API。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @getmcpads/linkedin-ads-mcp-serverLINKEDIN_ADS_ACCESS_TOKEN密钥Member access token from your own LinkedIn app, with r_ads and r_ads_reporting. Keep it secret.LINKEDIN_ADS_REFRESH_TOKEN密钥Programmatic refresh token. With the client ID and secret, the token is renewed in memory.LINKEDIN_ADS_CLIENT_IDClient ID of your LinkedIn app, needed for refresh.LINKEDIN_ADS_CLIENT_SECRET密钥Client secret of your LinkedIn app, needed for refresh.LINKEDIN_ADS_ACCOUNT_IDSComma-separated numeric ad account IDs this server may access, 1 to 100. Required even for reads.LINKEDIN_ADS_SCOPESScopes actually granted to the token. When set, writes require rw_ads.LINKEDIN_ADS_ENABLE_WRITEStrue exposes the 15 write tools. Defaults to false.LINKEDIN_ADS_API_VERSIONLinkedIn-Version header as YYYYMM. Defaults to 202608.LINKEDIN_ADS_LOG_LEVELdebug, info, warn or error. Logs go to stderr. Defaults to info.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
LinkedIn Ads MCP 服务
将您的 LinkedIn Ads 账户接入 MCP 客户端。
读取广告系列结构、效果和职业人群统计信息,并为明确选定的账户准备广告系列和广告草稿。
观看影片 · 更新内容 · 安装 · 工具参考 · 试用托管版 getmcpads
影片展示的是使用示例数据的托管版 getmcpads。从创意素材库和提醒,到 Google Sheets 导出和批量发布,这些 MCP Apps 都属于托管产品。本仓库提供独立的原生 API 工具。
18 个读取工具 · 15 个写入工具,默认禁用。
使用您自己的 LinkedIn 应用凭据,以及支持 stdio MCP 的客户端(如 Claude Desktop、Claude Code 或 Cursor),即可在本地运行。您的请求会直接发送至 LinkedIn Marketing API。如需托管连接(包括受支持的 ChatGPT 配置),请使用托管版。
更新内容
v1.0.0:首个独立版本 · 2026 年 10 月 23 日
- 首个独立版本,移植自 getmcpads 网关中原生 LinkedIn Ads 工具的修订版
3e1c2c8。 - 18 个读取工具:账户发现与运行状况检查、账户详情、广告系列组、广告系列、创意素材、单个实体、设置要求、分析和统计报告、职业人群统计、收入归因、离线查询验证、投放状态、定向查询、媒体库以及广告使用的媒体。
- 15 个写入工具,仅在设置
LINKEDIN_ADS_ENABLE_WRITES=true时开放:创建广告系列组、广告系列、文字广告以及赞助图片或视频广告的草稿,编辑实体、4 个重命名工具、复制广告、删除草稿、签名分段上传以及更新媒体库。每次写入操作都会生成预览,除非confirm为true,且不会启用投放。 - 6 个资源:清单、指标目录、数据透视、报告规则、定向和配方。
- 必须设置
LINKEDIN_ADS_ACCOUNT_IDS,且在发出任何请求前拒绝访问其他账户。会根据账户验证子级筛选条件和父级实体。 - 仅联系
src/core/http.ts中声明的 LinkedIn API、令牌和上传端点;绝不跟随重定向;限制所有响应的大小,并从结果和错误中删去令牌。设置了刷新凭据后,会在内存中续期访问令牌。 - 需要 Node.js 22.23.4、24.22.1、26.12.1 或更新版本;使用较旧版本启动时,会向 stderr 输出警告。CI 覆盖 Node 22、24 和 26。
- 使用
release.yml从版本标签发布:先发布至 npm 并附带来源证明,再发布 GitHub 版本,最后发布至 MCP Registry。
源码同步:SOURCE_SYNC.md。
升级说明
需要 Node.js 22.23.4、24.22.1、26.12.1 或更高版本。这些版本包含 2026 年 10 月的安全修复;如果服务运行在更旧的版本上,会在 stderr 中打印警告。CI 覆盖 Node 22、24 和 26。
这是首个版本。托管创意图库、营销活动发布和 MCP Apps UI 不在此版本范围内。
安装此版本
这是 GitHub 源码发行版。npm 和 MCP Registry 版本会单独发布。以下命令会选择此确切版本;本文档后面的未固定版本 npx 示例会选择当前在 npm 上可用的版本。
git clone --branch v1.0.0 --depth 1 https://github.com/get-mcp-ads/linkedin-ads-mcp-server.git
cd linkedin-ads-mcp-server
npm ci
npm run build
将 MCP 客户端配置为运行 node,并传入 dist/cli.js 的绝对路径以及下文所述的变量。该软件包发布到 npm 后,客户端也可以改为运行 npx -y @getmcpads/linkedin-ads-mcp-server,这会启动 linkedin-ads-mcp 二进制文件。
{
"mcpServers": {
"linkedin-ads": {
"command": "node",
"args": ["/absolute/path/to/linkedin-ads-mcp-server/dist/cli.js"],
"env": {
"LINKEDIN_ADS_ACCESS_TOKEN": "your-member-access-token",
"LINKEDIN_ADS_ACCOUNT_IDS": "512345678"
}
}
}
}
npm run doctor 会报告哪些变量已设置,但绝不会显示其值,并检查 Node.js 版本。
更倾向于使用托管连接? 通过托管版 getmcpads 使用 LinkedIn Ads。连接你的账户,选择助手可以访问的数据,并使用托管 MCP 连接。当前功能和套餐请参阅网站。
配置
通过客户端的密钥配置提供以下环境变量:
| 变量 | 用途 |
|---|---|
LINKEDIN_ADS_ACCESS_TOKEN | 来自你自己的 LinkedIn 应用的成员访问令牌。除非已设置以下三个刷新变量,否则必填。 |
LINKEDIN_ADS_REFRESH_TOKEN | 程序化刷新令牌,适用于 LinkedIn 已批准使用此类令牌的应用。访问令牌随后会在内存中续期。 |
LINKEDIN_ADS_CLIENT_ID | 你的应用的客户端 ID。与刷新令牌配合使用。 |
LINKEDIN_ADS_CLIENT_SECRET | 你的应用的客户端密钥。与刷新令牌配合使用。 |
LINKEDIN_ADS_ACCOUNT_IDS | 必填。1 到 100 个以逗号分隔的数字广告账户 ID。所有其他账户都会在发出任何请求之前被拒绝,读取请求也不例外。 |
LINKEDIN_ADS_SCOPES | 可选。令牌实际获得授权的范围。设置后,如果没有 rw_ads,写入操作将拒绝运行。设置此项不会授予任何权限。 |
LINKEDIN_ADS_ENABLE_WRITES | 默认为 false。只有值恰好为 true 时才会公开写入工具。 |
LINKEDIN_ADS_API_VERSION | LinkedIn-Version 标头,格式为 YYYYMM。默认为 202608,即托管网关运行的版本。 |
LINKEDIN_ADS_LOG_LEVEL | debug、info、warn 或 error。日志写入 stderr。默认为 info。 |
服务会在启动时验证配置,并指出需要修正的变量。它不会运行 OAuth 浏览器流程,也不会向磁盘写入任何内容:通过刷新令牌续期的令牌会一直保留在内存中,直到进程结束。
LinkedIn 应用需要满足的条件
LinkedIn Marketing API 的访问权限按应用授予,因此此服务使用你拥有的应用运行。LinkedIn 的快速入门介绍了具体步骤:
- 创建一个 LinkedIn 专页,然后在 LinkedIn Developer Portal 中创建一个开发者应用。
- 在应用的 Products 选项卡中申请 Advertising API 产品,并填写访问申请表。LinkedIn 会审核每项申请。
- 每个应用最初都处于 Development tier:读取操作没有账户数量限制,编辑操作则仅限于你管理的五个广告账户。在此层级下,请在 Products 下的 View Ad Accounts 中添加每个广告账户 ID。Standard tier 取消编辑限制,可通过 Developer Support Portal 申请。请参阅访问层级。
- 使用 Token Generator,或自行实现授权码流程,并申请下方所列权限范围,以生成成员访问令牌。访问令牌有效期为 60 天。获准使用程序化刷新令牌的应用会获得有效期为一年的刷新令牌,此服务可使用该令牌。
此服务工具使用的权限范围:
| 权限范围 | 用途 |
|---|---|
r_ads | 读取账户、广告系列组、广告系列、创意和媒体库,以及查询定向信息。rw_ads 也允许执行这些读取操作。 |
r_ads_reporting | 用于 linkedin_get_insights、linkedin_run_statistics_report、linkedin_get_demographics、linkedin_get_revenue_attribution,以及 linkedin_health_check 中的报告探测。 |
r_organization_social | 用于 linkedin_list_ad_creatives,读取每个赞助内容广告背后的赞助帖子。 |
rw_ads | 用于所有写入工具。 |
w_organization_social | 用于 linkedin_create_media_ad,创建由广告账户所属 Company Page 发布的广告赞助暗帖。 |
LinkedIn 角色仍决定令牌可以执行的操作。即使具有 rw_ads,广告账户的 VIEWER 也只能读取;写入操作需要 ACCOUNT_BILLING_ADMIN、ACCOUNT_MANAGER、CAMPAIGN_MANAGER 或 CREATIVE_MANAGER 角色(账户角色)。媒体上传和赞助图片或视频广告归广告账户所引用的 Company Page 所有,该专页需要管理员或赞助内容发布者角色。linkedin_health_check 会列出令牌能够访问和无法访问的已配置账户。
安全性与覆盖范围
写入操作默认仅预览。再次调用并设置 confirm: true 前,请核对确切的账户、目标和参数。
广告系列组、广告系列和广告均会创建为 DRAFT,赞助帖子则使用 feedDistribution: NONE,因此不会出现在自然动态中。新广告系列默认关闭受众扩展和 LinkedIn Audience Network。没有任何工具会启动投放:启动投放(也就是开始产生费用)需在 Campaign Manager 中进行。预览会标记对预算、出价、排期或定向的编辑,因为这些编辑可能改变已在投放的广告系列的花费。
结果不确定时,请勿自动重试写入操作。如果变更已提交至 LinkedIn,但写入失败,系统会报告 verify_before_retry;如果未提交,则会报告 not_applied。此服务绝不会重试变更;读取操作遇到网络错误、HTTP 429 或 5xx 时,最多重试两次。
每次请求前都会进行账户检查。报告执行前,会验证广告系列、组和创意筛选条件是否属于该账户;每次写入都会重新读取账户及其上级实体。不接受未知参数。
请求仅会发送至 api.linkedin.com、令牌端点以及 www.linkedin.com 上的签名上传 URL,且不会跟随重定向;请求设有超时,响应大小也有限制。上传 URL 会包含在 HMAC 签名回执中,回执会在进程结束时失效;上传请求不携带令牌。所有结果和错误都会对令牌和密钥进行脱敏。
预算和出价使用账户货币的十进制字符串表示,例如 "20.00" 和 "EUR",而非微单位或美分。报告至少需要一个实体范围,最多接受 20 个字段,且上限为 15,000 行;服务会在调用前应用这些限制,并会在 LinkedIn 丢弃字段时明确说明,而不会返回零值。
此服务提供托管网关的原生 LinkedIn 工具,以及账户发现、健康检查和离线查询验证功能。本版本不包含受众规模估算、出价和供给预测、匹配受众、转化规则、潜在客户表单定义、实验、主页统计信息和通用端点读取功能。绝不会公开已提交的潜在客户数据。
请使用 tools/list 或 server-card.json 查看确切的架构,并参阅 Marketing API 文档 了解服务提供方详情。
托管选项
getmcpads for LinkedIn Ads 会管理托管连接和账户选择。 托管版和源代码发行版可能有所不同。联系方式:[email protected]。
开发
npm run typecheck
npm run lint
npm run build
npm test
npm run catalog
所有测试均使用模拟的 fetch 响应离线运行。不会读取或更改任何真实账户。
工具
下方列出了所有工具。完整的参数和输出架构请参阅 server-card.json。除 linkedin_list_ad_accounts、linkedin_health_check 和 linkedin_validate_query 外,每个工具都需要配置 adAccountId。
18 个读取工具
| 工具 | 用途 | | --- | --- | | `linkedin_health_check` | 检查令牌、可访问的已配置账户、报告端点和 API 版本,但不会返回令牌 | | `linkedin_list_ad_accounts` | 列出成员可访问的已配置广告账户,并显示币种、状态和投放状态 | | `linkedin_get_account_details` | 完整读取一个广告账户,以及在该账户中拥有角色的成员 | | `linkedin_get_campaign_groups` | 列出广告系列组及其预算、投放时间安排和投放状态 | | `linkedin_get_campaigns` | 列出广告系列及其状态、目标、格式、出价、预算和投放时间安排,可选择包含定向信息 | | `linkedin_get_creatives` | 列出创意,并显示预期状态、审核结论和投放受限原因 | | `linkedin_get_entity` | 读取一个广告系列组、广告系列或创意,并验证账户归属 | | `linkedin_get_setup_guide` | 准备变更前,读取账户、受支持的格式和原生写入要求 | | `linkedin_get_insights` | 按一个细分维度生成报告,并计算比率 | | `linkedin_run_statistics_report` | 一次按最多三个细分维度生成报告 | | `linkedin_get_demographics` | 按职业人口统计特征细分投放数据,解析名称并说明限制 | | `linkedin_get_revenue_attribution` | 读取归因于 LinkedIn 广告的 CRM 销售管道和已成交收入 | | `linkedin_validate_query` | 根据报告规则检查细分维度和指标的组合,不发送请求 | | `linkedin_get_delivery_status` | 从账户到创意,说明广告为何正在或未在投放 | | `linkedin_find_targeting` | 按名称查找原生定向 URN,例如国家或职位名称 | | `linkedin_list_media` | 列出账户的图片或视频库,并显示下载 URL 和处理状态 | | `linkedin_get_media` | 刷新单个图片或视频的 URL,并验证其媒体库关联 | | `linkedin_list_ad_creatives` | 列出广告使用的图片和视频,并显示实际广告名称和落地页 |15 个写入工具
默认禁用。除非明确确认,否则调用只会预览。使用前请检查配置和确切的架构。
| 工具 | 用途 |
|---|---|
linkedin_create_campaign_group | 创建一个 DRAFT 广告系列组 |
linkedin_create_campaign | 创建一个包含预算、出价、定向和投放时间安排的 DRAFT 文字广告或赞助内容广告系列 |
linkedin_create_text_ad | 使用账户媒体库中的图片创建一个 DRAFT 文字广告 |
linkedin_create_media_ad | 在暗帖上创建一个 DRAFT 赞助图片或视频广告 |
linkedin_update_entity | 重命名、暂停或归档,或编辑预算、出价、投放时间安排、定向或文字广告内容 |
linkedin_rename_campaign_group | 重命名广告系列组,仅此而已 |
linkedin_rename_campaign | 重命名广告系列,仅此而已 |
linkedin_rename_ad | 重命名广告(创意),仅此而已 |
linkedin_rename_ad_account | 重命名广告账户,仅此而已 |
linkedin_duplicate_ad | 将广告复制到已验证的广告系列中,并设为 DRAFT |
linkedin_delete_draft_ad | 删除一个 DRAFT 广告,不会影响其帖子或媒体 |
linkedin_initialize_upload | 开始向账户媒体库上传图片或视频,并返回已签名回执 |
linkedin_upload_part | 将文件的一部分上传到 LinkedIn 的已签名上传 URL |
linkedin_finalize_upload | 所有部分上传完成后,完成视频上传 |
linkedin_update_media | 重命名或归档媒体库中的图片或视频 |
6 个资源
| 资源 | 内容 | | --- | --- | | `linkedin://manifest` | 已配置的账户、API 版本、实体层级和安全规则 | | `linkedin://metrics` | 指标目录,包含计算比率的公式,以及各项指标不可用的细分维度 | | `linkedin://pivots` | 细分维度及提供各项维度的查找工具 | | `linkedin://reporting-rules` | 范围限定、行数上限、保留期限、数据新鲜度、人口统计限制和请求限流 | | `linkedin://targeting` | 定向条件的结构、查找方式和受众限制 | | `linkedin://recipes` | 常见问题的工具调用序列 |许可证
Apache License 2.0。请参阅 NOTICE。
更多 getmcpads 项目
Meta Ads · Google Ads · Google Analytics 4 · Google Search Console · TikTok Ads · Pinterest Ads · X Ads
由 getmcpads 的 Emmanuel 维护。问题请联系:[email protected]。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
