adbutler avatar

AdButler

adbutler/mcp-server

Exposes the complete AdButler v2 API as 600+ MCP tools covering campaigns, zones, creatives, VAST video ads, programmatic deals, and reporting. Ships with nine workflow prompts that guide your AI through multi-step tasks like launching a campaign or setting up retail media placements. Available both as a zero-install hosted service at mcp.adbutler.com (just add your API key as a header) or as a local npm package. Includes three meta-tools for searching the OpenAPI spec and invoking arbitrary endpoints when you need something outside the core tool set. Useful if you manage ad inventory at scale and want conversational access to targeting rules, placement assignments, VAST 4.2 linear and companion creatives, or custom report generation without writing API calls by hand.

tools
80
auth
Secret needed
transport
STDIO, HTTP, SSE
env var
1
last updated
Oct 19, 2026

Install

From registry metadata
$ npx add-mcp https://mcp.adbutler.com/mcp --name adbutler

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http adbutler https://mcp.adbutler.com/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 80 tools

Verified live against the running server on Nov 6, 2026.

list_advertisersList all advertisers in your AdButler account2 params

List all advertisers in your AdButler account

Parameters* required
limitnumber
Max results to return (default 100, max 100)
offsetnumber
Pagination offset
get_advertiserGet details of a specific advertiser by ID1 params

Get details of a specific advertiser by ID

Parameters* required
id*number
Advertiser ID
create_advertiserCreate a new advertiser6 params

Create a new advertiser

Parameters* required
can_add_ad_itemsboolean
Whether advertiser can submit advertisements for scheduling
can_change_passwordboolean
Whether advertiser can change password
emailstring
Contact email
metadataobject
Custom metadata key-value pairs
name*string
Advertiser name
passwordstring
Password for advertiser portal (min 8 chars, must include upper, lower, number)
update_advertiserUpdate an existing advertiser7 params

Update an existing advertiser

Parameters* required
can_add_ad_itemsboolean
Whether advertiser can submit advertisements for scheduling
can_change_passwordboolean
Whether advertiser can change password
emailstring
Contact email
id*number
Advertiser ID
metadataobject
Custom metadata key-value pairs
namestring
Advertiser name
passwordstring
Password for advertiser portal (min 8 chars, must include upper, lower, number)
delete_advertiserDelete an advertiser1 params

Delete an advertiser

Parameters* required
id*number
Advertiser ID
archive_advertiserArchive an advertiser (soft-delete, can be restored later)1 params

Archive an advertiser (soft-delete, can be restored later)

Parameters* required
id*number
Advertiser ID
list_archived_advertisersList all archived advertisers2 params

List all archived advertisers

Parameters* required
limitnumber
Max results to return (default 100, max 100)
offsetnumber
Pagination offset
get_archived_advertiserGet details of a specific archived advertiser1 params

Get details of a specific archived advertiser

Parameters* required
id*number
Archived advertiser ID
unarchive_advertiserRestore an archived advertiser back to active status1 params

Restore an archived advertiser back to active status

Parameters* required
id*number
Archived advertiser ID
list_all_campaignsList all campaigns across all types2 params

List all campaigns across all types

Parameters* required
limitnumber
Max results to return (default 100, max 100)
offsetnumber
Pagination offset
list_campaignsList all standard campaigns2 params

List all standard campaigns

Parameters* required
limitnumber
Max results to return (default 100, max 100)
offsetnumber
Pagination offset
get_campaignGet details of a specific standard campaign1 params

Get details of a specific standard campaign

Parameters* required
id*number
Campaign ID
create_campaignCreate a new standard campaign9 params

Create a new standard campaign

Parameters* required
advertisernumber
Advertiser ID
budgetobject
Budget limits (daily/weekly/monthly/lifetime)
contractnumber
Contract ID (requires Contract Management add-on)
metadataobject
Custom metadata key-value pairs
name*string
Campaign name
roadblock_tagsstring
Tag to link campaign to a roadblock
scheduling_sourcestring
Whether scheduling is set at campaign or ad item levelone of CAMPAIGN · AD_ITEM
targeting_sourcestring
Whether targeting is set at campaign or ad item levelone of CAMPAIGN · AD_ITEM
trusted_redirect_domainsarray
Array of trusted redirect domains
update_campaignUpdate an existing standard campaign10 params

Update an existing standard campaign

Parameters* required
advertisernumber
Advertiser ID
budgetobject
Budget limits
contractnumber
Contract ID
id*number
Campaign ID
metadataobject
Custom metadata key-value pairs
namestring
Campaign name
roadblock_tagsstring
Roadblock tag
scheduling_sourcestring
Scheduling levelone of CAMPAIGN · AD_ITEM
targeting_sourcestring
Targeting levelone of CAMPAIGN · AD_ITEM
trusted_redirect_domainsarray
Trusted redirect domains
delete_campaignDelete a standard campaign1 params

Delete a standard campaign

Parameters* required
id*number
Campaign ID
archive_campaignArchive a standard campaign (soft-delete, can be restored later)1 params

Archive a standard campaign (soft-delete, can be restored later)

Parameters* required
id*number
Campaign ID
list_archived_campaignsList all archived standard campaigns2 params

List all archived standard campaigns

Parameters* required
limitnumber
Max results to return (default 100, max 100)
offsetnumber
Pagination offset
get_archived_campaignGet details of a specific archived standard campaign1 params

Get details of a specific archived standard campaign

Parameters* required
id*number
Archived campaign ID
delete_archived_campaignPermanently delete an archived standard campaign1 params

Permanently delete an archived standard campaign

Parameters* required
id*number
Archived campaign ID
unarchive_campaignRestore an archived standard campaign back to active status1 params

Restore an archived standard campaign back to active status

Parameters* required
id*number
Archived campaign ID
get_campaign_conversion_tagGet conversion tag for a campaign1 params

Get conversion tag for a campaign

Parameters* required
id*number
Campaign ID
get_campaign_eligible_zonesGet eligible zones for a campaign1 params

Get eligible zones for a campaign

Parameters* required
id*number
Campaign ID
campaign_bulk_create_catalog_ad_itemsBulk create catalog ad items in a campaign2 params

Bulk create catalog ad items in a campaign

Parameters* required
campaign_id*number
Campaign ID
items*array
Array of catalog ad item objects to create
campaign_bulk_delete_catalog_ad_itemsBulk delete catalog ad items from a campaign2 params

Bulk delete catalog ad items from a campaign

Parameters* required
campaign_id*number
Campaign ID
items*array
Array of catalog ad item IDs to delete
list_campaign_assignmentsList all campaign assignments (ad items assigned to campaigns)2 params

List all campaign assignments (ad items assigned to campaigns)

Parameters* required
limitnumber
Max results to return (default 100, max 100)
offsetnumber
Pagination offset
get_campaign_assignmentGet details of a specific campaign assignment1 params

Get details of a specific campaign assignment

Parameters* required
id*number
Campaign assignment ID
create_campaign_assignmentCreate a new campaign assignment (assign an ad item to a campaign)11 params

Create a new campaign assignment (assign an ad item to a campaign)

Parameters* required
activeboolean
Whether assignment is active (defaults to true)
advertisement*object
Advertisement object with id and type
campaign*object
Campaign object with id and type
data_key_targetnumber
Data Key Target ID
geo_targetnumber
Geo Target ID (only if campaign targeting_source is "AD_ITEM")
keywordsstring
Comma-separated keywords for targeting
keywords_match_methodstring
Keyword matching methodone of required · preferred · filtered
list_targetnumber
List Target ID
platform_targetnumber
Platform Target ID
schedulenumber
Schedule ID (only if campaign scheduling_source is "AD_ITEM")
weightnumber
Relative delivery weight (defaults to 1)
update_campaign_assignmentUpdate an existing campaign assignment10 params

Update an existing campaign assignment

Parameters* required
activeboolean
Whether assignment is active
data_key_targetnumber
Data Key Target ID
geo_targetnumber
Geo Target ID
id*number
Campaign assignment ID
keywordsstring
Comma-separated keywords
keywords_match_methodstring
Keyword matching methodone of required · preferred · filtered
list_targetnumber
List Target ID
platform_targetnumber
Platform Target ID
schedulenumber
Schedule ID
weightnumber
Relative delivery weight
delete_campaign_assignmentDelete a campaign assignment1 params

Delete a campaign assignment

Parameters* required
id*number
Campaign assignment ID
list_channelsList all channels2 params

List all channels

Parameters* required
limitnumber
Max results to return (default 100, max 100)
offsetnumber
Pagination offset
get_channelGet details of a specific channel1 params

Get details of a specific channel

Parameters* required
id*number
Channel ID
create_channelCreate a new channel3 params

Create a new channel

Parameters* required
name*string
Channel name
prioritystring
Serving priority (default: standard)one of sponsorship · standard · network · bulk · house
use_share_of_voiceboolean
Whether to use share of voice as serving strategy (false = use weight)
update_channelUpdate an existing channel3 params

Update an existing channel

Parameters* required
id*number
Channel ID
namestring
Channel name
prioritystring
Serving priorityone of sponsorship · standard · network · bulk · house
delete_channelDelete a channel1 params

Delete a channel

Parameters* required
id*number
Channel ID
archive_channelArchive a channel (soft-delete, can be restored later)1 params

Archive a channel (soft-delete, can be restored later)

Parameters* required
id*number
Channel ID
list_archived_channelsList all archived channels2 params

List all archived channels

Parameters* required
limitnumber
Max results to return (default 100, max 100)
offsetnumber
Pagination offset
get_archived_channelGet details of a specific archived channel1 params

Get details of a specific archived channel

Parameters* required
id*number
Archived channel ID
delete_archived_channelPermanently delete an archived channel1 params

Permanently delete an archived channel

Parameters* required
id*number
Archived channel ID
unarchive_channelRestore an archived channel back to active status1 params

Restore an archived channel back to active status

Parameters* required
id*number
Archived channel ID
list_channel_zone_assignmentsList all channel zone assignments2 params

List all channel zone assignments

Parameters* required
limitnumber
Max results to return (default 100, max 100)
offsetnumber
Pagination offset
get_channel_zone_assignmentGet details of a specific channel zone assignment1 params

Get details of a specific channel zone assignment

Parameters* required
id*number
Channel zone assignment ID
create_channel_zone_assignmentAssign a zone to a channel2 params

Assign a zone to a channel

Parameters* required
channel*number
Channel ID
zone*object
Zone object with id and type
delete_channel_zone_assignmentRemove a zone from a channel1 params

Remove a zone from a channel

Parameters* required
id*number
Channel zone assignment ID
list_all_zonesList all zones across all types (standard, email, catalog)2 params

List all zones across all types (standard, email, catalog)

Parameters* required
limitnumber
Max results to return (default 100, max 100)
offsetnumber
Pagination offset
list_zonesList all standard zones2 params

List all standard zones

Parameters* required
limitnumber
Max results to return (default 100, max 100)
offsetnumber
Pagination offset
get_zoneGet details of a specific standard zone1 params

Get details of a specific standard zone

Parameters* required
id*number
Zone ID
create_zoneCreate a new standard zone. Set dimensions to "dynamic" for a dynamic zone (width/height must be 0), or "fixed" (default) for a fixed-size zone.27 params

Create a new standard zone. Set dimensions to "dynamic" for a dynamic zone (width/height must be 0), or "fixed" (default) for a fixed-size zone.

Parameters* required
ad_size_filterobject
Ad size filter (dynamic zones only)
allow_demand_sourcesboolean
Allow requests to demand endpoints
allowed_root_native_templatesarray
Allowed root native template IDs
api_frameworksarray
Supported API frameworks for OpenRTB
auction_tie_breakstring
Tie-breaking method for auctionsone of RANDOM · SCORE
bid_floornumber
Default bid floor for programmatic
burn_in_hoursnumber
Hours before eCPM confidence
burn_in_impressionsnumber
Impressions before eCPM confidence
dimensionsstring
Zone dimensions type: "fixed" (default) or "dynamic"one of fixed · dynamic
ecpm_testing_allowancenumber
Percentage for eCPM recalculation testing
heightnumber
Zone height in pixels (must be 0 if dimensions is "dynamic")
iab_categoriesarray
IAB category descriptors
metadataobject
Custom metadata key-value pairs
min_payoutnumber
Minimum payout per impression (CPM)
name*string
Zone name
optimization_strategystring
Zone optimization strategy
pmp_dealsarray
Allowed PMP Deal IDs
private_auctionboolean
Whether auction ignores non-deal bids
publishernumber
Publisher ID
refresh_frequencynumber
Interval in seconds for serving new ads

+7 more parameters. See the server's own documentation for the full schema.

update_zoneUpdate an existing standard zone27 params

Update an existing standard zone

Parameters* required
ad_size_filterobject
Ad size filter (dynamic zones only)
allow_demand_sourcesboolean
Allow requests to demand endpoints
allowed_root_native_templatesarray
Allowed root native template IDs
api_frameworksarray
Supported API frameworks
auction_tie_breakstring
Tie-breaking methodone of RANDOM · SCORE
bid_floornumber
Default bid floor
burn_in_hoursnumber
Hours before eCPM confidence
burn_in_impressionsnumber
Impressions before eCPM confidence
dimensionsstring
Zone dimensions typeone of fixed · dynamic
ecpm_testing_allowancenumber
Percentage for eCPM recalculation
heightnumber
Zone height in pixels
iab_categoriesarray
IAB category descriptors
id*number
Zone ID
metadataobject
Custom metadata key-value pairs
min_payoutnumber
Minimum payout per impression (CPM)
namestring
Zone name
optimization_strategystring
Zone optimization strategy
pmp_dealsarray
Allowed PMP Deal IDs
private_auctionboolean
Ignore non-deal bids in auction
publishernumber
Publisher ID

+7 more parameters. See the server's own documentation for the full schema.

delete_zoneDelete a standard zone1 params

Delete a standard zone

Parameters* required
id*number
Zone ID
get_zone_tagGet the ad serving tag (embed code) for a zone1 params

Get the ad serving tag (embed code) for a zone

Parameters* required
id*number
Zone ID
get_zone_conversion_tagGet the conversion tracking tag for a standard zone1 params

Get the conversion tracking tag for a standard zone

Parameters* required
id*number
Zone ID
generate_bulk_zone_tagsGenerate ad serving tags for multiple zones at once1 params

Generate ad serving tags for multiple zones at once

Parameters* required
zone_ids*array
Array of zone IDs to generate tags for
archive_zoneArchive a standard zone (soft-delete, can be restored later)1 params

Archive a standard zone (soft-delete, can be restored later)

Parameters* required
id*number
Zone ID
list_archived_zonesList all archived standard zones2 params

List all archived standard zones

Parameters* required
limitnumber
Max results to return (default 100, max 100)
offsetnumber
Pagination offset
get_archived_zoneGet details of a specific archived standard zone1 params

Get details of a specific archived standard zone

Parameters* required
id*number
Archived zone ID
unarchive_zoneRestore an archived standard zone back to active status1 params

Restore an archived standard zone back to active status

Parameters* required
id*number
Archived zone ID
list_email_zonesList all email zones2 params

List all email zones

Parameters* required
limitnumber
Max results to return (default 100, max 100)
offsetnumber
Pagination offset
get_email_zoneGet details of a specific email zone1 params

Get details of a specific email zone

Parameters* required
id*number
Email zone ID
create_email_zoneCreate a new email zone for serving ads in email newsletters8 params

Create a new email zone for serving ads in email newsletters

Parameters* required
auction_tie_breakstring
Tie-breaking method for auctionsone of RANDOM · SCORE
height*number
Zone height in pixels
metadataobject
Custom metadata key-value pairs
name*string
Zone name
publishernumber
Publisher ID
rotate_timerobject
Period after which user sees a new ad
uid_rotateboolean
Serve different ads per user
width*number
Zone width in pixels
update_email_zoneUpdate an existing email zone9 params

Update an existing email zone

Parameters* required
auction_tie_breakstring
Tie-breaking methodone of RANDOM · SCORE
heightnumber
Zone height in pixels
id*number
Email zone ID
metadataobject
Custom metadata key-value pairs
namestring
Zone name
publishernumber
Publisher ID
rotate_timerobject
Period after which user sees a new ad
uid_rotateboolean
Serve different ads per user
widthnumber
Zone width in pixels
delete_email_zoneDelete an email zone1 params

Delete an email zone

Parameters* required
id*number
Email zone ID
get_email_zone_tagGet the ad serving tag for an email zone1 params

Get the ad serving tag for an email zone

Parameters* required
id*number
Email zone ID
get_email_zone_conversion_tagGet the conversion tracking tag for an email zone1 params

Get the conversion tracking tag for an email zone

Parameters* required
id*number
Email zone ID
archive_email_zoneArchive an email zone1 params

Archive an email zone

Parameters* required
id*number
Email zone ID
list_archived_email_zonesList all archived email zones2 params

List all archived email zones

Parameters* required
limitnumber
Max results to return (default 100, max 100)
offsetnumber
Pagination offset
get_archived_email_zoneGet details of a specific archived email zone1 params

Get details of a specific archived email zone

Parameters* required
id*number
Archived email zone ID
unarchive_email_zoneRestore an archived email zone back to active status1 params

Restore an archived email zone back to active status

Parameters* required
id*number
Archived email zone ID
list_catalog_zonesList all catalog zones (for product/retail ad serving)2 params

List all catalog zones (for product/retail ad serving)

Parameters* required
limitnumber
Max results to return (default 100, max 100)
offsetnumber
Pagination offset
get_catalog_zoneGet details of a specific catalog zone1 params

Get details of a specific catalog zone

Parameters* required
id*number
Catalog zone ID
create_catalog_zoneCreate a new catalog zone for product/retail ad serving10 params

Create a new catalog zone for product/retail ad serving

Parameters* required
advertiser_cost_typestring
Billing modelone of CPM · CPC
auction_typestring
Auction typeone of FIRST_PRICE · SECOND_PRICE
bid_floornumber
Default bid floor
bid_floor_cpcnumber
CPC bid floor
bid_floor_cpmnumber
CPM bid floor
catalog_id*number
Catalog ID
click_cooldown_periodnumber
Click cooldown period in seconds (1-86400)
conversion_lookback_periodnumber
Conversion lookback period in seconds (1-7776000)
name*string
Zone name
publishernumber
Publisher ID
update_catalog_zoneUpdate an existing catalog zone8 params

Update an existing catalog zone

Parameters* required
advertiser_cost_typestring
Billing modelone of CPM · CPC
auction_typestring
Auction typeone of FIRST_PRICE · SECOND_PRICE
bid_floor_cpcnumber
CPC bid floor
bid_floor_cpmnumber
CPM bid floor
click_cooldown_periodnumber
Click cooldown period in seconds
conversion_lookback_periodnumber
Conversion lookback period in seconds
id*number
Catalog zone ID
namestring
Zone name
delete_catalog_zoneDelete a catalog zone1 params

Delete a catalog zone

Parameters* required
id*number
Catalog zone ID
get_catalog_zone_tagGet the ad serving tag for a catalog zone1 params

Get the ad serving tag for a catalog zone

Parameters* required
id*number
Catalog zone ID
list_publishersList all publishers in your AdButler account2 params

List all publishers in your AdButler account

Parameters* required
limitnumber
Max results to return (default 100, max 100)
offsetnumber
Pagination offset
get_publisherGet details of a specific publisher1 params

Get details of a specific publisher

Parameters* required
id*number
Publisher ID
create_publisherCreate a new publisher11 params

Create a new publisher

Parameters* required
can_admin_accountboolean
Grant administrator privileges
can_approve_adsboolean
Allow publisher to approve/deny ad items
can_change_passwordboolean
Whether publisher can change password
can_view_wordpress_keyboolean
Allow publisher to view WordPress key
default_payoutobject
Default payout configuration
domainstring
Publisher domain (top-level domains only)
emailstring
Contact email (allows publisher to log in)
metadataobject
Custom metadata key-value pairs
name*string
Publisher name
seller_typestring
Seller type for ads.txtone of publisher · intermediary · both
timezonestring
Timezone (e.g., "America/New_York")
update_publisherUpdate an existing publisher12 params

Update an existing publisher

Parameters* required
can_admin_accountboolean
Grant administrator privileges
can_approve_adsboolean
Allow publisher to approve/deny ad items
can_change_passwordboolean
Whether publisher can change password
can_view_wordpress_keyboolean
Allow publisher to view WordPress key
default_payoutobject
Default payout configuration
domainstring
Publisher domain
emailstring
Contact email
id*number
Publisher ID
metadataobject
Custom metadata key-value pairs
namestring
Publisher name
seller_typestring
Seller typeone of publisher · intermediary · both
timezonestring
Timezone
delete_publisherDelete a publisher1 params

Delete a publisher

Parameters* required
id*number
Publisher ID
archive_publisherArchive a publisher (soft-delete, can be restored later)1 params

Archive a publisher (soft-delete, can be restored later)

Parameters* required
id*number
Publisher ID
list_archived_publishersList all archived publishers2 params

List all archived publishers

Parameters* required
limitnumber
Max results to return (default 100, max 100)
offsetnumber
Pagination offset

Sponsors

Configuration

ADBUTLER_API_KEY*secret

Your AdButler API key. Get it from AdButler Dashboard → Settings → API Keys.

Readme

AdButler MCP Server

npm License: MIT

Manage your entire AdButler account from any AI assistant — Claude, ChatGPT, Cursor, Windsurf, Cline, and any other Model Context Protocol client.

This MCP server exposes the full AdButler v2 API — 600+ tools covering advertisers, campaigns, zones, creatives, placements, VAST video ads, programmatic / RTB, reporting, targeting, drafts, contracts, product catalogs, and more — plus 9 pre-built workflow prompts that walk an AI through common tasks like launching a campaign or setting up retail media.

What you can ask

"Create a new campaign for Pepsi targeting users in Canada with a $5,000 lifetime budget, and assign it to my Homepage Banner zone."

"Show me the top 10 underperforming ad items in the last 7 days by CTR."

"Set up a VAST 4.2 pre-roll campaign with a 30-second skippable creative and three companion banners."

"Walk me through creating a new programmatic deal."


View the full README on GitHub

Details

Repository
github.com/adbutler/mcp-server
Package
@adbutler/mcp-server
Transport
STDIO, HTTP, SSE
Auth
Required
Registry
MCP registry, active
Prompts
9
Tools verified
Nov 6, 2026