reddit-ads-mcp
Provides tools for managing Reddit Ads accounts, campaigns, ad groups, and ads via the Reddit Ads API v3, including reading performance reports, pausing/activating entities, setting budgets, and patching fields.
Click on "Install 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-mcplist my accounts"
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.
reddit-ads-mcp
A small, self-hosted MCP server for the Reddit Ads API v3, in Python.
Read accounts, campaigns, ad groups, ads, and performance reports.
Write (opt-in) — pause/activate, set budgets, patch fields, create entities.
No third party. Auth is a direct OAuth2 refresh-token exchange with reddit.com using your app credentials. Nothing is proxied anywhere.
Safe by default. Mutations are refused unless
REDDIT_ADS_WRITE_ENABLED=true.
Inspired by the read-only C# RedditAdsMcp; rewritten in Python with opt-in write support and a self-hosted token helper.
Status: reads + the core small-writes (status / budget / field patch) are verified
against the live Reddit Ads API v3 (2026-06-30). create_* are wired but not yet
validated end-to-end — marked experimental below.
Tools
Tool | Access | Description |
| read ✓ | All ad accounts reachable with your credentials |
| read ✓ | Campaigns for an account |
| read ✓ | Ad groups, optionally by |
| read ✓ | Ads, optionally by |
| read ✓ | Custom date range / fields / breakdowns |
| read ✓ | Last N days by DATE + CAMPAIGN_ID |
| write ✓ | Pause / activate / archive |
| write ✓ | Daily budget in dollars (auto micro-conversion) |
| write ✓ | Patch arbitrary fields |
| write ⚠️ | Create entities (experimental — unvalidated) |
Write tools are only registered when REDDIT_ADS_WRITE_ENABLED=true.
API notes (learned from the live v3 API)
Collections are nested, single entities are top-level: list/create use
ad_accounts/{id}/campaigns, but get/update usecampaigns/{id}(no account prefix).Budgets are micro-currency:
goal_value: 6000000= $6.00,goal_type: "DAILY_SPEND". Theset_*_budgettools take plain dollars and convert for you.Reports are a read-only
POSTtoad_accounts/{id}/reportswith a{data:{…}}body.Write OAuth scope is
adsedit(notadswrite).
Related MCP server: reddit-mcp
Setup
1. Create a Reddit Ads API app
ads.reddit.com → Developer Applications → Create a new app.
Set the redirect URI to any HTTPS URL you control — it only needs to show the code
query param Reddit appends after you click Allow. Copy the App ID and Secret.
2. Get a refresh token (one-time)
Open this URL (URL-encode your redirect; drop %20adsedit for read-only):
https://www.reddit.com/api/v1/authorize?client_id=YOUR_APP_ID&response_type=code&state=mcp&redirect_uri=YOUR_REDIRECT&duration=permanent&scope=adsread%20adseditClick Allow, copy the code from the redirected URL, then:
python scripts/get_refresh_token.py \
--client-id YOUR_APP_ID --client-secret YOUR_SECRET \
--code THE_CODE --redirect-uri YOUR_REDIRECTIt prints your permanent REDDIT_ADS_REFRESH_TOKEN.
3. Find your account ID
ads.reddit.com → account dropdown — it looks like a2_xxxxxxxx.
4. Configure your MCP client
With uv (no global install needed):
{
"mcpServers": {
"reddit-ads": {
"command": "uv",
"args": ["run", "--directory", "/path/to/reddit-ads-mcp", "python", "-m", "reddit_ads_mcp"],
"env": {
"REDDIT_ADS_CLIENT_ID": "your_app_id",
"REDDIT_ADS_CLIENT_SECRET": "your_secret",
"REDDIT_ADS_REFRESH_TOKEN": "your_refresh_token",
"REDDIT_ADS_ACCOUNT_ID": "a2_xxxxxxxx",
"REDDIT_ADS_WRITE_ENABLED": "false"
}
}
}
}Flip REDDIT_ADS_WRITE_ENABLED to "true" only when you want mutations (and only if the
refresh token was granted the adsedit scope).
Development
uv sync
uv run python -m reddit_ads_mcp # starts the stdio server (needs env vars)License
MIT © Sorin Mihailescu
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/FarahTrip/reddit-ads-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server