Reddit Ads

io.github.mharnett由 GitHub 帳號 mharnett 發布v1.0.1更新於 Oct 24, 2026

Reddit Ads MCP: campaigns, ad groups, ads, reporting, and audience targeting.

已驗證STDIO僅桌面資料與分析商業與電商

概覽

AI 產生的概覽

針對 Reddit Ads API v3 的 MCP 伺服器,讓助理讀取廣告活動、廣告群組、廣告與成效報表,並可選擇建立或暫停它們。

可以做什麼
  • 查看帳戶資訊並列出可存取的廣告帳戶
  • 依狀態篩選列出廣告活動、廣告群組與廣告
  • 取得彙總成效報表與逐日成效明細
  • 建立與更新廣告活動、廣告群組與廣告,包含定向與創意
  • 批次暫停或啟用多個廣告活動、廣告群組或廣告
  • 搜尋可用於定向的 subreddit、興趣類別與地理目標
適用情境
適合管理 Reddit 廣告的情境:讓助理檢查帳戶結構、彙整花費與成效,或在對話中準備與調整廣告活動及定向設定。
執行需求
以 npm 套件 mcp-reddit-ads 形式在使用者本機的 Node.js 上執行,需寫入 MCP 用戶端設定檔。需要一個 script 類型的 Reddit OAuth 應用程式,以及 REDDIT_CLIENT_ID、REDDIT_CLIENT_SECRET 和具備 adsread、adsedit、read 範圍的 REDDIT_REFRESH_TOKEN。可選的 config.json 存放帳戶與業務預設值,環境變數優先。
安裝前請注意
需要 Reddit OAuth 憑證,包括用戶端密鑰與更新權杖;README 提醒不要分享或提交設定檔。除非將 REDDIT_ADS_MCP_WRITE 設為 true,否則寫入類工具會被隱藏並拒絕呼叫;開啟後助理即可變更線上廣告活動與廣告花費。新建實體預設為暫停,但更新與批次暫停/啟用會立即生效。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Reddit Ads,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

mcp-reddit-ads

MCP server for Reddit Ads API v3 -- campaign management, ad creation, performance reporting, and audience targeting via Claude.

Features

  • 18 tools covering full CRUD for campaigns, ad groups, and ads
  • Performance reports with daily breakdowns
  • Subreddit, interest, and geographic targeting
  • Bulk pause/enable operations
  • Safe by default: all new entities created in PAUSED status
  • Budget inputs in dollars (auto-converts to Reddit's microcurrency format)

Installation

bash
npm install mcp-reddit-ads

Or clone the repository:

bash
git clone https://github.com/mharnett/mcp-reddit-ads.gitcd mcp-reddit-adsnpm installnpm run build

Configuration

Security: Never share your .mcp.json file or commit it to git -- it may contain API credentials. Add .mcp.json to your .gitignore.

1. Reddit OAuth App

Create a Reddit OAuth app at reddit.com/prefs/apps:

  • Select "script" type
  • Note the client ID and client secret
  • Obtain a refresh token with adsread adsedit read scopes

2. Environment Variables

Set credentials via environment variables:

VariableDescription
REDDIT_CLIENT_IDOAuth app client ID
REDDIT_CLIENT_SECRETOAuth app client secret
REDDIT_REFRESH_TOKENOAuth refresh token with ads scopes
REDDIT_ADS_MCP_WRITESet to true to enable mutating tools (create/update/pause/enable). Unset = read-only (default).

Read-only by default

As of v1.1.0 the MCP starts in read-only mode. The 10 read/report/targeting tools are always exposed, but the 8 mutating tools (create/update campaigns, ad groups, ads, and bulk pause/enable) are hidden from the tool list and refused at call time unless REDDIT_ADS_MCP_WRITE=true is set in the server's environment. This guards against a casual chat message accidentally mutating live ad spend. Enable writes deliberately, for the sessions where you actually intend to ship changes.

3. Config File

Copy config.example.json to config.json and fill in defaults:

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  }}

Environment variables take precedence over config file values.

Usage

Claude Code (.mcp.json)

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: Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows).

Tools

Context

ToolDescription
reddit_ads_get_client_contextGet account info and verify API connectivity
reddit_ads_get_accountsList all ad accounts accessible to the authenticated user

Read

ToolDescription
reddit_ads_get_campaignsList campaigns with optional status filter
reddit_ads_get_ad_groupsList ad groups for a campaign
reddit_ads_get_adsList ads for an ad group
reddit_ads_get_performance_reportAggregated performance metrics for campaigns/ad groups/ads
reddit_ads_get_daily_performanceDay-by-day performance breakdown

Write: Campaigns

ToolDescription
reddit_ads_create_campaignCreate a new campaign (PAUSED by default)
reddit_ads_update_campaignUpdate campaign name, budget, objective, or status

Write: Ad Groups

ToolDescription
reddit_ads_create_ad_groupCreate a new ad group with targeting (PAUSED by default)
reddit_ads_update_ad_groupUpdate ad group bid, targeting, or status

Write: Ads

ToolDescription
reddit_ads_create_adCreate a new ad with headline, body, URL, and media (PAUSED by default)
reddit_ads_update_adUpdate ad creative or status

Bulk Operations

ToolDescription
reddit_ads_pause_itemsPause multiple campaigns, ad groups, or ads at once
reddit_ads_enable_itemsEnable multiple campaigns, ad groups, or ads at once

Targeting

ToolDescription
reddit_ads_search_subredditsSearch for subreddits by keyword for targeting
reddit_ads_get_interest_categoriesList available interest categories for targeting
reddit_ads_search_geo_targetsSearch for geographic targeting options (countries, regions, metros)

Key Conventions

  • Spend values are returned from the API in microcurrency (1 dollar = 1,000,000 microcurrency units). Divide by 1,000,000 to get dollar amounts. Budget inputs accept dollars and auto-convert.
  • Dates and times use ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ).
  • New entities default to PAUSED status. Explicitly set status to ACTIVE to go live.
  • Report metrics default to the set configured in config.json but can be overridden per request.

Architecture

  • Resilience: Uses cockatiel for retry policies and circuit breaking on API calls
  • Logging: Structured logging via pino
  • Response truncation: Large API responses are truncated at 200KB to stay within MCP message limits
  • Auth: OAuth 2.0 refresh token flow with automatic access token renewal

License

MIT -- see LICENSE.

Author

Built by Mark Harnett / drak-marketing.

來源:README.md,提交 55f2f3c

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.0.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分