关于 Reddit Ads
Reddit Ads MCP 服务把广告账户数据和操作接入 MCP 客户端,面向需要查看投放报告并准备广告变更的团队。它按账户白名单限制访问,写入默认关闭且需预览确认,写入负载还会依据 Reddit 的模式进行本地校验。
主要功能
- 01读取广告系列、广告组和广告
- 02查看报告、定向及受众
- 03读取素材、帖子和产品目录
- 04写入默认关闭并需确认
- 05白名单限制账户并校验负载
适用场景
- 01检查广告账户和业务信息
- 02分析广告表现及细分数据
- 03查看受众、像素或目录产品
- 04准备暂停状态的投放变更
MCP 相关
它向 MCP 客户端提供 31 个读取工具、22 个可选写入工具及两个资源。写入默认关闭,调用先生成预览,并将创建的广告系列、广告组和广告设为暂停状态。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
npx -y @getmcpads/reddit-ads-mcp-serverREDDIT_ADS_ACCESS_TOKEN密钥Reddit OAuth access token with adsread. Optional when the refresh credentials are set.REDDIT_ADS_REFRESH_TOKEN密钥Permanent refresh token. With the app credentials, the server renews tokens in memory.REDDIT_ADS_CLIENT_IDClient ID of your Reddit app, needed with the refresh token.REDDIT_ADS_CLIENT_SECRET密钥Secret of your Reddit app, needed with the refresh token.REDDIT_ADS_ACCOUNT_IDSComma-separated Reddit ad account IDs (a2_...) the server may reach. Required even for reads.REDDIT_ADS_ENABLE_WRITEStrue exposes 22 write tools, each previewing until confirm:true. Defaults to false.REDDIT_ADS_USER_AGENTUser-Agent sent to Reddit, ideally naming your app and Reddit username.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Reddit Ads MCP 服务
将你的 Reddit Ads 账户接入 MCP 客户端。
读取广告系列和报告,检查定向设置,并为明确获准的广告账户准备更改。
观看短片 · 更新内容 · 安装 · 工具参考 · 试用托管版 getmcpads
短片展示的是使用示例数据的托管版 getmcpads。从创意素材库和提醒,到 Google Sheets 导出和批量发布,其 MCP Apps 均属于托管产品。本仓库提供独立的原生 API 工具。
31 个读取工具 · 22 个写入工具,默认禁用。
使用你自己的平台凭据,在本地运行;并使用支持 stdio MCP 的客户端,例如 Claude Desktop、Claude Code 或 Cursor。请求会直接发送到平台。如需托管连接,包括受支持的 ChatGPT 配置,请使用托管版。
更新内容
v1.0.0:首个独立版本 · 2026 年 10 月 23 日
- 移植 getmcpads 的原生 Reddit Ads API v3 工具,保留其名称、架构和所有权检查:31 个读取工具和 22 个写入工具,另含两个资源。
- 使用固定于 2026-09-11 的 Reddit 自有架构,在本地验证写入载荷。
- 要求明确指定广告账户允许列表,默认设为只读,并预览每次写入。创建的广告系列、广告组和广告均处于暂停状态。
- 使用刷新令牌在内存中续期访问令牌,不写入磁盘。
- 使用固定的 Reddit 主机、禁用重定向、设置超时、限制响应大小并隐藏凭据,且不自动重试写入。
- 要求使用包含 2026 年 10 月安全修复的 Node.js 版本,并在 CI 中检查 Node 22、24 和 26。
- 不包含托管版创意素材 UI、提醒、导出功能或 MCP Apps 集成。
源同步:SOURCE_SYNC.md。
升级说明
需要 Node.js 22.23.4、24.22.1、26.12.1 或这些版本系列中的更新版本。CI 覆盖 Node 22、24 和 26;如果使用较旧的运行时,服务会向 stderr 打印警告。写入功能仍为可选,且需要明确确认。托管版创意素材集成和 MCP Apps UI 不在此版本范围内。
安装此版本
这是一个 GitHub 源代码发行版。npm 和 MCP Registry 版本会单独发布。以下命令指定此确切版本;本文档后面的未固定版本 npx 示例则使用 npm 上当前可用的版本。
git clone --branch v1.0.0 --depth 1 https://github.com/get-mcp-ads/reddit-ads-mcp-server.git
cd reddit-ads-mcp-server
npm ci
npm run build
配置 MCP 客户端,使用 node 运行 dist/cli.js 的绝对路径,并提供下文说明的平台凭据。软件包发布到 npm 后,同一服务也可通过 npx -y @getmcpads/reddit-ads-mcp-server 运行。Claude Desktop 配置项示例如下:
{
"mcpServers": {
"reddit-ads": {
"command": "npx",
"args": ["-y", "@getmcpads/reddit-ads-mcp-server"],
"env": {
"REDDIT_ADS_REFRESH_TOKEN": "your-refresh-token",
"REDDIT_ADS_CLIENT_ID": "your-app-client-id",
"REDDIT_ADS_CLIENT_SECRET": "your-app-secret",
"REDDIT_ADS_ACCOUNT_IDS": "a2_abc123"
}
}
}
}
托管连接。 通过托管的 getmcpads 使用 Reddit Ads。连接你的账户,选择助手可以访问的数据,并使用托管的 MCP 连接。当前功能和套餐请参阅网站。
配置
通过客户端的密钥配置提供以下环境变量:
| 变量 | 用途 |
|---|---|
REDDIT_ADS_ACCESS_TOKEN | 具有 adsread 权限的 OAuth 访问令牌;如果启用写入功能,还需具有 adsedit 权限。设置以下三个刷新变量后,此项为可选。 |
REDDIT_ADS_REFRESH_TOKEN | 永久刷新令牌。与下方两个变量一起使用时,服务会在内存中续期访问令牌。 |
REDDIT_ADS_CLIENT_ID | Reddit 应用的客户端 ID,与刷新令牌配合使用时必需。 |
REDDIT_ADS_CLIENT_SECRET | Reddit 应用的密钥,与刷新令牌配合使用时必需。 |
REDDIT_ADS_ACCOUNT_IDS | 必需的广告账户 ID,多个 ID 以逗号分隔,例如 a2_abc123。其他所有账户均会被拒绝访问,读取操作也不例外。 |
REDDIT_ADS_ENABLE_WRITES | 默认为 false。只有值严格等于 true 时,才会开放 22 个写入工具。 |
REDDIT_ADS_USER_AGENT | 可选。Reddit 要求客户端标识自身,例如 node:my-ads-app:v1.0.0 (by /u/your_username)。 |
按照 Reddit Ads API 文档中的说明注册开发者应用并申请 Ads API 访问权限。然后运行 Reddit 的 OAuth 授权码流程,申请 adsread 权限;只有计划启用写入功能时才申请 adsedit 权限,并将 duration=permanent 设置为永久,以获取刷新令牌。
Reddit 访问令牌约一小时后过期。日常使用时,请提供刷新令牌和应用凭据;单独使用访问令牌则只能工作到令牌过期。
此软件包接受令牌,但不会运行 OAuth 浏览器流程,也绝不会将续期后的令牌写入磁盘。Reddit 广告账户 ID 以 a2_ 开头;business ID 则是另一种值。
npm run doctor 会报告哪些变量已设置(不会打印任何变量值),并检查你的 Node.js 版本是否包含 2026 年 10 月的安全修复。首次调用时请运行 reddit_health_check:它会读取账户及其 business、货币和时区。
安全性与覆盖范围
默认情况下,写入操作会先预览。再次调用并设置 confirm: true 前,请检查确切的账户、目标和负载。
广告系列、广告组和广告都会以暂停状态创建。启用广告可能会消耗广告预算;将 configured_status 设为 ACTIVE 的预览会通过 activationMaySpend 说明这一点。
如果写入结果不确定,请勿自动重试。应先读取账户并核对。仅当 Reddit 因请求尚未执行而返回 HTTP 401 时,服务才会在续期令牌后重试一次。
账户允许列表适用于每个请求。每个实体读取操作都会直接或通过其个人资料、业务或目录检查广告账户。确认写入前,引用的广告系列、广告组、帖子、受众、像素、商品集、个人资料和素材也会以同样方式检查。
写入负载会根据固定于 2026-09-11 的 Reddit 架构进行验证。计费字段和计算得出的状态会被拒绝。通过本地验证并不代表服务提供方会接受。
预算、出价和 SPEND 的单位均为微货币,即账户货币的百万分之一。其他报告字段保留其原生单位。分页游标使用 Reddit 自己的页面令牌。
请求只会发送到 ads-api.reddit.com,令牌续期时则发送到 www.reddit.com。请求不会跟随重定向。每个请求都有超时和响应大小限制。所有结果和错误中的凭据都会被隐藏。
Reddit 返回的媒体 URL 会作为数据传递。本服务绝不会下载这些媒体。
本服务有意不开放部分 Reddit 功能:
- 上传客户名单成员和注入转化事件。
- 提交潜在客户信息,以及下载任何其他个人记录。潜在客户表单仅可作为配置读取。
- 商品 Feed、计费和资金工具。
- 具有破坏性的删除操作。状态更新仅接受
PAUSED和ACTIVE,且无法将已保存的受众设为DELETED。 - 现场潜在客户表单创建功能,Reddit 已于 2026 年 9 月 21 日终止该功能。
本服务开放的是 Reddit Ads API 中经过审核的子集,不会自动开放上游新增的端点。托管创意素材库、提醒、导出和 MCP Apps UI 均不包含在内。
如需查看确切架构,请使用 tools/list 或 server-card.json;如需查看固定的写入架构,请使用 reddit_get_write_schema;服务提供方的详细信息请参阅 Reddit 的 API 参考。
托管选项
getmcpads for Reddit Ads 可管理托管连接和账户选择。 托管版和源码发布版可能有所不同。联系方式:[email protected]。
开发
npm run typecheck
npm run lint
npm run build
npm test
npm run catalog
所有测试均使用合成响应离线运行,不会更改任何实时账户。
工具
下方列出了所有工具。完整的参数和输出架构请参阅 server-card.json。
31 个读取工具
| 工具 | 用途 | | --- | --- | | `reddit_get_setup_guide` | 介绍此服务的覆盖范围、前置条件、单位、重命名规则和已知限制 | | `reddit_get_write_schema` | 获取一项写入操作固定的原生架构,包括定位方式和格式 | | `reddit_get_reporting_schema` | 获取 Reddit 接受的所有报告指标和细分名称 | | `reddit_health_check` | 读取允许访问的广告账户、所属企业、货币和时区 | | `reddit_get_campaigns` | 列出广告系列及其原生配置和状态 | | `reddit_get_campaign` | 检查账户后读取一个广告系列 | | `reddit_get_ad_groups` | 列出广告组及其原生配置和状态 | | `reddit_get_ad_group` | 检查账户后读取一个广告组 | | `reddit_get_ads` | 列出广告及其原生配置和状态 | | `reddit_get_ad` | 检查账户后读取一个广告 | | `reddit_get_saved_audiences` | 列出已保存的受众 | | `reddit_get_saved_audience` | 检查账户后读取一个已保存的受众 | | `reddit_get_custom_audiences` | 列出自定义受众 | | `reddit_get_custom_audience` | 检查账户后读取一个自定义受众 | | `reddit_get_lead_gen_forms` | 列出潜在客户表单配置,不会读取潜在客户提交内容 | | `reddit_get_lead_form` | 检查账户后读取一个潜在客户表单配置 | | `reddit_get_targeting` | 读取广告组的已配置定位条件 | | `reddit_get_targeting_options` | 查找有效的地理位置、语言、兴趣、设备、运营商和社区 | | `reddit_get_profiles` | 列出关联到广告账户的个人资料 | | `reddit_get_pixels` | 列出广告账户可用的像素 | | `reddit_get_insights` | 运行原生报告,包含指标、最多三个细分、UTC 日期和分页 | | `reddit_get_creative_assets` | 列出关联个人资料的素材库 | | `reddit_get_posts` | 列出关联个人资料的结构化帖子 | | `reddit_get_post` | 检查个人资料后读取一个结构化帖子 | | `reddit_get_asset_uploads` | 轮询创意素材导入的处理状态 | | `reddit_get_post_job` | 轮询结构化帖子创建任务及其签名回执 | | `reddit_list_ad_creatives` | 查找广告所用的图片和视频,并明确说明覆盖范围 | | `reddit_get_catalogs` | 列出拥有该广告账户的企业的商品目录 | | `reddit_get_products` | 列出自有商品目录中的商品 | | `reddit_get_product_sets` | 列出自有商品目录中的商品集 | | `reddit_get_catalog_imports` | 列出自有商品目录的导入记录 |22 个写入工具
默认禁用。除非明确确认,否则调用只会预览。使用前请检查配置和确切架构。
| 工具 | 用途 | | --- | --- | | `reddit_create_campaign` | 创建广告系列,始终处于暂停状态 | | `reddit_update_campaign` | 更新广告系列字段,包括暂停或重新激活 | | `reddit_create_ad_group` | 创建广告组,始终处于暂停状态 | | `reddit_update_ad_group` | 更新广告组字段,包括定向、出价和状态 | | `reddit_create_ad` | 创建广告,始终处于暂停状态 | | `reddit_update_ad` | 更新广告字段,包括暂停或重新激活 | | `reddit_create_saved_audience` | 创建已保存的受众 | | `reddit_update_saved_audience` | 更新已保存的受众,不支持删除 | | `reddit_create_custom_audience` | 创建像素、互动或空的客户名单受众 | | `reddit_upload_creative_assets` | 将图片、视频或标题导入个人资料的素材库 | | `reddit_create_post` | 启动结构化帖子创建任务并返回回执 | | `reddit_create_catalog` | 为所属企业创建产品目录 | | `reddit_create_product_set` | 在自有目录中创建产品集 | | `reddit_upsert_products` | 在自有目录中创建或更新产品 | | `reddit_rename_campaign` | 重命名广告系列,不做其他更改 | | `reddit_rename_ad_group` | 重命名广告组,不做其他更改 | | `reddit_rename_ad` | 重命名广告,不做其他更改 | | `reddit_rename_ad_account` | 重命名广告账户,不做其他更改 | | `reddit_update_post` | 更改是否允许对结构化帖子发表评论 | | `reddit_update_asset` | 重命名创意素材 | | `reddit_update_catalog` | 更新目录名称或事件来源 | | `reddit_update_product_set` | 更新产品集名称或筛选条件 |资源
| 资源 | 内容 |
|---|---|
reddit-ads://guide | 设置指南,也由 reddit_get_setup_guide 返回 |
reddit-ads://reporting-catalog | 每项指标及其类别和单位说明,以及每个维度是否为细分项 |
许可证
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 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。
