list_advertisers
List all advertisers in your AdButler account
limitoffset
com.adbutlerPublished by adbutler.comOfficial publisherv2.8.0Updated Oct 24, 2026
Manage AdButler campaigns, zones, ad items, VAST, and reports from Claude, ChatGPT, and Cursor.
AdButler MCP server lets an AI assistant manage an AdButler ad account — advertisers, campaigns, zones, creatives, VAST video, targeting and reports — through 6
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/com.adbutler%2Fmcp-server/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.Add this to your client's mcpServers config.
{
"mcpServers": {
"adbutler": {
"type": "http",
"url": "https://mcp.adbutler.com/mcp"
}
}
}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.
"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."
"Audit my ad units — which zones have no active placements?"
The AI translates these into the right sequence of AdButler API calls, runs them, and shows you the result.
You have two options. Most users want the hosted version — zero setup, just paste a URL.
Use AdButler's hosted MCP server. No install, no Node, no npm.
The hosted server speaks both modern Streamable HTTP (/mcp) and legacy SSE (/sse) transports. New clients should prefer Streamable HTTP; SSE remains for backward compatibility.
Run the server locally as a Node process. Useful if you want to keep your API key out of any external service or run against a self-hosted AdButler.
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Add to the client's MCP config:
AdButler Dashboard → Settings → API Keys → create a new key. It's the same key the AdButler v2 REST API uses.
The AdButler MCP works for both new and existing customers. What you see depends on whether you've already configured an API key.
Use one of these:
Option 1 — set the API key in your connection config (recommended: persists across sessions)
Pass the key at connect time and every session authenticates automatically — the key never has to be shared in the chat.
claude mcp add adbutler --transport http https://mcp.adbutler.com/mcp --header "Authorization: Bearer YOUR_API_KEY"claude_desktop_config.json → add headers: { "Authorization": "Bearer YOUR_API_KEY" } next to the server URLAuthorization: Bearer YOUR_API_KEYhttps://mcp.adbutler.com/mcp?api_key=YOUR_API_KEYAuthorization: Bearer … header or ?api_key=… query param, on /mcp (Streamable HTTP) or /sse (legacy SSE)Reconnect — all 600+ tools become available immediately.
Option 2 — configure inside the chat (current session only on hosted)
Connect to the hosted MCP without auth and you'll see four onboarding tools. Then in the chat say:
"Configure my AdButler API key:
your_api_key_here"
Your AI will call the setup_api_key tool, validate the key against your account, and unlock all the AdButler tools. You may need to disconnect and reconnect to refresh your client's tool list after.
⚠️ On the hosted server, a key configured this way lasts only until the session ends — a new chat, a client restart, or a server-side reconnect will ask for it again. If you find yourself pasting the key into the chat repeatedly (and your AI warning you about sharing secrets in conversation), switch to Option 1: configure the key once in the connection settings and it persists.
This means the key is being entered in-chat (Option 2) against the hosted server, where it is deliberately session-scoped — the hosted server is multi-tenant and never writes your key to disk. The fix is one-time setup in your client's connection config (Option 1 above): header for Claude Code / Claude Desktop / Cursor, ?api_key= URL parameter for claude.ai custom connectors. After that, reconnects and new chats authenticate automatically.
Connect to the hosted MCP without auth. The chat will guide you through a free trial signup using create_trial_account → check your email → verify_trial_email with the code. The API key is configured automatically.
If you're running locally via npx, set ADBUTLER_API_KEY in the env block of your client's MCP config (see Option B above). The setup tools also work — and on local the key is remembered between sessions.
Pre-built skill prompts that guide the AI through complete workflows end-to-end. Invoke them as MCP prompts (/launch-campaign etc.) from your client.
When you need an endpoint that no specific tool wraps — or when the user asks about a field (e.g. "priority", "frequency cap") rather than a resource — three escape-hatch tools cover the gap:
These complement (don't replace) the specific tools below — the LLM continues to prefer specific tools when they obviously match.
100% coverage of the AdButler v2 OpenAPI spec (604/604 endpoints).
The hosted server at mcp.adbutler.com collects usage analytics so we can understand which tools are popular, prioritize improvements, and diagnose failures. We capture, per tool call:
list_zones, create_campaign) — never tool arguments/self)forbidden, network), and the error message text (truncated to 1000 characters)We never collect: tool arguments, response bodies, your raw API key, IP addresses, request bodies. The instrumentation only sees the tool name, timing, and (on failure) the error message produced by the MCP server or AdButler API.
Self-installed copies — npm package, stdio, your own deployment — collect zero data. The instrumentation only fires when the ANALYTICS_INGEST_URL environment variable is set, which is only true for the hosted endpoint at mcp.adbutler.com.
If you'd prefer to opt out of analytics on the hosted server, run your own copy via stdio or self-host the SSE/HTTP server.
Local source for contributors:
Inspect with the official MCP inspector:
MIT
Source: README.md at commit 29d527f
List all advertisers in your AdButler account
limitoffsetGet details of a specific advertiser by ID
idrequiredCreate a new advertiser
namerequiredemailmetadatapasswordcan_add_ad_itemscan_change_passwordUpdate an existing advertiser
idrequirednameemailmetadatapasswordcan_add_ad_itemscan_change_passwordDelete an advertiser
idrequiredArchive an advertiser (soft-delete, can be restored later)
idrequiredList all archived advertisers
limitoffsetGet details of a specific archived advertiser
idrequiredRestore an archived advertiser back to active status
idrequiredList all campaigns across all types
limitoffsetList all standard campaigns
limitoffsetGet details of a specific standard campaign
idrequiredCreate a new standard campaign
namerequiredbudgetcontractmetadataadvertiserroadblock_tagstargeting_sourcescheduling_sourcetrusted_redirect_domainsUpdate an existing standard campaign
idrequirednamebudgetcontractmetadataadvertiserroadblock_tagstargeting_sourcescheduling_sourcetrusted_redirect_domainsDelete a standard campaign
idrequiredArchive a standard campaign (soft-delete, can be restored later)
idrequiredList all archived standard campaigns
limitoffsetGet details of a specific archived standard campaign
idrequiredPermanently delete an archived standard campaign
idrequiredRestore an archived standard campaign back to active status
idrequiredGet conversion tag for a campaign
idrequiredGet eligible zones for a campaign
idrequiredBulk create catalog ad items in a campaign
itemsrequiredcampaign_idrequiredBulk delete catalog ad items from a campaign
itemsrequiredcampaign_idrequiredList all campaign assignments (ad items assigned to campaigns)
limitoffsetGet details of a specific campaign assignment
idrequiredCreate a new campaign assignment (assign an ad item to a campaign)
activeweightcampaignrequiredkeywordsschedulegeo_targetlist_targetadvertisementrequireddata_key_targetplatform_targetkeywords_match_methodUpdate an existing campaign assignment
idrequiredactiveweightkeywordsschedulegeo_targetlist_targetdata_key_targetplatform_targetkeywords_match_methodDelete a campaign assignment
idrequiredList all channels
limitoffsetGet details of a specific channel
idrequiredCreate a new channel
namerequiredpriorityuse_share_of_voiceUpdate an existing channel
idrequirednamepriorityDelete a channel
idrequiredArchive a channel (soft-delete, can be restored later)
idrequiredList all archived channels
limitoffsetGet details of a specific archived channel
idrequiredPermanently delete an archived channel
idrequiredRestore an archived channel back to active status
idrequiredList all channel zone assignments
limitoffsetGet details of a specific channel zone assignment
idrequiredAssign a zone to a channel
zonerequiredchannelrequiredRemove a zone from a channel
idrequiredList all zones across all types (standard, email, catalog)
limitoffsetList all standard zones
limitoffsetGet details of a specific standard zone
idrequiredCreate 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.
namerequiredwidthheightmetadatabid_floorpmp_dealspublisherdimensionsmin_payoutresponsiveburn_in_hoursrefresh_limit+15 moreUpdate an existing standard zone
idrequirednamewidthheightmetadatabid_floorpmp_dealspublisherdimensionsmin_payoutresponsiveburn_in_hours+15 moreDelete a standard zone
idrequiredGet the ad serving tag (embed code) for a zone
idrequiredGet the conversion tracking tag for a standard zone
idrequiredGenerate ad serving tags for multiple zones at once
zone_idsrequiredArchive a standard zone (soft-delete, can be restored later)
idrequiredList all archived standard zones
limitoffsetGet details of a specific archived standard zone
idrequiredRestore an archived standard zone back to active status
idrequiredList all email zones
limitoffsetGet details of a specific email zone
idrequiredCreate a new email zone for serving ads in email newsletters
namerequiredwidthrequiredheightrequiredmetadatapublisheruid_rotaterotate_timerauction_tie_breakUpdate an existing email zone
idrequirednamewidthheightmetadatapublisheruid_rotaterotate_timerauction_tie_breakDelete an email zone
idrequiredGet the ad serving tag for an email zone
idrequiredGet the conversion tracking tag for an email zone
idrequiredArchive an email zone
idrequiredList all archived email zones
limitoffsetGet details of a specific archived email zone
idrequiredRestore an archived email zone back to active status
idrequiredList all catalog zones (for product/retail ad serving)
limitoffsetGet details of a specific catalog zone
idrequiredCreate a new catalog zone for product/retail ad serving
namerequiredbid_floorpublishercatalog_idrequiredauction_typebid_floor_cpcbid_floor_cpmadvertiser_cost_typeclick_cooldown_periodconversion_lookback_periodUpdate an existing catalog zone
idrequirednameauction_typebid_floor_cpcbid_floor_cpmadvertiser_cost_typeclick_cooldown_periodconversion_lookback_periodDelete a catalog zone
idrequiredGet the ad serving tag for a catalog zone
idrequiredList all publishers in your AdButler account
limitoffsetGet details of a specific publisher
idrequiredCreate a new publisher
namerequiredemaildomainmetadatatimezoneseller_typedefault_payoutcan_approve_adscan_admin_accountcan_change_passwordcan_view_wordpress_keyUpdate an existing publisher
idrequirednameemaildomainmetadatatimezoneseller_typedefault_payoutcan_approve_adscan_admin_accountcan_change_passwordcan_view_wordpress_keyDelete a publisher
idrequiredArchive a publisher (soft-delete, can be restored later)
idrequiredList all archived publishers
limitoffsetGet details of a specific archived publisher
idrequiredRestore an archived publisher back to active status
idrequiredList all ad items (banners) across all types (image, custom HTML, rich media, native, catalog)
limitoffsetList all image ad items
limitoffsetGet details of a specific image ad item
idrequiredCreate a new image ad item (banner)
namerequiredwidthheightcreativelocationmetadatahtml_targetcreative_urlhtml_alt_texttracking_pixeltracking_pixelshtml_content_below+1 moreUpdate an existing image ad item
idrequirednamewidthheightcreativelocationmetadatahtml_targetcreative_urlhtml_alt_texttracking_pixeltracking_pixels+2 moreDelete an image ad item
idrequiredGet conversion tracking tag for an image ad item
idrequiredList all custom HTML ad items
limitoffsetGet details of a specific custom HTML ad item
idrequiredCreate a new custom HTML ad item
namerequiredwidthheightlocationmetadatacustom_htmlrequiredtracking_pixeltracking_pixelshtml_content_belowtrusted_redirect_domainsexpand_vertical_directionexpand_horizontal_directionUpdate an existing custom HTML ad item
idrequirednamewidthheightlocationmetadatacustom_htmltracking_pixeltracking_pixelshtml_content_belowtrusted_redirect_domainsexpand_vertical_direction+1 moreDelete a custom HTML ad item
idrequiredGet conversion tracking tag for a custom HTML ad item
idrequiredList all rich media ad items
limitoffsetGet details of a specific rich media ad item
idrequiredCreate a new rich media ad item
namerequiredwidthheightcreativerequiredlocationmetadatatracking_pixeltracking_pixelshtml_content_belowtrusted_redirect_domainsexpand_vertical_directionexpand_horizontal_directionUpdate an existing rich media ad item
idrequirednamecreativelocationmetadatatracking_pixeltracking_pixelshtml_content_belowtrusted_redirect_domainsexpand_vertical_directionexpand_horizontal_directionDelete a rich media ad item
idrequiredGet conversion tracking tag for a rich media ad item
idrequiredList all native ad items
limitoffsetGet details of a specific native ad item
idrequiredCreate a new native ad item using a native template
namerequiredwidthheightlocationmetadatatemplaterequiredvariablesrequiredtracking_pixeltracking_pixelstrusted_redirect_domainsUpdate an existing native ad item
idrequirednamelocationmetadatatemplatevariablestracking_pixeltracking_pixelstrusted_redirect_domainsDelete a native ad item
idrequiredGet conversion tracking tag for a native ad item
idrequiredList all catalog ad items
limitoffsetGet details of a specific catalog ad item
idrequiredCreate a new catalog ad item
namerequiredlocationmetadatacatalog_idrequiredtracking_pixeltracking_pixelscatalog_item_identifierrequiredUpdate an existing catalog ad item
idrequirednamelocationmetadatatracking_pixeltracking_pixelscatalog_item_identifierDelete a catalog ad item
idrequiredConvert a native ad item to an image ad item
idrequiredList all creatives across all types (image, rich media, video, audio)
limitoffsetList all image creatives
limitoffsetGet details of a specific image creative
idrequiredCreate a new image creative. The API uses multipart file upload — pass the media group ID and file attributes.
namegrouprequireddescriptionUpdate an existing image creative
idrequirednamedescriptionDelete an image creative
idrequiredList all rich media creatives
limitoffsetGet details of a specific rich media creative
idrequiredCreate a new rich media creative. The API uses multipart file upload (ZIP for HTML5).
namegrouprequireddescriptionindex_file_pathUpdate an existing rich media creative
idrequirednamedescriptionDelete a rich media creative
idrequiredList all video creatives
limitoffsetGet details of a specific video creative
idrequiredCreate a new video creative. The API uses multipart file upload.
namegrouprequireddescriptionUpdate an existing video creative
idrequirednamedescriptionDelete a video creative
idrequiredList all audio creatives
limitoffsetGet details of a specific audio creative
idrequiredCreate a new audio creative. The API uses multipart file upload.
namegrouprequireddescriptionUpdate an existing audio creative
idrequirednamedescriptionDelete an audio creative
idrequiredReplace the file on an image creative
idrequiredReplace the file on a rich media creative
idrequiredReplace the file on a video creative
idrequiredReplace the file on an audio creative
idrequiredList all placements (assignments of ad items to zones)
limitoffsetGet details of a specific placement
idrequiredCreate a new placement (assign an ad item or campaign to a zone or channel)
costzoneactivepayoutweightchannelkeywordspriorityschedulerequiredgeo_targetlist_targetserve_method+6 moreUpdate an existing placement
idrequiredcostzoneactivepayoutweightchannelkeywordspriorityschedulegeo_targetlist_target+7 moreDelete a placement (remove an ad item from a zone)
idrequiredGet conversion tracking tag for a placement
idrequiredList all native ad templates
limitoffsetGet details of a specific native template
idrequiredCreate a new native ad template with HTML and variable placeholders
namerequiredraw_htmlrequiredvariablesrequiredUpdate an existing native template. Variables uses add/remove format for updates.
idrequirednameraw_htmlvariablesDelete a native template
idrequiredList all schedules (time-based delivery rules for ad items)
limitoffsetGet details of a specific schedule
idrequiredCreate a new schedule for time-based ad delivery. Schedules are automatically linked to ad items via placements.
end_atend_datestart_atquota_typestart_dateday_cap_typeday_cap_limitday_parting_idquota_lifetimedelivery_methodend_at_timezonestart_at_timezone+3 moreUpdate an existing schedule
idrequiredend_atend_datestart_atquota_typestart_dateday_cap_typeday_cap_limitday_parting_idquota_lifetimedelivery_methodend_at_timezone+4 moreDelete a schedule
idrequiredList all media groups (collections of creatives)
limitoffsetGet details of a specific media group
idrequiredCreate a new media group
namerequiredUpdate an existing media group
idrequirednameDelete a media group
idrequiredList all data keys (custom key-value targeting variables)
limitoffsetGet details of a specific data key
idrequiredCreate a new data key for custom targeting
namerequiredtyperequiredUpdate an existing data key
idrequirednametypeDelete a data key
idrequiredList all data key targets (targeting rules using data key values)
limitoffsetGet details of a specific data key target
idrequiredCreate a new data key target (targeting rule)
namerequiredtargetrequiredUpdate an existing data key target
idrequirednametargetDelete a data key target
idrequiredList all day parting rules (time-of-day targeting)
limitoffsetGet details of a specific day parting rule
idrequiredCreate a new day parting rule for time-of-day targeting. Ranges is an object with day names as keys and arrays of time range strings (e.g. "09:00:00-17:00:00") as values.
namerangesis_templateuse_member_timezoneUpdate an existing day parting rule
idrequirednamerangesis_templateuse_member_timezoneDelete a day parting rule
idrequiredList all geo targets (geographic targeting rules)
limitoffsetGet details of a specific geo target
idrequiredCreate a new geo target for geographic targeting. Areas is an array of objects with continent, country (2-letter code), region, city fields.
namerequiredunitareasrequiredrangeinclusiveUpdate an existing geo target
idrequirednameunitareasrangeinclusiveDelete a geo target
idrequiredList all postal code targets
limitoffsetGet details of a specific postal code target
idrequiredCreate a new postal code target
labelrequiredinclusivelocationsrequiredUpdate an existing postal code target
idrequiredlabelinclusivelocationsDelete a postal code target
idrequiredList all list targets (allowlist/blocklist targeting)
limitoffsetGet details of a specific list target
idrequiredCreate a new list target (inclusion/exclusion using a data list)
labelrequireddata_listinclusiveUpdate an existing list target
idrequiredlabeldata_listinclusiveDelete a list target
idrequiredList all platform targets (device/OS/browser targeting)
limitoffsetGet details of a specific platform target
idrequiredCreate a new platform target for device/OS/browser targeting
namerequiredplatformdevice_targetsUpdate an existing platform target
idrequirednameplatformdevice_targetsDelete a platform target
idrequiredList all data targets
limitoffsetRemove all usages of a list target
idrequiredGet display advertising report with impressions, clicks, and CTR
typerequiredzonesperiodrequiredpresetdetailssummarytimezonebreakdowncampaignsfinancialspublishersadvertisers+4 moreGet VAST video advertising report
typerequiredzonesperiodrequiredpresetdetailssummarytimezonebreakdowncampaignsfinancialspublishersadvertisersGet event logs for account activity (changes, logins, etc.)
tofromlog_typerequiredGet click details report
zonespresettimezonecampaignspublishersadvertisers90% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
Declare a license in the repository or the registry entry.
{ "mcpServers": { "adbutler": { "command": "npx", "args": ["-y", "@adbutler/mcp-server"], "env": { "ADBUTLER_API_KEY": "your_api_key_here" } } }}claude mcp add adbutler --env ADBUTLER_API_KEY=your_api_key_here -- npx -y @adbutler/mcp-server{ "mcpServers": { "adbutler": { "command": "npx", "args": ["-y", "@adbutler/mcp-server"], "env": { "ADBUTLER_API_KEY": "your_api_key_here" } } }}git clone https://github.com/adbutler/mcp-servercd mcp-servernpm installnpm run buildADBUTLER_API_KEY=your_key node dist/index.jsnpx @modelcontextprotocol/inspector node dist/index.js