mcpField
R
reddit-ads

reddit-ads

本地服务
github.com/mharnett商业与营销37 周前更新

关于 reddit-ads

reddit-ads 是用于管理 Reddit Ads 广告系列并查看成效的 MCP 服务。它支持广告系列、广告组和广告操作、定向与报告,默认禁用写入功能。

主要功能

  1. 01管理广告系列、广告组和广告
  2. 02查看成效报告与每日数据
  3. 03搜索 Subreddit 和兴趣定向
  4. 04查找地理定向选项
  5. 05批量暂停或启用广告对象
  6. 06默认禁用写入操作

适用场景

  1. 01查看广告系列和广告成效
  2. 02为广告组设置定向选项
  3. 03批量暂停或启用广告对象
  4. 04分析期间保持 API 只读访问

MCP 相关

将 Reddit Ads API v3 操作作为 MCP 工具提供。除非设置 `REDDIT_ADS_MCP_WRITE=true`,否则写入工具会隐藏并拒绝调用。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"mharnett-reddit-ads": {
"command": "npx",
"args": [
"-y",
"mcp-reddit-ads"
],
"env": {
"REDDIT_CLIENT_ID": "<REDDIT_CLIENT_ID>",
"REDDIT_CLIENT_SECRET": "<REDDIT_CLIENT_SECRET>",
"REDDIT_REFRESH_TOKEN": "<REDDIT_REFRESH_TOKEN>"
}
}
}
}
启动命令npx -y mcp-reddit-ads
需要配置的环境变量
REDDIT_CLIENT_IDReddit OAuth app client ID
REDDIT_CLIENT_SECRET密钥Reddit OAuth app client secret
REDDIT_REFRESH_TOKEN密钥Reddit OAuth refresh token

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmmcp-reddit-ads1.0.1

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

mcp-reddit-ads

Reddit Ads API v3 的 MCP 服务——通过 Claude 管理广告系列、创建广告、报告效果和定位受众。

功能

  • 18 个工具,覆盖广告系列、广告组和广告的完整 CRUD 操作
  • 提供按天细分的效果报告
  • Subreddit、兴趣和地理位置定位
  • 批量暂停/启用操作
  • 默认安全:所有新实体均以 PAUSED 状态创建
  • 预算以美元为单位输入(自动转换为 Reddit 的微货币格式)

安装

npm install mcp-reddit-ads

或者克隆仓库:

git clone https://github.com/mharnett/mcp-reddit-ads.git
cd mcp-reddit-ads
npm install
npm run build

配置

安全性: 切勿分享 .mcp.json 文件或将其提交到 git——该文件可能包含 API 凭据。将 .mcp.json 添加到 .gitignore。

1. Reddit OAuth 应用

在 reddit.com/prefs/apps 创建 Reddit OAuth 应用:

  • 选择 "script" 类型
  • 记下客户端 ID 和客户端密钥
  • 使用 adsread adsedit read 作用域获取刷新令牌
2. 环境变量

通过环境变量设置凭据:

变量描述
REDDIT_CLIENT_IDOAuth 应用客户端 ID
REDDIT_CLIENT_SECRETOAuth 应用客户端密钥
REDDIT_REFRESH_TOKEN具有 ads 作用域的 OAuth 刷新令牌
REDDIT_ADS_MCP_WRITE设置为 true 以启用修改工具(创建/更新/暂停/启用)。未设置 = 只读(默认)。
默认只读

从 v1.1.0 开始,MCP 默认以只读模式启动。10 个读取/报告/定位工具始终可用,但 8 个修改工具(创建/更新广告系列、广告组、广告,以及批量暂停/启用)不会显示在工具列表中,并且调用时会被拒绝,除非在服务的环境中设置 REDDIT_ADS_MCP_WRITE=true。这样可以防止随意的聊天消息意外更改正在投放的广告支出。请谨慎启用写入功能,仅在确实打算提交更改的会话中启用。

3. 配置文件

将 config.example.json 复制为 config.json 并填写默认值:

{
  "reddit_api": {
    "base_url": "https://ads-api.reddit.com/api/v3",
    "auth": {
      "client_id": "",
      "client_secret": "",
      "refresh_token": "",
      "user_agent": "reddit-ad-mcp/1.0"
    }
  },
  "defaults": {
    "account_id": "",
    "business_id": "",
    "report_metrics": ["impressions", "clicks", "spend", "ctr", "cpc", "ecpm"],
    "date_range_days": 7
  }
}

环境变量的优先级高于配置文件中的值。

用法

Claude Code (.mcp.json)
{
  "mcpServers": {
    "reddit-ads": {
      "command": "node",
      "args": ["/path/to/mcp-reddit-ads/dist/index.js"],
      "env": {
        "REDDIT_CLIENT_ID": "$(security find-generic-password -a reddit-ads-mcp -s REDDIT_CLIENT_ID -w)",
        "REDDIT_CLIENT_SECRET": "$(security find-generic-password -a reddit-ads-mcp -s REDDIT_CLIENT_SECRET -w)",
        "REDDIT_REFRESH_TOKEN": "$(security find-generic-password -a reddit-ads-mcp -s REDDIT_REFRESH_TOKEN -w)"
      }
    }
  }
}

Claude Desktop: 将配置添加到 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)或 %APPDATA%\Claude\claude_desktop_config.json(Windows)。

工具

上下文
工具描述
reddit_ads_get_client_context获取账户信息并验证 API 连通性
reddit_ads_get_accounts列出已通过身份验证的用户可访问的所有广告账户
读取
工具描述
reddit_ads_get_campaigns列出广告系列,可选按状态筛选
reddit_ads_get_ad_groups列出某个广告系列的广告组
reddit_ads_get_ads列出某个广告组的广告
reddit_ads_get_performance_report汇总广告系列/广告组/广告的效果指标
reddit_ads_get_daily_performance按天细分效果
写入:广告系列
工具描述
reddit_ads_create_campaign创建新的广告系列(默认 PAUSED)
reddit_ads_update_campaign更新广告系列名称、预算、目标或状态
写入:广告组
工具描述
reddit_ads_create_ad_group创建带有定位设置的新广告组(默认 PAUSED)
reddit_ads_update_ad_group更新广告组出价、定位设置或状态
写入:广告
工具描述
reddit_ads_create_ad创建包含标题、正文、URL 和媒体的新广告(默认 PAUSED)
reddit_ads_update_ad更新广告创意或状态
批量操作
工具描述
reddit_ads_pause_items一次暂停多个广告系列、广告组或广告
reddit_ads_enable_items一次启用多个广告系列、广告组或广告
定向
工具描述
reddit_ads_search_subreddits按关键词搜索 subreddit 以进行定向
reddit_ads_get_interest_categories列出可用于定向的兴趣类别
reddit_ads_search_geo_targets搜索地理定向选项(国家、地区、都市区)

关键约定

  • 支出金额由 API 以微货币为单位返回(1 美元 = 1,000,000 微货币单位)。除以 1,000,000 即可得到美元金额。预算输入接受美元,并会自动转换。
  • 日期和时间采用 ISO 8601 格式(YYYY-MM-DDTHH:MM:SSZ)。
  • 新实体的默认状态为 PAUSED。请明确将状态设为 ACTIVE 以启用。
  • 报告指标默认使用 config.json 中配置的指标集,但可按请求覆盖。

架构

  • 弹性:使用 cockatiel 为 API 调用提供重试策略和断路机制
  • 日志记录:通过 pino 进行结构化日志记录
  • 响应截断:将大型 API 响应截断至 200KB,以符合 MCP 消息限制
  • 身份验证:采用 OAuth 2.0 刷新令牌流程,自动续订访问令牌

许可证

MIT —— 详见 LICENSE。

作者

由 Mark Harnett / drak-marketing 构建。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。