Reddit Ads

com.getmcpads由 getmcpads.com 发布v1.0.1更新于 Nov 2, 2026

Reddit Ads MCP server: 31 read tools, 22 opt-in preview-first writes.

已验证STDIO仅桌面数据与分析商业与电商

概览

AI 生成的概览

本地 stdio MCP 服务器,让助手读取 Reddit 广告的广告系列、定向与报表,并可选地为指定广告账户准备需先预览的修改。

可以做什么
  • 读取广告系列、广告组和广告,含原生配置与状态
  • 查看定向设置、可选定向项、已保存与自定义受众、profile、像素及潜在客户表单配置
  • 按指标、细分、UTC 日期和分页运行原生报表
  • 浏览创意素材、结构化帖子、商品目录、商品与商品集
  • 在启用写入后创建和更新广告系列、广告组、广告、受众、帖子、目录与商品集,确认前仅预览
适用场景
适合管理 Reddit 广告的用户,让助手在不离开客户端的情况下审查广告结构、拉取效果报表,或为特定广告账户起草并暂存改动。
运行要求
通过 npx 或构建后的 Node.js 入口以 stdio 本地运行;需 Node.js 22.23.4、24.22.1、26.12.1 或这些版本线更新的版本。需要具备 Ads API 权限的 Reddit 开发者应用,并设置环境变量 REDDIT_ADS_ACCOUNT_IDS,以及 REDDIT_ADS_ACCESS_TOKEN 或刷新三件套 REDDIT_ADS_REFRESH_TOKEN、REDDIT_ADS_CLIENT_ID、REDDIT_ADS_CLIENT_SECRET。需能访问 Reddit 广告 API。
安装前请注意
需要 Reddit OAuth 凭据,包括机密项 REDDIT_ADS_CLIENT_SECRET 与 REDDIT_ADS_REFRESH_TOKEN,应放在客户端的密钥配置中。启用 REDDIT_ADS_ENABLE_WRITES 会开放 22 个写入工具,会改动广告数据;激活可能产生广告花费,确认前请核对预览。账户白名单限制范围,但写入仍作用于真实账户。服务器只接受令牌,不执行 OAuth 浏览器流程。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Reddit Ads,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Reddit Ads MCP server

Bring your Reddit Ads accounts into your MCP client.

Read campaigns and reporting, inspect targeting and prepare changes for explicitly allowed ad accounts.

[Release] [CI] [License: Apache 2.0] [Node]

Watch the film · What's new · Install · Tool reference · Try hosted getmcpads

[Watch the getmcpads film: every ad account in one conversation with your AI assistant]

Play the 45-second film

The film shows hosted getmcpads with sample data. Its MCP Apps, from creative galleries and alerts to Google Sheets exports and bulk launches, belong to the hosted product. This repository provides the standalone native API tools.

31 read tools · 22 write tools, disabled by default.

Run locally with your own platform credentials and a client that supports stdio MCP, such as Claude Desktop, Claude Code or Cursor. Your requests go directly to the platform. For managed connections, including supported ChatGPT setups, use the hosted option.

What's new

v1.0.1: Zod 4 security update · October 26, 2026

  • Update zod to 4.6.7. Every Zod release before 4.6.6 is covered by the high-severity advisory GHSA-mrhx-c7xc-m3w5: validating an oversized constrained collection can exhaust memory, and no Zod 3 release carries the fix. npm audit --omit=dev reports no vulnerability again.
  • Keep the Zod 3 validation behaviour. A parameter default is still validated and completed before use, so an omitted object must still supply its required fields.
  • Keep each parameter's own description when the parameter is optional or has a default. Zod 4 stores a description on the wrapped schema only, so the shared fallback description could otherwise replace it.
  • reddit_get_insights still names the rejected value when a metric or breakdown is unknown.
  • Tool names, parameters and descriptions published over MCP are unchanged. server-card.json is regenerated with Zod 4's JSON Schema output, which spells some constraints differently.

Earlier releases

VersionDateHighlights
1.0.0October 23, 2026First standalone release

Full changelog · All releases

Source synchronization: SOURCE_SYNC.md.

Upgrade notes

Requires Node.js 22.23.4, 24.22.1, 26.12.1 or a newer release of those lines. CI covers Node 22, 24 and 26, and the server prints a warning to stderr on an older runtime. Writes remain optional and require explicit confirmation. Hosted creative integrations and MCP Apps UI are outside this release.

Install this release

This is a GitHub source release. npm and MCP Registry versions are published separately. The commands below select this exact version; unpinned npx examples later in this document select the version currently available on npm.

bash
git clone --branch v1.0.1 --depth 1 https://github.com/get-mcp-ads/reddit-ads-mcp-server.gitcd reddit-ads-mcp-servernpm cinpm run build

Configure your MCP client to run node with the absolute path to dist/cli.js and the platform credentials documented below. Once the package is on npm, the same server runs with npx -y @getmcpads/reddit-ads-mcp-server. A Claude Desktop entry looks like this:

json
{  "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"      }    }  }}

Managed connection. Use Reddit Ads with hosted getmcpads. Connect your account, select the data your assistant may access and use the hosted MCP connection. See the site for current features and plans.

Configuration

Provide these environment variables through the client's secret configuration:

VariablePurpose
REDDIT_ADS_ACCESS_TOKENOAuth access token with adsread, and adsedit if you enable writes. Optional when the three refresh variables are set.
REDDIT_ADS_REFRESH_TOKENPermanent refresh token. With the two variables below, the server renews access tokens in memory.
REDDIT_ADS_CLIENT_IDClient ID of your Reddit app, needed with the refresh token.
REDDIT_ADS_CLIENT_SECRETSecret of your Reddit app, needed with the refresh token.
REDDIT_ADS_ACCOUNT_IDSRequired comma-separated ad account IDs, such as a2_abc123. Every other account is refused, for reads too.
REDDIT_ADS_ENABLE_WRITESDefaults to false. Only the exact value true exposes the 22 write tools.
REDDIT_ADS_USER_AGENTOptional. Reddit asks clients to identify themselves, for example node:my-ads-app:v1.0.0 (by /u/your_username).

Register a developer application and request Ads API access as described in Reddit's Ads API documentation. Then run Reddit's OAuth authorization code flow with the scopes adsread, plus adsedit only if you plan to enable writes, and duration=permanent to receive a refresh token. Reddit access tokens expire after about an hour. Give the refresh token and the app credentials for daily use; an access token alone works until it expires. This package accepts tokens. It does not run an OAuth browser flow and never writes a renewed token to disk. Reddit ad account IDs start with a2_; the business ID is a different value.

npm run doctor reports which variables are set, without printing any value, and whether your Node.js release carries the October 2026 security fixes. Run reddit_health_check as the first call: it reads the account, its business, currency and timezone.

Safety and coverage

Writes preview by default. Review the exact account, target and payload before repeating the call with confirm: true. Campaigns, ad groups and ads are created paused. Activation can spend advertising budget, and previews that set configured_status to ACTIVE say so with activationMaySpend. Do not retry a write automatically when its result is uncertain. Read the account and reconcile it first. The server retries only after an HTTP 401, once, when it renewed the token, because Reddit rejected that request before acting on it. The account allowlist applies before every request. Each entity read is checked against the ad account, directly or through its profile, business or catalog. Before a confirmed write, the campaigns, ad groups, posts, audiences, pixels, product sets, profiles and assets it references are checked the same way. Write payloads are validated against Reddit's schemas pinned on 2026-09-11. Billing fields and computed statuses are refused. Passing local validation is not provider acceptance. Budgets, bids and SPEND are microcurrency: one millionth of the account currency. Other reporting fields keep their native units. Pagination cursors are Reddit's own page tokens.

Requests go only to ads-api.reddit.com and, for token renewal, www.reddit.com. No request follows a redirect. Each one has a timeout and a response size limit. Credentials are redacted from every result and error. Media URLs that Reddit returns are passed on as data. This server never downloads them.

Some Reddit capabilities are intentionally not exposed:

  • Customer-list member uploads and conversion event injection.
  • Lead submissions and any other download of personal records. Lead forms are readable as configuration only.
  • Product feeds, billing and funding instruments.
  • Destructive deletes. Status updates accept PAUSED and ACTIVE only, and saved audiences cannot be set to DELETED.
  • Onsite lead-form creation, which Reddit ended on September 21, 2026.

This server exposes a reviewed subset of the Reddit Ads API. It does not automatically expose new upstream endpoints. Hosted creative galleries, alerts, exports and MCP Apps UI are excluded. Use tools/list or server-card.json for exact schemas, reddit_get_write_schema for the pinned write schemas and Reddit's API reference for provider details.

Hosted option

getmcpads for Reddit Ads manages the hosted connection and account selection. Hosted and source releases can differ. Contact: [email protected].

Development

bash
npm run typechecknpm run lintnpm run buildnpm testnpm run catalog

All tests run offline with synthetic responses. No live account is changed.

Tools

Every tool is listed below. See server-card.json for complete parameter and output schemas.

31 read tools
ToolPurpose
reddit_get_setup_guideCoverage, prerequisites, units, renaming and known limits of this server
reddit_get_write_schemaPinned native schema for one write operation, including targeting and formats
reddit_get_reporting_schemaEvery reporting metric and breakdown name Reddit accepts
reddit_health_checkRead the allowed ad account, its business, currency and timezone
reddit_get_campaignsList campaigns with native configuration and status
reddit_get_campaignRead one campaign after checking its account
reddit_get_ad_groupsList ad groups with native configuration and status
reddit_get_ad_groupRead one ad group after checking its account
reddit_get_adsList ads with native configuration and status
reddit_get_adRead one ad after checking its account
reddit_get_saved_audiencesList saved audiences
reddit_get_saved_audienceRead one saved audience after checking its account
reddit_get_custom_audiencesList custom audiences
reddit_get_custom_audienceRead one custom audience after checking its account
reddit_get_lead_gen_formsList lead form configurations, never lead submissions
reddit_get_lead_formRead one lead form configuration after checking its account
reddit_get_targetingRead the configured targeting of an ad group
reddit_get_targeting_optionsDiscover valid geolocations, languages, interests, devices, carriers and communities
reddit_get_profilesList profiles attached to the ad account
reddit_get_pixelsList pixels available to the ad account
reddit_get_insightsRun a native report with metrics, up to three breakdowns, UTC dates and pagination
reddit_get_creative_assetsList the asset library of an attached profile
reddit_get_postsList structured posts of an attached profile
reddit_get_postRead one structured post after checking its profile
reddit_get_asset_uploadsPoll the processing of creative asset imports
reddit_get_post_jobPoll a structured post creation job with its signed receipt
reddit_list_ad_creativesResolve the images and videos behind ads, with explicit coverage
reddit_get_catalogsList product catalogs of the business that owns the ad account
reddit_get_productsList products of an owned catalog
reddit_get_product_setsList product sets of an owned catalog
reddit_get_catalog_importsList catalog imports of an owned catalog
22 write tools

Disabled by default. Calls preview unless explicitly confirmed. Check the configuration and exact schema before use.

ToolPurpose
reddit_create_campaignCreate a campaign, always paused
reddit_update_campaignUpdate campaign fields, including pause or reactivation
reddit_create_ad_groupCreate an ad group, always paused
reddit_update_ad_groupUpdate ad group fields, including targeting, bids and status
reddit_create_adCreate an ad, always paused
reddit_update_adUpdate ad fields, including pause or reactivation
reddit_create_saved_audienceCreate a saved audience
reddit_update_saved_audienceUpdate a saved audience, without deletion
reddit_create_custom_audienceCreate a pixel, engagement or empty customer-list audience
reddit_upload_creative_assetsImport images, videos or headlines into a profile's asset library
reddit_create_postStart a structured post creation job and return its receipt
reddit_create_catalogCreate a product catalog for the owning business
reddit_create_product_setCreate a product set in an owned catalog
reddit_upsert_productsCreate or update products in an owned catalog
reddit_rename_campaignRename a campaign, nothing else
reddit_rename_ad_groupRename an ad group, nothing else
reddit_rename_adRename an ad, nothing else
reddit_rename_ad_accountRename the ad account, nothing else
reddit_update_postChange whether comments are allowed on a structured post
reddit_update_assetRename a creative asset
reddit_update_catalogUpdate a catalog's name or event sources
reddit_update_product_setUpdate a product set's name or filter

Resources

ResourceContent
reddit-ads://guideThe setup guide, also returned by reddit_get_setup_guide
reddit-ads://reporting-catalogEvery metric with its category and unit note, and every dimension with whether it is a breakdown

License

Apache License 2.0. See NOTICE.

More from getmcpads

Meta Ads · Google Ads · Google Analytics 4 · Google Search Console · TikTok Ads · Pinterest Ads · X Ads

Maintained by Emmanuel at getmcpads. Questions: [email protected].

来源:README.md,提交 89acc83

工具

0
SourceWeft 曾在隔离沙箱中以无凭据方式启动该软件包一次,以列出其工具,但未能完成:服务器未能启动。

版本历史

2
  1. v1.0.1最新Oct 26, 2026
  2. v1.0.0Oct 23, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分