Skip to main content
Glama
camlowe

mcp-server-reddit-ads

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
REDDIT_CLIENT_IDYesClient ID from Reddit app registration.
REDDIT_CLIENT_SECRETYesClient secret from Reddit app registration.
REDDIT_REFRESH_TOKENYesRefresh token obtained via auth command.
REDDIT_ADS_ACCOUNT_IDNoOptional default account ID (a2_...).
REDDIT_ADS_WRITE_TIERNoWrite access tier: read, safe, or spend.read

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_accountsA

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.

get_account_overviewA

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.

get_campaignsA

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.

get_campaignA

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.

get_ad_groupsA

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.

get_ad_groupA

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.

get_adsA

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.

get_adA

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.

get_ad_creativeA

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.

find_entityA

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.

get_performance_reportA

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.

get_daily_performanceA

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.

compare_periodsA

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.

compare_adsA

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.

search_subredditsA

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.

get_interest_categoriesA

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.

search_geo_targetsA

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.

create_campaignA

Create a campaign. Always created PAUSED. If campaign budget optimization is on, a conversion pixel id is required (Reddit mandate since 2026-07-13). Find the conversion pixel id in the Reddit Ads dashboard under Events Manager; in practice it equals the ad account id.

create_ad_groupA

Create an ad group. Always created PAUSED. A conversion pixel id is required (Reddit mandate since 2026-07-13). Find the conversion pixel id in the Reddit Ads dashboard under Events Manager; in practice it equals the ad account id.

create_adA

Create an ad. Always created PAUSED. Either promote an existing post (post_url) or build a link ad (headline + click_url, optionally creative_type/thumbnail_url).

pause_itemsA

Pause one or more entities of a single type (campaigns, ad groups, or ads), stopping their spend. Reversible with enable_items. One bad id does not abort the rest; each result reports success and the read-back configured_status, which is the field to trust after a write (effective_status lags by minutes).

update_nameA

Rename one entity (campaign, ad group, or ad). Cosmetic only: delivery, budget, and targeting are untouched. The previous name is overwritten and cannot be recovered through this API.

update_ad_commentsA

Turn commenting on an ad's promoted post on or off. This is the only property of a post the Reddit API allows changing. Echoes old -> new.

copy_adsA

Duplicate a set of ads into another ad group. Each copy is created PAUSED. Reddit creates a new duplicate promoted post per copy. Optionally rewrite click_url query params (e.g. utm_campaign) for the destination. One bad source id does not abort the rest.

enable_itemsA

Resume delivery on one or more entities of a single type (set configured_status ACTIVE). This restarts spend. One bad id does not abort the rest; each result reports the read-back configured_status.

update_budgetA

Set an ad group's daily spend budget in USD, echoing the previous and new value. Overwrites the prior budget and applies to the live ad group immediately. Budgets live on ad groups, not campaigns; read the current value with get_ad_group first.

update_bidA

Set an ad group's bid in USD, echoing the previous and new value. Overwrites the prior bid and applies to the live ad group immediately. The bid governs what you pay per auction; use update_budget to cap total daily spend.

update_targetingA

Update an ad group's targeting. Only the fields you pass are changed; every other targeting key (including exclusions) is preserved. Echoes a from/to diff of the changed keys.

update_ad_urlA

Change an existing ad's click-through URL. Pass a full replacement click_url, or set_query_params to rewrite individual query params (e.g. UTMs) while preserving the rest. Echoes old -> new. On a live ad, paid traffic goes to the new URL immediately.

get_server_statusA

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.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

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/camlowe/mcp-server-reddit-ads'

If you have feedback or need assistance with the MCP directory API, please join our Discord server