Reddit Ads
NPM · MCP-SERVER-REDDIT-ADS · SCANNED SEP 20
Reddit Ads API v3: campaigns, ad groups, ads, reports, plus working writes with safety tiers.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 31 of 96 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Cryptographically verified build provenance (signed, bound to camlowe/mcp-server-reddit-ads). View diagnostics → Pass
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 53 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability85
- AI-judged instruction clarity (excellent).Pass
- Tool/resource definitions use about 1634 tokens (~90/item across 18 items; 18 tools + 0 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management90
- Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 18 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 18 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the Reddit Ads MCP server?
Reddit Ads runs locally as an npm package, launched with npx -y mcp-server-reddit-ads. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · mcp-server-reddit-ads
claude mcp add camlowe-mcp-server-reddit-ads -- npx -y mcp-server-reddit-ads
{
"mcpServers": {
"camlowe-mcp-server-reddit-ads": {
"command": "npx",
"args": [
"-y",
"mcp-server-reddit-ads"
]
}
}
} {
"servers": {
"camlowe-mcp-server-reddit-ads": {
"command": "npx",
"args": [
"-y",
"mcp-server-reddit-ads"
]
}
}
} codex mcp add camlowe-mcp-server-reddit-ads -- npx -y mcp-server-reddit-ads
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"camlowe-mcp-server-reddit-ads": {
"type": "local",
"command": [
"npx",
"-y",
"mcp-server-reddit-ads"
],
"enabled": true
}
}
} openclaw mcp add camlowe-mcp-server-reddit-ads --command npx --arg -y --arg mcp-server-reddit-ads
mcp_servers:
camlowe-mcp-server-reddit-ads:
command: "npx"
args: ["-y", "mcp-server-reddit-ads"] {
"McpServers": {
"camlowe-mcp-server-reddit-ads": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"mcp-server-reddit-ads"
]
}
}
} assistant mcp add camlowe-mcp-server-reddit-ads -t stdio -c npx -a -y mcp-server-reddit-ads
{
"mcpServers": {
"camlowe-mcp-server-reddit-ads": {
"command": "npx",
"args": [
"-y",
"mcp-server-reddit-ads"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 20 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.
- 18 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
- 17 Sept 26 −3
- Stability: pass → 0.80 functional
- 16 Sept 26 0
- Stability: 0.97 → pass security
- 15 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 13 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 87 to 90. That category is still filling its 30-day observation window: 26 days of observed history at the previous scan, 27 at this one. The score rises as the window fills, whether or not the server changes.
- 11 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
- 10 Sept 26 −3
- Stability: pass → 0.80 functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed npm/mcp-server-reddit-ads@0.5.5
Provenance Verified
A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.
| Result | Verified |
|---|---|
| Ecosystem | npm |
| Reason | Verified |
| Discovered via | Registry attestation endpoint |
| Source repo | camlowe/mcp-server-reddit-ads |
| Certificate issuer | https://token.actions.githubusercontent.com |
| Certificate SAN | https://github.com/camlowe/mcp-server-reddit-ads/.github/workflows/release.yml@refs/tags/v0.5.5 |
| Rekor log index | 2277142357 |
| Predicate type | https://slsa.dev/provenance/v1 |
| Subject digest | sha512:c8e25357dfbf21ffcc4cc19c346000487e71f74d14d67d24f62df96be8b40490cefe9cbcf45a91d411e6154f0334dc2cbf8b0351d1d9e98919b4c4019 |
Background: How many MCP packages publish verified provenance →
Dependencies 96 packages
| Packages resolved | 96 |
|---|---|
| Stale | 31 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
compare_ads ~136
Per-ad performance within one ad group, joined with each ad's name and creative headline and sorted by spend - answers 'which creative is winning?' in one call. Money metrics in USD. Scoped to a single ad group: use get_performance_report for account-level totals.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Ad account id. Falls back to REDDIT_ADS_ACCOUNT_ID. |
| ad_group_id | string | yes | Ad group whose ads to compare. |
| days | integer | – | Trailing days to report over. Default 30. |
| metrics | array | – | Friendly metric names. Default: a useful spend+conversions set. |
No output schema declared.
No examples provided.
compare_periods ~127
Compare account performance over the trailing N days against the N days immediately before (same-length back-to-back windows). Returns totals for both windows plus absolute and percent change per metric. Money metrics in USD. Two totals per metric only: use get_daily_performance to see the day-level shape within a window.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Ad account id. Falls back to REDDIT_ADS_ACCOUNT_ID. |
| days | integer | – | Window length in trailing days. Default 7. |
| metrics | array | – | Friendly metric names. Default: a useful spend+conversions set. |
No output schema declared.
No examples provided.
find_entity ~111
Find campaigns, ad groups, or ads by name (case-insensitive substring match). Use this to turn a human-readable name into an id before calling other tools. Prefer get_campaign, get_ad_group, or get_ad when you already have the id.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Ad account id. Falls back to REDDIT_ADS_ACCOUNT_ID. |
| entity_type | string | – | Restrict the search to one type. Default: any. |
| query | string | yes | Name fragment to search for. |
No output schema declared.
No examples provided.
get_account_overview ~71
One-glance health of an account: campaign/ad-group/ad counts by effective status, and this-week vs last-week spend (two comparable 7-day windows). One entity sweep plus one report call.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Ad account id. Falls back to REDDIT_ADS_ACCOUNT_ID. |
No output schema declared.
No examples provided.
get_accounts ~58
List every Reddit ad account these credentials can reach, across all businesses. Use this first to get an account id for the other tools, or set REDDIT_ADS_ACCOUNT_ID to default it. One row per account, so the result is small.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_ad ~65
Get one ad by id: status, ad group, and click-through URL, but not the creative copy. Use get_ad_creative for the headline, body, and media, and get_ads to browse an account or ad group.
| Name | Type | Req | Description |
|---|---|---|---|
| ad_id | string | yes | Ad id. |
No output schema declared.
No examples provided.
get_ad_creative ~78
Read the creative behind an ad: headline, body text, media, thumbnail, and post URL. The creative lives on the ad's promoted post and is immutable via the API - changing copy means creating a new ad. Use get_ad for the ad's status and click-through URL instead.
| Name | Type | Req | Description |
|---|---|---|---|
| ad_id | string | yes | Ad id. |
No output schema declared.
No examples provided.
get_ad_group ~69
Get one ad group by id, with budget and bid fields in USD. This is where budget, bid, and targeting live, so read it before and after update_budget, update_bid, or update_targeting to confirm a change landed.
| Name | Type | Req | Description |
|---|---|---|---|
| ad_group_id | string | yes | Ad group id. |
No output schema declared.
No examples provided.
get_ad_groups ~112
List ad groups in an account, optionally filtered to one campaign, with budget and bid fields in USD. Ad groups hold the budget, bid, and targeting that update_budget, update_bid, and update_targeting change. Use get_ad_group for a single known id.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Ad account id. Falls back to REDDIT_ADS_ACCOUNT_ID. |
| campaign_id | string | – | Only return ad groups in this campaign. |
| status | string | – | Client-side filter on configured_status. |
No output schema declared.
No examples provided.
get_ads ~103
List ads in an account, optionally filtered to one ad group. Returns ad records only, not creative copy: use get_ad_creative for headline and body text, or compare_ads to rank one ad group's ads by spend.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Ad account id. Falls back to REDDIT_ADS_ACCOUNT_ID. |
| ad_group_id | string | – | Only return ads in this ad group. |
| status | string | – | Client-side filter on configured_status. |
No output schema declared.
No examples provided.
get_campaign ~50
Get one campaign by id, with budget fields converted to USD. Use get_campaigns to browse or filter, or find_entity when you only know the name.
| Name | Type | Req | Description |
|---|---|---|---|
| campaign_id | string | yes | Campaign id. |
No output schema declared.
No examples provided.
get_campaigns ~102
List all campaigns in a Reddit ad account, with budget fields converted to USD (*_usd siblings). Use get_campaign for a single known id, or find_entity to resolve a name to an id. Returns every campaign in the account, so narrow with status on large accounts.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Ad account id (a2_...). Falls back to REDDIT_ADS_ACCOUNT_ID. |
| status | string | – | Client-side filter on configured_status. |
No output schema declared.
No examples provided.
get_daily_performance ~103
Day-by-day performance for the trailing N days, broken down by date, with money metrics in USD. Use this to see a trend or spot a spike. For window totals use get_performance_report, or compare_periods for a like-for-like change against the previous N days.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Ad account id. Falls back to REDDIT_ADS_ACCOUNT_ID. |
| days | integer | – | Number of trailing days. Default 7. |
No output schema declared.
No examples provided.
get_interest_categories ~51
List Reddit's interest targeting categories. Returns the ids to pass as interests to update_targeting. Takes no arguments and returns the whole catalogue, so call it once and reuse the result rather than per ad group.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
get_performance_report ~205
Performance totals for an ad account over a date window. Accepts friendly lowercase metric names (e.g. impressions, clicks, spend, ctr, cpc, conversion_page_visit_clicks) validated locally before the call. Money metrics come back in USD. Defaults to the last 7 days. Use get_daily_performance for a per-day breakdown, compare_periods for change against the prior window, or compare_ads to rank the ads inside one ad group.
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | string | – | Ad account id. Falls back to REDDIT_ADS_ACCOUNT_ID. |
| breakdowns | array | – | Dimensions to break down by, e.g. date, campaign_id, country, community. |
| end_date | string | – | YYYY-MM-DD, inclusive. Default: today. |
| metrics | array | – | Friendly metric names. Default: a useful spend+conversions set. |
| start_date | string | – | YYYY-MM-DD, inclusive. Default: 7 days ago. |
No output schema declared.
No examples provided.
get_server_status ~42
Diagnose the server: Reddit Ads API connectivity, configured write tier, how many tools that tier hides, and the default account. Start here when something is not working.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
search_geo_targets ~77
Search geographic targets (countries, regions, and metros) by name. Returns the ids to pass as geolocations to update_targeting, which needs Reddit geo ids rather than plain place names. Read-only lookup: it does not change any targeting by itself.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | Search text, e.g. 'united'. |
No output schema declared.
No examples provided.
search_subreddits ~74
Search targetable subreddits (communities) by name or keyword. Returns the ids to pass as communities to update_targeting, which needs Reddit ids rather than display names. Read-only lookup: it does not change any targeting by itself.
| Name | Type | Req | Description |
|---|---|---|---|
| query | string | yes | Search text, e.g. 'gaming'. |
No output schema declared.
No examples provided.
What is the Reddit Ads MCP server?
Reddit Ads is an MCP server listed in the public MCP registry as io.github.camlowe/mcp-server-reddit-ads. Reddit Ads API v3: campaigns, ad groups, ads, reports, plus working writes with safety tiers. This page covers its npm package (mcp-server-reddit-ads).
Is the Reddit Ads MCP server safe to use?
Reddit Ads scores 95 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Reddit Ads MCP server expose?
Reddit Ads exposes 18 tools: get_accounts, get_account_overview, get_campaigns, get_campaign, get_ad_groups, and 13 more. Their descriptions and schemas cost roughly 1,634 tokens of context every time the server is loaded.
Is the Reddit Ads MCP server still maintained?
Reddit Ads is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the Reddit Ads MCP server under?
Reddit Ads declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.