Reddit Ads API v3 with working write operations and tiered write-safety controls (read, safe, spend). Manage campaigns, ad groups, ads, budgets, bids, and targeting, pull performance reports, and mint OAuth credentials with a built-in auth command.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by MCP Server Reddit Ads.
get_campaignsCallable MCP tool function
get_ad_groupsCallable MCP tool function
get_adsCallable MCP tool function
statusCallable MCP tool function
ACTIVECallable MCP tool function
PAUSEDCallable MCP tool function
A Reddit Ads API v3 MCP server with working write operations and tiered safety controls, built and dogfooded by an actual Reddit advertiser. It gives an MCP client read access to campaigns, ad groups, ads, and performance reports, plus gated write tools for pausing, creating, budget and bid changes, targeting edits, and copying ads between ad groups.
Pick the path that matches your setup: a paste-one-prompt route for Claude Code or Claude Desktop, or the manual steps for any other client. Every path installs read-only and cannot change anything in your account until you deliberately turn on writes (the last step).
If you use Claude Code, let it do the mechanical work. Copy this whole prompt and paste it into Claude Code:
Claude reads this README, tells you exactly what to do for the parts only you can do, runs npx mcp-server-reddit-ads auth, writes your .mcp.json, and confirms the server loads. Later, when you want to make changes, just ask it to raise the write tier.
Claude Desktop can't run terminal commands for you, so this prompt has it act as a patient guide while you run one command and edit one config file. Paste it into a new Claude Desktop chat:
Either way, you still register the Reddit app (step 1 below) and approve the browser login yourself - those cannot be automated.
The full process, for other MCP clients or if you prefer to do it by hand. It takes about five minutes.
http://localhost:8080, and choose a primary contact (a business admin). Save it.Reddit then shows the two values you need in step 2:
Ab3xK9zQ1rStUvWxYzAbCd) displayed directly under the app's name. Reddit often shows it without a "client ID" label, so it is easy to miss; it is the code beneath the app title, not the app name itself.Do not use reddit.com/prefs/apps: it silently rejects new apps under the Responsible Builder Policy, so the Ads developer portal is the only working path for advertisers.
Run the built-in setup helper:
It asks for the client ID and secret from step 1 (or reads them from REDDIT_CLIENT_ID and REDDIT_CLIENT_SECRET if you have set them), opens the Reddit authorization page in your browser, and waits on http://localhost:8080 for you to approve.
Once you approve, it offers to save the configuration for you:
Pick [1] or [2] and it writes the credentials straight to disk (backing up any existing file to <file>.bak and leaving other servers untouched), so nothing sensitive has to pass through your MCP client. If you prefer to place it yourself, pick [3] and it prints a ready-to-paste block instead. When it can't detect a TTY (for example, piped output), it skips the menu and prints the block.
If it fails, it tells you how to fix the two common causes: port 8080 already in use, and a redirect-URI mismatch (the app's redirect URI must be exactly http://localhost:8080).
If you picked [1] or [2] in step 2, this is already done - skip to step 4. Otherwise, paste the printed block into your client's config. It has this shape, with the three credential values already populated by the auth command:
Claude Code users can register it from the command line instead:
Restart your client so it picks up the server (in Claude Code, approve the server when prompted, and confirm it loaded with /mcp). Then ask it to list your Reddit ad accounts. You should see your account id (a2_...). If you manage a single account, set REDDIT_ADS_ACCOUNT_ID to that id in the config and restart, so you never have to name the account in a request again.
You are connected and read-only. Good first questions:
Most people stay here day to day. When you want to make changes, turn on writes.
A fresh install cannot pause, create, or edit anything. To allow changes, raise REDDIT_ADS_WRITE_TIER in your config and restart. Start with safe (nothing at that level can start or grow spend) and move to spend only when you intend to resume delivery or change budgets, bids, or targeting. See Write tiers for exactly what each level unlocks.
Writes are off by default. REDDIT_ADS_WRITE_TIER opens them in two steps, so an accident at the read or safe tier cannot start spending money.
Tools above the configured tier are not just refused - they are hidden from the client's tool list entirely. A read-only session exposes 18 tools; the model cannot even attempt update_budget because it does not know the tool exists. If a hidden tool is somehow called anyway, the server refuses it with an error naming the tier that would unlock it.
| Tier | What it allows | Rule |
|---|---|---|
read (default) | No writes. | Reads only. |
safe | Pause, create (born paused), rename, copy ads. | Cannot start or expand delivery. |
spend | Everything in safe, plus enable, budget, bid, and targeting changes. | Can start, resume, or reshape delivery. |
| Variable | Meaning |
|---|---|
REDDIT_CLIENT_ID, REDDIT_CLIENT_SECRET, REDDIT_REFRESH_TOKEN | Required. Startup fails with a pointer to the auth command if any is missing. |
REDDIT_ADS_WRITE_TIER | read (default), safe, or spend. |
REDDIT_ADS_ACCOUNT_ID | Optional default account (a2_...) so single-account users never pass account_id. |
| Group | Tools | Tier |
|---|---|---|
| Diagnostics | get_server_status | read |
| Accounts | get_accounts, get_account_overview | read |
| Entities | get_campaigns, get_campaign, get_ad_groups, get_ad_group, get_ads, get_ad | read |
| Creative | get_ad_creative | read |
| Search | find_entity | read |
| Reporting | get_performance_report, get_daily_performance, compare_periods, compare_ads | read |
| Targeting data | search_subreddits, get_interest_categories, search_geo_targets | read |
| Create | create_campaign, create_ad_group, create_ad | safe |
| Pause / rename | pause_items, update_name | safe |
| Comments | update_ad_comments | safe |
| Workflows | copy_ads | safe |
| Resume | enable_items | spend |
| Money | update_budget, update_bid | spend |
| Delivery shape | update_targeting | spend |
| Ad URL | update_ad_url | spend |
Notes:
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/camlowe-mcp-server-reddit-ads)<a href="https://allmcps.com/mcp/camlowe-mcp-server-reddit-ads"><img src="https://allmcps.com/api/badge/camlowe-mcp-server-reddit-ads?style=directory" alt="MCP Server Reddit Ads on AllMCPs" /></a>