reddit-ads-mcp
Provides tools for interacting with the Reddit Ads API v3, enabling management of campaigns, ad groups, ads, audiences, catalogs, creatives, targeting, reporting, bid suggestions, conversions, and related advertising operations on Reddit.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@reddit-ads-mcp get a performance report for my campaigns last week"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
📣 MCP server for the Reddit Ads API v3: let any MCP-compatible AI client create, update, delete and report on campaigns, ad groups, ads, audiences, catalogs and more.
⚠️ Not affiliated with Reddit, Inc. You need your own Reddit Ads developer app. Actions run against your real ad accounts and can spend real money.
🏠 Homepage
Features
🧭 Full API coverage: all 108 operations of the Reddit Ads API v3 as 114 MCP tools, plus a raw request tool
🔐 Browser OAuth login: only a client ID and secret needed; the server opens Reddit's consent page, catches the callback on
localhostand stores a refresh token (0600) that is refreshed automatically📊 Campaign management: campaigns, ad groups, ads, bulk activate / pause / archive / delete
🖼️ Creatives: structured post jobs, legacy posts, creative asset library, video poster generation
🎯 Targeting: communities, interests, geolocations, devices, carriers, languages, third-party audiences, keyword suggestions
👥 Audiences: custom audiences (hashed user upload), saved audiences, lead gen forms
📈 Reporting and planning: performance reports with breakdowns, bid suggestions, audience and delivery estimates, reach curves
🛒 Catalogs and conversions: product catalogs, feeds, sets, batch upserts, pixels, Conversions API, data deletion jobs
📄 Pagination: automatic
next_urlfollowing with merged results🔁 Resilient: token refresh on 401, backoff on 429, no retries of non-idempotent writes
Related MCP server: reddit-ads-mcp
Quick start
Create a Reddit developer app: in Reddit Ads Manager open Business settings → Developer applications (business admins only), set the redirect URL to
http://localhost:8765/callbackand copy the Client ID and Client secret.Add the server to your MCP client (no clone or build needed, Node 20+):
claude mcp add -s user reddit-ads \
-e REDDIT_ADS_CLIENT_ID=your_client_id \
-e REDDIT_ADS_CLIENT_SECRET=your_client_secret \
-- npx -y @filippofinke/reddit-ads-mcp@latestor with one click:
Ask your assistant "List my Reddit ad accounts" and approve the Reddit consent page that opens.
Setup
1. Create a Reddit developer app
In Reddit Ads Manager, open Business settings → Developer applications and create an app (business admins only). Set the redirect URL to:
http://localhost:8765/callbackCopy the Client ID and Client secret.
2. Connect your MCP client
It is a standard stdio MCP server published on npm, so it works with any client that supports MCP (Claude, Cursor, VS Code, Windsurf, Codex, Gemini CLI, Zed, Cline, Continue, …):
{
"mcpServers": {
"reddit-ads": {
"command": "npx",
"args": ["-y", "@filippofinke/reddit-ads-mcp@latest"],
"env": {
"REDDIT_ADS_CLIENT_ID": "your_client_id",
"REDDIT_ADS_CLIENT_SECRET": "your_client_secret"
}
}
}
}Client | Where the config goes |
Claude Desktop |
|
Claude Code |
|
Cursor |
|
Windsurf |
|
Gemini CLI |
|
Cline / Roo Code | MCP settings of the extension |
VS Code (Copilot) |
|
Codex CLI |
|
Codex CLI uses TOML:
[mcp_servers.reddit-ads]
command = "npx"
args = ["-y", "@filippofinke/reddit-ads-mcp@latest"]
env = { REDDIT_ADS_CLIENT_ID = "your_client_id", REDDIT_ADS_CLIENT_SECRET = "your_client_secret" }To run from source instead, clone the repo, run npm install && npm run build and use "command": "node", "args": ["/absolute/path/to/reddit-ads-mcp/dist/index.js"].
3. Log in
Ask your assistant anything, e.g. "List my Reddit ad accounts". On the first call the server opens Reddit's consent page. After you approve, the refresh token is saved to ~/.config/reddit-ads-mcp/tokens.json and reused from then on.
reddit_ads_auth_status shows the current state and reddit_ads_logout revokes and deletes the token.
Configuration
Variable | Default | Purpose |
| required | App client ID |
| required | App client secret |
| Default ad account for tools taking | |
|
| Port of the local OAuth callback server |
|
| Must exactly match the app's redirect URL |
|
| OAuth scopes |
|
| Token storage |
|
| Reddit asks for |
Example prompts
"Show last week's spend, clicks and CTR per campaign"
"Create a paused traffic campaign targeting r/legaladvice and r/law in the US with a $20 daily budget"
"Pause every ad group with a CPC above $2"
"Suggest subreddits and keywords similar to r/startups"
"Archive the campaign named Summer Sale"
Caveats
💵 Money values are micro-currency:
1000000is one unit of the account currency.🗑️ Campaigns, ad groups and ads have no hard delete: set status
DELETED. A campaign must beARCHIVEDfirst, and deletion is only allowed three hours after the last change.📌 New ad groups require a
conversion_pixel_id, usually equal to the ad account ID (seereddit_ads_list_pixels).🔎 The custom audience name filter needs an operator prefix:
=for exact,@for substring.
Scripts
npm run dev # run from source with tsx
npm run build # compile to dist/
npm run typecheck # tsc --noEmit
npm run lint # Biome lint + format check
npm run format # Biome lint + format (write)Author
👤 Filippo Finke
Website: https://filippofinke.ch
Twitter: @filippofinke
Github: @filippofinke
LinkedIn: @filippofinke
🤝 Contributing
Contributions, issues and feature requests are welcome! Feel free to check the issues page. Commits and PR titles follow Conventional Commits; releases are automated with release-please: merged commits accumulate into a Release PR that, once merged, tags the version, creates a GitHub release and publishes to npm.
Show your support
Give a ⭐️ if this project helped you!
📝 License
Copyright © 2026 Filippo Finke. This project is MIT licensed.
Unofficial project, not affiliated with Reddit, Inc.
Available Tools
114 toolsreddit_ads_api_requestRaw Reddit Ads API requestADestructive
Call any Reddit Ads API v3 endpoint directly. Use for endpoints without a dedicated tool. Path is relative to https://ads-api.reddit.com/api/v3 (e.g. 'me' or 'ad_accounts/{id}/campaigns'). Bodies for POST/PATCH/PUT are usually wrapped as {"data": {...}}.
Inputs: path (required), method (required), body, query.
reddit_ads_auth_statusAuth statusARead-only
Show whether the server holds valid Reddit Ads credentials.
Inputs: no named parameters.
reddit_ads_create_adCreate adA
Create an ad in an ad group. Standard ads promote a post: first create one with reddit_ads_create_post_job (or reddit_ads_create_post) and pass its post_id (t3_...). Create it PAUSED unless the user asks otherwise.
Inputs: data (required), ad_account_id.
reddit_ads_create_ad_groupCreate ad groupA
Create an ad group inside a campaign. All money values are micro-currency (1 USD = 1000000). Create it PAUSED unless the user asks otherwise. Under campaign budget optimization the bid_strategy, bid_type, goal_type, optimization_goal and view_through_conversion_type must match the campaign and goal_value must be null.
Inputs: data (required), ad_account_id.
reddit_ads_create_campaignCreate campaignA
Create a campaign. All money values are micro-currency (1 USD = 1000000). Create it PAUSED unless the user asks otherwise.
Inputs: data (required), ad_account_id.
reddit_ads_create_catalogCreate product catalogC
Create a product catalog for dynamic product ads.
Inputs: data (required), business_id (required).
reddit_ads_create_custom_audienceCreate custom audienceA
Create a custom audience. For customer lists, add users afterwards with reddit_ads_update_custom_audience_users.
Inputs: data (required), ad_account_id.
reddit_ads_create_data_deletion_jobDelete user data (ad account)C
Request deletion of a person's data from an ad account (requires the adsdatadeletion scope).
Inputs: data (required), ad_account_id.
reddit_ads_create_lead_gen_formCreate lead gen formC
Create a lead generation form.
Inputs: data (required), ad_account_id.
reddit_ads_create_pixel_data_deletion_jobDelete user data (pixel)A
Request deletion of a person's data collected by a pixel (requires the adsdatadeletion scope and business admin).
Inputs: data (required), pixel_id (required).
reddit_ads_create_postCreate post (legacy)A
Create a post on a profile synchronously (legacy posts API). Prefer reddit_ads_create_post_job.
Inputs: data (required), profile_id (required).
reddit_ads_create_poster_jobGenerate video postersA
Generate poster (thumbnail) images from a public video URL. Poll reddit_ads_get_poster_job for the result.
Inputs: data (required).
reddit_ads_create_post_jobCreate post (structured)A
Create an ad post on a profile asynchronously. Poll reddit_ads_get_post_job until status is SUCCESS to get the post_id for reddit_ads_create_ad. Media is fetched by Reddit from public URLs.
Inputs: data (required), profile_id (required).
reddit_ads_create_product_feedCreate product feedA
Create a scheduled product feed (max 2 per catalog, of different modes).
Inputs: data (required), catalog_id (required).
reddit_ads_create_product_setCreate product setB
Create a filtered product set for catalog ad groups (product_set_id).
Inputs: data (required), catalog_id (required).
reddit_ads_create_saved_audienceCreate saved audienceB
Save a targeting configuration to reuse on ad groups via saved_audience_id.
Inputs: data (required), ad_account_id.
reddit_ads_delete_catalogDelete product catalogADestructive
Permanently delete a product catalog with its feeds, sets and products.
Inputs: catalog_id (required).
reddit_ads_delete_creative_assetDelete creative assetCDestructive
Permanently delete a creative asset from the library.
Inputs: creative_asset_id (required).
reddit_ads_delete_custom_audienceDelete custom audienceCDestructive
Permanently delete a custom audience.
Inputs: audience_id (required).
reddit_ads_delete_product_feedDelete product feedBDestructive
Permanently delete a product feed.
Inputs: feed_id (required).
reddit_ads_delete_productsDelete productsADestructive
Delete up to 1000 products from a catalog by product ID.
Inputs: data (required), catalog_id (required).
reddit_ads_delete_product_setDelete product setBDestructive
Permanently delete a product set.
Inputs: product_set_id (required).
reddit_ads_estimate_audienceEstimate audience and deliveryARead-only
Estimate audience size and delivery (impressions, clicks, conversions, reach) for a planned ad group. Limited to 10 requests per minute.
Inputs: data (required), ad_account_id.
reddit_ads_get_adGet adBRead-only
Get an ad including effective_status, rejection_reason, post_url and preview_url.
Inputs: ad_id (required).
reddit_ads_get_ad_accountGet ad accountARead-only
Get an ad account: currency, time zone, attribution settings, approval status and account-level exclusions.
Inputs: ad_account_id.
reddit_ads_get_ad_account_historyGet ad account change historyBRead-only
Get the change log of an ad account (who changed what and when).
Inputs: data, max_pages, page_size, page_token, +1 more.
reddit_ads_get_ad_groupGet ad groupBRead-only
Get an ad group including targeting, bidding and status.
Inputs: ad_group_id (required).
reddit_ads_get_app_last_firedGet app events last firedCRead-only
Get when each mobile conversion event last fired for an app.
Inputs: app_id (required).
reddit_ads_get_businessGet businessCRead-only
Get a business by ID.
Inputs: business_id (required).
reddit_ads_get_campaignGet campaignBRead-only
Get a campaign including effective_status and delivery_status.
Inputs: campaign_id (required).
reddit_ads_get_catalogGet product catalogDRead-only
Get a product catalog.
Inputs: catalog_id (required).
reddit_ads_get_catalog_import_reportGet catalog import reportBRead-only
Get a download URL for a feed import report.
Inputs: import_id (required).
reddit_ads_get_channel_reachGet channel planning reachBRead-only
Get a Reddit-wide reach curve (impressions vs reach) for media planning.
Inputs: geolocation (required), duration_days (required), gender, max_age, +1 more.
reddit_ads_get_communitiesGet communitiesARead-only
Look up subreddits by exact name, with subscriber counts and categories.
Inputs: names (required), max_pages, page_size, page_token.
reddit_ads_get_creative_assetGet creative assetDRead-only
Get a creative asset.
Inputs: creative_asset_id (required).
reddit_ads_get_creative_asset_uploadGet creative asset uploadBRead-only
Get a creative asset upload: status (PROCESSING_MEDIA|ACTIVE|INVALID_MEDIA) and resulting asset.
Inputs: id (required).
reddit_ads_get_custom_audienceGet custom audienceBRead-only
Get a custom audience including its status and size.
Inputs: audience_id (required).
reddit_ads_get_data_deletion_jobGet data deletion jobBRead-only
Get the status of a data deletion job (QUEUED|COMPLETED|FAILED).
Inputs: job_id (required).
reddit_ads_get_lead_gen_formGet lead gen formCRead-only
Get a lead generation form.
Inputs: lead_gen_form_id (required).
reddit_ads_get_meGet current userARead-only
Get the authenticated Reddit Ads member or system user.
Inputs: no named parameters.
reddit_ads_get_pixel_last_firedGet pixel last firedARead-only
Get when each conversion event last fired for a pixel, to check tracking health.
Inputs: pixel_id (required).
reddit_ads_get_postGet postBRead-only
Get a post by ID (t3_...).
Inputs: post_id (required).
reddit_ads_get_poster_jobGet poster jobBRead-only
Get the status and generated posters of a poster generation job.
Inputs: id (required).
reddit_ads_get_post_jobGet post creation jobARead-only
Get the status of a structured post creation job (QUEUED|PROCESSING|SUCCESS|CLIENT_ERROR|SERVER_ERROR) and the resulting post_id.
Inputs: post_creation_job_id (required).
reddit_ads_get_product_feedGet product feedCRead-only
Get a product feed.
Inputs: feed_id (required).
reddit_ads_get_product_setGet product setCRead-only
Get a product set.
Inputs: product_set_id (required).
reddit_ads_get_profileGet profileCRead-only
Get a Reddit profile by ID.
Inputs: profile_id (required).
reddit_ads_get_reportGet performance reportARead-only
Get performance metrics for an ad account. Metric keys come back lowercase. spend, cpc, cpv, ecpm, conversion_*ecpa, app_installecpa, app_install_skan and app_install_*revenue are micro-currency (divide by 1000000); conversion*_total_value is in cents. Data can take up to 6 hours to settle.
Inputs: ends_at (required), starts_at (required), fields, filter, +8 more.
reddit_ads_get_saved_audienceGet saved audienceCRead-only
Get a saved audience.
Inputs: saved_audience_id (required).
reddit_ads_get_skan_availabilityGet SKAdNetwork availabilityCRead-only
Get SKAdNetwork campaign, ad group and ad quota for an iOS app.
Inputs: app_id (required), ad_group_id, campaign_id.
reddit_ads_get_structured_postGet structured postDRead-only
Get a structured post.
Inputs: post_id (required).
reddit_ads_get_third_party_trackersGet third-party trackersBRead-only
List approved click and impression tracker domains for ad event_trackers.
Inputs: no named parameters.
reddit_ads_list_account_profilesList ad account profilesARead-only
List Reddit profiles (t2_ user IDs) an ad account can post ads as. Profile IDs are needed for posts, creative assets and ads.
Inputs: max_pages, page_size, page_token, ad_account_id.
reddit_ads_list_ad_accountsList all ad accountsARead-only
List every ad account the authenticated user can access, grouped by business. Start here to find ad_account_id values.
Inputs: no named parameters.
reddit_ads_list_ad_groupsList ad groupsCRead-only
List ad groups in an ad account.
Inputs: id, max_pages, page_size, page_token, +2 more.
reddit_ads_list_adsList adsARead-only
List ads in an ad account. Filters are OR within a parameter and AND across parameters.
Inputs: id, max_pages, page_size, page_token, +5 more.
reddit_ads_list_appsList appsBRead-only
List mobile apps used in the ad account's past campaigns.
Inputs: max_pages, page_size, page_token, ad_account_id.
reddit_ads_list_business_ad_accountsList business ad accountsARead-only
List ad accounts owned by a business (not those shared into it).
Inputs: business_id (required), ids, max_pages, page_size, +1 more.
reddit_ads_list_businessesList my businessesBRead-only
List businesses the authenticated user belongs to.
Inputs: role, max_pages, page_size, page_token, +1 more.
reddit_ads_list_business_pixelsList business pixelsCRead-only
List Reddit pixels of a business.
Inputs: business_id (required), max_pages, page_size, page_token.
reddit_ads_list_business_profilesList business profilesBRead-only
List Reddit profiles owned by a business.
Inputs: business_id (required), max_pages, page_size, page_token.
reddit_ads_list_campaignsList campaignsCRead-only
List campaigns in an ad account.
Inputs: id, max_pages, page_size, page_token, +1 more.
reddit_ads_list_carriersList carriersBRead-only
List mobile carriers for targeting.
Inputs: max_pages, page_size, page_token.
reddit_ads_list_catalog_import_issuesList catalog import issuesCRead-only
List issues found while importing a feed.
Inputs: import_id (required), code, max_pages, page_size, +1 more.
reddit_ads_list_catalog_importsList catalog importsCRead-only
List feed import runs of a catalog.
Inputs: catalog_id (required), feed_ids, statuses, max_pages, +2 more.
reddit_ads_list_catalog_productsList catalog productsCRead-only
List products in a catalog.
Inputs: catalog_id (required), ids, search, max_pages, +3 more.
reddit_ads_list_catalogsList product catalogsCRead-only
List product catalogs of a business.
Inputs: business_id (required).
reddit_ads_list_creative_assetsList creative assetsBRead-only
List creative assets in a profile's library.
Inputs: profile_id (required), name, types, max_pages, +5 more.
reddit_ads_list_creative_asset_uploadsList creative asset uploadsBRead-only
Get the status of several creative asset uploads.
Inputs: id (required), profile_id (required).
reddit_ads_list_custom_audiencesList custom audiencesBRead-only
List custom audiences (customer lists, retargeting, lookalikes) in an ad account.
Inputs: name, max_pages, page_size, page_token, +1 more.
reddit_ads_list_devicesList devicesARead-only
List device makes and models for targeting.
Inputs: max_pages, page_size, page_token.
reddit_ads_list_funding_instrument_allocationsList funding instrument allocationsBRead-only
List child funding instruments allocated from a funding instrument.
Inputs: funding_instrument_id (required), max_pages, page_size, page_token.
reddit_ads_list_funding_instrumentsList funding instrumentsCRead-only
List the funding instruments (payment methods, credit lines) of an ad account.
Inputs: mode, types, search, end_time, +6 more.
reddit_ads_list_geolocationsList geolocationsARead-only
List geolocation targets. Without filters returns countries; filter by country for regions/metros, or search cities / postal codes.
Inputs: country, postal_code, cities_search.
reddit_ads_list_industriesList industriesBRead-only
List valid business industries.
Inputs: no named parameters.
reddit_ads_list_interestsList interestsBRead-only
List interest categories for targeting.
Inputs: no named parameters.
reddit_ads_list_languagesList languagesCRead-only
List languages for targeting.
Inputs: max_pages, page_size, page_token.
reddit_ads_list_lead_gen_formsList lead gen formsCRead-only
List lead generation forms in an ad account.
Inputs: max_pages, page_size, page_token, ad_account_id.
reddit_ads_list_pixelsList pixelsBRead-only
List Reddit pixels of an ad account.
Inputs: max_pages, page_size, page_token, ad_account_id.
reddit_ads_list_postsList postsCRead-only
List posts on a profile (legacy posts API).
Inputs: profile_id (required), type, source, max_pages, +2 more.
reddit_ads_list_product_feedsList product feedsCRead-only
List feeds of a product catalog.
Inputs: catalog_id (required).
reddit_ads_list_product_set_productsList product set productsCRead-only
List products in a product set.
Inputs: product_set_id (required), ids, search, max_pages, +4 more.
reddit_ads_list_product_setsList product setsCRead-only
List product sets of a catalog.
Inputs: catalog_id (required), max_pages, page_size, page_token.
reddit_ads_list_saved_audiencesList saved audiencesBRead-only
List saved (reusable) targeting audiences.
Inputs: max_pages, page_size, page_token, ad_account_id.
reddit_ads_list_structured_postsList structured postsCRead-only
List structured posts on a profile.
Inputs: profile_id (required), id, type, source, +3 more.
reddit_ads_list_third_party_audiencesList third-party audiencesBRead-only
List third-party data audiences (LiveRamp, Bombora) with sizes and costs.
Inputs: max_pages, page_size, page_token.
reddit_ads_list_time_zonesList time zonesCRead-only
List supported time zones.
Inputs: max_pages, page_size, page_token.
reddit_ads_loginLog in to Reddit AdsA
Open the Reddit OAuth consent page in the browser and wait for the callback. Returns the authorization URL if the login is not completed in time.
Inputs: no named parameters.
reddit_ads_logoutLog out of Reddit AdsADestructive
Revoke the stored refresh token and delete it from disk.
Inputs: no named parameters.
reddit_ads_query_ad_accountsQuery ad accountsBRead-only
Search the ad accounts a business can access, including shared ones, by name, ID, actor, role or asset.
Inputs: business_id (required), data, max_pages, page_size, +1 more.
reddit_ads_query_business_funding_instrumentsQuery business funding instrumentsCRead-only
Query funding instruments available to a business.
Inputs: business_id (required), data, search, max_pages, +2 more.
reddit_ads_search_communitiesSearch communitiesARead-only
Search subreddits for targeting by name or topic.
Inputs: query (required), max_pages, page_size, page_token.
reddit_ads_send_conversion_eventsSend conversion eventsA
Send server-side conversion events through the Conversions API (requires the adsconversions scope). Use test_id to send test events visible in Events Manager.
Inputs: data (required), pixel_id (required).
reddit_ads_set_statusSet statusADestructive
Activate, pause, archive or delete several campaigns, ad groups or ads at once. Reddit has no hard delete for these entities; DELETED is the delete operation. Deleting follows Reddit's rules: a campaign must be ARCHIVED first, and campaigns and ad groups can only be DELETED three hours after their last change (archive now, delete later).
Inputs: ids (required), status (required), entity_type (required).
reddit_ads_suggest_bidSuggest bidARead-only
Get minimum and suggested bid values (micro-currency) for a planned ad group.
Inputs: data (required).
reddit_ads_suggest_communitiesSuggest communitiesCRead-only
Suggest related subreddits from seed subreddits and/or a website URL.
Inputs: names, max_pages, page_size, page_token, +1 more.
reddit_ads_suggest_keywordsSuggest keywordsBRead-only
Get keyword suggestions with monthly views from seed keywords.
Inputs: data (required).
reddit_ads_update_adUpdate adA
Update an ad. Pass only the fields to change. To delete set configured_status to DELETED. The ad group cannot be changed.
Inputs: data (required), ad_id (required).
reddit_ads_update_ad_accountUpdate ad accountC
Update ad account settings.
Inputs: data (required), ad_account_id.
reddit_ads_update_ad_groupUpdate ad groupA
Update an ad group. Pass only the fields to change. To delete set configured_status to DELETED. Deleting follows Reddit's rules: a campaign must be ARCHIVED first, and campaigns and ad groups can only be DELETED three hours after their last change (archive now, delete later). Targeting is replaced as a whole object. All money values are micro-currency (1 USD = 1000000).
Inputs: data (required), ad_group_id (required).
reddit_ads_update_businessUpdate businessC
Update a business.
Inputs: data (required), business_id (required).
reddit_ads_update_campaignUpdate campaignA
Update a campaign. Pass only the fields to change. To delete set configured_status to DELETED, to archive set ARCHIVED. Deleting follows Reddit's rules: a campaign must be ARCHIVED first, and campaigns and ad groups can only be DELETED three hours after their last change (archive now, delete later). All money values are micro-currency (1 USD = 1000000).
Inputs: data (required), campaign_id (required).
reddit_ads_update_catalogUpdate product catalogD
Update a product catalog.
Inputs: data (required), catalog_id (required).
reddit_ads_update_creative_assetRename creative assetC
Rename a creative asset.
Inputs: data (required), creative_asset_id (required).
reddit_ads_update_custom_audience_usersAdd or remove audience usersA
Add or remove users in a customer list audience. Values must be SHA-256 hashes of normalized (lowercased, trimmed) emails or mobile ad IDs. Max 2500 rows per call.
Inputs: data (required), audience_id (required).
reddit_ads_update_postUpdate postB
Update a post. Only allow_comments can be changed.
Inputs: data (required), post_id (required).
reddit_ads_update_product_feedUpdate product feedD
Update a product feed.
Inputs: data (required), feed_id (required).
reddit_ads_update_product_setUpdate product setC
Update a product set.
Inputs: data (required), product_set_id (required).
reddit_ads_update_saved_audienceUpdate saved audienceB
Update a saved audience. Set status to DELETED to delete it.
Inputs: data (required), saved_audience_id (required).
reddit_ads_update_structured_postUpdate structured postB
Update a structured post. Only allow_comments can be changed.
Inputs: data (required), post_id (required).
reddit_ads_upload_creative_assetsUpload creative assetsA
Add up to 50 assets to a profile's creative library (used by Reddit Max ads). Media is fetched by Reddit from public URLs. Poll reddit_ads_get_creative_asset_upload for the resulting asset.
Inputs: data (required), profile_id (required).
reddit_ads_upsert_productsUpsert productsB
Create or update up to 1000 products in a catalog.
Inputs: data (required), catalog_id (required).
reddit_ads_validate_geolocationsValidate geolocationsARead-only
Validate geolocation IDs or city names before using them in targeting.
Inputs: data (required).
reddit_ads_validate_keywordsValidate keywordsCRead-only
Check whether keywords are brand safe.
Inputs: data (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 114 tools
Most tools map to a distinct resource and action, but there is notable overlap between legacy posts tools (list/get/update/create_post) and structured posts tools (list/get/update/create_post_job), and between set_status and the various update_* status changes. These overlaps are mostly clarified by descriptions, so an agent can usually choose correctly.
Nearly all tools follow the reddit_ads_ prefix and snake_case with a verb_noun pattern (e.g., list_campaigns, create_ad). A few exceptions like auth_status, api_request, logout, and login break the verb_noun convention, but the overall naming is highly consistent.
114 tools is far beyond the typical 3-15 range for an MCP server and exceeds the 50-tool threshold for extreme mismatch. While the Reddit Ads API is large, this volume is overwhelming for an agent and likely degrades tool selection.
The tool set covers an extensive surface: CRUD for campaigns, ad groups, ads, posts, creative assets, audiences, catalogs, feeds, product sets, pixels, conversions, lead gen, and targeting options. With reddit_ads_api_request as a fallback, the surface is effectively complete for the Reddit Ads API.
Maintenance
Related MCP Connectors
Reddit Ads MCP server: run Reddit campaigns, ad groups, ads and reports from AI.
Manage Reddit advertising end-to-end: browse ad accounts and payment methods, and organize campaig…
Run ads across 16 ad platforms from any MCP client. Hosted OAuth at mcp.synterai.com.
Manage Google Ads from ChatGPT, Claude or any MCP client. Sign in with OAuth or use an API key.
Related MCP Servers
- AlicenseAqualityBmaintenanceMCP server for Reddit Ads API v3 enabling campaign management, ad creation, performance reporting, and audience targeting through Claude.10105 npm3MIT
- AlicenseBqualityDmaintenanceA self-hosted MCP server for the Reddit Ads API v3, enabling reading ad accounts, campaigns, ad groups, ads, and performance reports, with optional write support for pausing/activating, budgeting, patching, and creating entities.6MIT
- AlicenseAqualityCmaintenanceEnables reading and writing Reddit Ads campaigns, ad groups, ads, and performance reports with tiered safety controls, using the Reddit Ads API v3.30114 npm1MIT
- AlicenseAqualityAmaintenanceTri-channel AdsAgent plugin (Meta, Google Ads, TikTok): hosted OAuth MCP at adsagent.md plus agent skills for insights, templates, and prepare/confirm writes. Install via adsagents/adsagent-ai-skills. Meta MCP: https://adsagent.md/mcp/v2. Registry: md.adsagent/meta-mcp.43MIT