Adbutler
About
MCP server for the AdButler ad management API — 36 tools for AI assistants
Details
- Author
- adbutler
- Downloads
- 175
- Categories
- Other
Jump to
- 600+ tools covering 100% of the AdButler v2 API (604 endpoints)
- 9 workflow prompts for end-to-end tasks (campaign launch, reporting, VAST video, etc.)
- 3 fallback meta-tools: search, describe, and call any API endpoint
- Supports both hosted (Streamable HTTP/SSE) and local stdio deployment
- Works with any MCP client (Claude, ChatGPT, Cursor, Windsurf, Cline)
- Hosted version collects only anonymous usage analytics; self-installed copies collect nothing
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
AdbutlerCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
Two options: hosted (recommended) – configure your MCP client with the URL https://mcp.adbutler.com/mcp (or /sse for legacy) and pass your AdButler API key via an Authorization: Bearer header. Local stdio – run npx -y @adbutler/mcp-server with the environment variable ADBUTLER_API_KEY set in your client‘s MCP config. No API key? The hosted server guides you through a free trial signup.
list_advertisers
List all advertisers in your AdButler account
get_advertiser
Get details of a specific advertiser by ID
create_advertiser
Create a new advertiser
update_advertiser
Update an existing advertiser
delete_advertiser
Delete an advertiser
archive_advertiser
Archive an advertiser (soft-delete, can be restored later)
list_archived_advertisers
List all archived advertisers
get_archived_advertiser
Get details of a specific archived advertiser
unarchive_advertiser
Restore an archived advertiser back to active status
list_all_campaigns
List all campaigns across all types
list_campaigns
List all standard campaigns
get_campaign
Get details of a specific standard campaign
create_campaign
Create a new standard campaign
update_campaign
Update an existing standard campaign
delete_campaign
Delete a standard campaign
archive_campaign
Archive a standard campaign (soft-delete, can be restored later)
list_archived_campaigns
List all archived standard campaigns
get_archived_campaign
Get details of a specific archived standard campaign
delete_archived_campaign
Permanently delete an archived standard campaign
unarchive_campaign
Restore an archived standard campaign back to active status
get_campaign_conversion_tag
Get conversion tag for a campaign
get_campaign_eligible_zones
Get eligible zones for a campaign
campaign_bulk_create_catalog_ad_items
Bulk create catalog ad items in a campaign
campaign_bulk_delete_catalog_ad_items
Bulk delete catalog ad items from a campaign
list_campaign_assignments
List all campaign assignments (ad items assigned to campaigns)
get_campaign_assignment
Get details of a specific campaign assignment
create_campaign_assignment
Create a new campaign assignment (assign an ad item to a campaign)
update_campaign_assignment
Update an existing campaign assignment
delete_campaign_assignment
Delete a campaign assignment
list_channels
List all channels
get_channel
Get details of a specific channel
create_channel
Create a new channel
update_channel
Update an existing channel
delete_channel
Delete a channel
archive_channel
Archive a channel (soft-delete, can be restored later)
list_archived_channels
List all archived channels
get_archived_channel
Get details of a specific archived channel
delete_archived_channel
Permanently delete an archived channel
unarchive_channel
Restore an archived channel back to active status
list_channel_zone_assignments
List all channel zone assignments
get_channel_zone_assignment
Get details of a specific channel zone assignment
create_channel_zone_assignment
Assign a zone to a channel
delete_channel_zone_assignment
Remove a zone from a channel
list_all_zones
List all zones across all types (standard, email, catalog)
list_zones
List all standard zones
get_zone
Get details of a specific standard zone
create_zone
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.
update_zone
Update an existing standard zone
delete_zone
Delete a standard zone
get_zone_tag
Get the ad serving tag (embed code) for a zone
get_zone_conversion_tag
Get the conversion tracking tag for a standard zone
generate_bulk_zone_tags
Generate ad serving tags for multiple zones at once
archive_zone
Archive a standard zone (soft-delete, can be restored later)
list_archived_zones
List all archived standard zones
get_archived_zone
Get details of a specific archived standard zone
unarchive_zone
Restore an archived standard zone back to active status
list_email_zones
List all email zones
get_email_zone
Get details of a specific email zone
create_email_zone
Create a new email zone for serving ads in email newsletters
update_email_zone
Update an existing email zone
delete_email_zone
Delete an email zone
get_email_zone_tag
Get the ad serving tag for an email zone
get_email_zone_conversion_tag
Get the conversion tracking tag for an email zone
archive_email_zone
Archive an email zone
list_archived_email_zones
List all archived email zones
get_archived_email_zone
Get details of a specific archived email zone
unarchive_email_zone
Restore an archived email zone back to active status
list_catalog_zones
List all catalog zones (for product/retail ad serving)
get_catalog_zone
Get details of a specific catalog zone
create_catalog_zone
Create a new catalog zone for product/retail ad serving
update_catalog_zone
Update an existing catalog zone
delete_catalog_zone
Delete a catalog zone
get_catalog_zone_tag
Get the ad serving tag for a catalog zone
list_publishers
List all publishers in your AdButler account
get_publisher
Get details of a specific publisher
create_publisher
Create a new publisher
update_publisher
Update an existing publisher
delete_publisher
Delete a publisher
archive_publisher
Archive a publisher (soft-delete, can be restored later)
list_archived_publishers
List all archived publishers
get_archived_publisher
Get details of a specific archived publisher
unarchive_publisher
Restore an archived publisher back to active status
list_ad_items
List all ad items (banners) across all types (image, custom HTML, rich media, native, catalog)
list_image_ad_items
List all image ad items
get_image_ad_item
Get details of a specific image ad item
create_image_ad_item
Create a new image ad item (banner)
update_image_ad_item
Update an existing image ad item
delete_image_ad_item
Delete an image ad item
get_image_ad_item_conversion_tag
Get conversion tracking tag for an image ad item
list_custom_html_ad_items
List all custom HTML ad items
get_custom_html_ad_item
Get details of a specific custom HTML ad item
create_custom_html_ad_item
Create a new custom HTML ad item
update_custom_html_ad_item
Update an existing custom HTML ad item
delete_custom_html_ad_item
Delete a custom HTML ad item
get_custom_html_ad_item_conversion_tag
Get conversion tracking tag for a custom HTML ad item
list_rich_media_ad_items
List all rich media ad items
get_rich_media_ad_item
Get details of a specific rich media ad item
create_rich_media_ad_item
Create a new rich media ad item
update_rich_media_ad_item
Update an existing rich media ad item
delete_rich_media_ad_item
Delete a rich media ad item
get_rich_media_ad_item_conversion_tag
Get conversion tracking tag for a rich media ad item
list_native_ad_items
List all native ad items
get_native_ad_item
Get details of a specific native ad item
create_native_ad_item
Create a new native ad item using a native template
update_native_ad_item
Update an existing native ad item
delete_native_ad_item
Delete a native ad item
get_native_ad_item_conversion_tag
Get conversion tracking tag for a native ad item
list_catalog_ad_items
List all catalog ad items
get_catalog_ad_item
Get details of a specific catalog ad item
create_catalog_ad_item
Create a new catalog ad item
update_catalog_ad_item
Update an existing catalog ad item
delete_catalog_ad_item
Delete a catalog ad item
convert_native_to_image
Convert a native ad item to an image ad item
list_all_creatives
List all creatives across all types (image, rich media, video, audio)
list_creatives
List all image creatives
get_creative
Get details of a specific image creative
create_creative
Create a new image creative. The API uses multipart file upload — pass the media group ID and file attributes.
update_creative
Update an existing image creative
delete_creative
Delete an image creative
list_rich_media_creatives
List all rich media creatives
get_rich_media_creative
Get details of a specific rich media creative
create_rich_media_creative
Create a new rich media creative. The API uses multipart file upload (ZIP for HTML5).
update_rich_media_creative
Update an existing rich media creative
delete_rich_media_creative
Delete a rich media creative
list_video_creatives
List all video creatives
get_video_creative
Get details of a specific video creative
create_video_creative
Create a new video creative. The API uses multipart file upload.
update_video_creative
Update an existing video creative
delete_video_creative
Delete a video creative
list_audio_creatives
List all audio creatives
get_audio_creative
Get details of a specific audio creative
create_audio_creative
Create a new audio creative. The API uses multipart file upload.
update_audio_creative
Update an existing audio creative
delete_audio_creative
Delete an audio creative
replace_image_creative_file
Replace the file on an image creative
replace_rich_media_creative_file
Replace the file on a rich media creative
replace_video_creative_file
Replace the file on a video creative
replace_audio_creative_file
Replace the file on an audio creative
list_placements
List all placements (assignments of ad items to zones)
get_placement
Get details of a specific placement
create_placement
Create a new placement (assign an ad item or campaign to a zone or channel)
update_placement
Update an existing placement
delete_placement
Delete a placement (remove an ad item from a zone)
get_placement_conversion_tag
Get conversion tracking tag for a placement
list_native_templates
List all native ad templates
get_native_template
Get details of a specific native template
create_native_template
Create a new native ad template with HTML and variable placeholders
update_native_template
Update an existing native template. Variables uses add/remove format for updates.
delete_native_template
Delete a native template
list_schedules
List all schedules (time-based delivery rules for ad items)
get_schedule
Get details of a specific schedule
create_schedule
Create a new schedule for time-based ad delivery. Schedules are automatically linked to ad items via placements.
update_schedule
Update an existing schedule
delete_schedule
Delete a schedule
list_media_groups
List all media groups (collections of creatives)
get_media_group
Get details of a specific media group
create_media_group
Create a new media group
update_media_group
Update an existing media group
delete_media_group
Delete a media group
list_data_keys
List all data keys (custom key-value targeting variables)
get_data_key
Get details of a specific data key
create_data_key
Create a new data key for custom targeting
update_data_key
Update an existing data key
delete_data_key
Delete a data key
list_data_key_targets
List all data key targets (targeting rules using data key values)
get_data_key_target
Get details of a specific data key target
create_data_key_target
Create a new data key target (targeting rule)
update_data_key_target
Update an existing data key target
delete_data_key_target
Delete a data key target
list_day_partings
List all day parting rules (time-of-day targeting)
get_day_parting
Get details of a specific day parting rule
create_day_parting
Create 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.
update_day_parting
Update an existing day parting rule
delete_day_parting
Delete a day parting rule
list_geo_targets
List all geo targets (geographic targeting rules)
get_geo_target
Get details of a specific geo target
create_geo_target
Create a new geo target for geographic targeting. Areas is an array of objects with continent, country (2-letter code), region, city fields.
update_geo_target
Update an existing geo target
delete_geo_target
Delete a geo target
list_postal_code_targets
List all postal code targets
get_postal_code_target
Get details of a specific postal code target
create_postal_code_target
Create a new postal code target
update_postal_code_target
Update an existing postal code target
delete_postal_code_target
Delete a postal code target
list_list_targets
List all list targets (allowlist/blocklist targeting)
get_list_target
Get details of a specific list target
create_list_target
Create a new list target (inclusion/exclusion using a data list)
update_list_target
Update an existing list target
delete_list_target
Delete a list target
list_platform_targets
List all platform targets (device/OS/browser targeting)
get_platform_target
Get details of a specific platform target
create_platform_target
Create a new platform target for device/OS/browser targeting
update_platform_target
Update an existing platform target
delete_platform_target
Delete a platform target
list_data_targets
List all data targets
remove_list_target_usages
Remove all usages of a list target
get_display_report
Get display advertising report with impressions, clicks, and CTR
get_vast_report
Get VAST video advertising report
get_event_logs
Get event logs for account activity (changes, logins, etc.)
get_click_details_report
Get click details report
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"adbutler": {
"adbutler": {
"command": "npx",
"args": [
"-y",
"@adbutler/mcp-server"
],
"env": {
"ADBUTLER_API_KEY": "your_api_key_here"
}
}
}
}
}
McpServers
{
"adbutler": {
"command": "npx",
"args": [
"-y",
"@adbutler/mcp-server"
],
"env": {
"ADBUTLER_API_KEY": "your_api_key_here"
}
}
}
AdButler MCP Server
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."
> "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.
Install
You have two options. Most users want the hosted version — zero setup, just paste a URL.
Option A — Hosted (recommended)
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.
| Client | Configuration |
|--------|---------------|
| Claude Desktop / Code | Add an MCP server with URL https://mcp.adbutler.com/mcp (or /sse for older clients) and header Authorization: Bearer YOUR_ADBUTLER_API_KEY |
| Cursor | Settings → Features → Model Context Protocol → Add server with the URL + auth header above |
| Any MCP client | Streamable HTTP: https://mcp.adbutler.com/mcp · SSE: https://mcp.adbutler.com/sse — pass your API key via Authorization: Bearer … or ?api_key=… |
Option B — Local stdio (npm)
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.
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"adbutler": {
"command": "npx",
"args": ["-y", "@adbutler/mcp-server"],
"env": {
"ADBUTLER_API_KEY": "your_api_key_here"
}
}
}
}
Claude Code
claude mcp add adbutler --env ADBUTLER_API_KEY=your_api_key_here -- npx -y @adbutler/mcp-server
Cursor / Windsurf / Cline
Add to the client's MCP config:
{
"mcpServers": {
"adbutler": {
"command": "npx",
"args": ["-y", "@adbutler/mcp-server"],
"env": { "ADBUTLER_API_KEY": "your_api_key_here" }
}
}
}
Get your AdButler API key
AdButler Dashboard → Settings → API Keys → create a new key. It's the same key the AdButler v2 REST API uses.
Authentication
The AdButler MCP works for both new and existing customers. What you see depends on whether you've already configured an API key.
Already an AdButler customer? (existing API key)
Use one of these:
Option 1 — set the API key in your client config (recommended for hosted)
Add an Authorization: Bearer YOUR_ADBUTLER_API_KEY header on the SSE connection. Examples:
- Claude Desktop — edit claude_desktop_config.json → add headers: { "Authorization": "Bearer YOUR_API_KEY" } next to the SSE URL
- Cursor — MCP server settings → Headers → add Authorization: Bearer YOUR_API_KEY
- Any client — pass the header on the SSE GET to https://mcp.adbutler.com/sse
Reconnect — all 600+ tools become available immediately.
Option 2 — configure inside the chat (works in any MCP client)
If your client doesn't support custom headers, just 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.
New to AdButler? (no account yet)
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.
Local stdio install
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.
What's included
9 workflow prompts
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.
| Prompt | What it does |
|--------|--------------|
| launch-campaign | Walks an end-to-end campaign launch — advertiser → campaign → ad items → creatives → targeting → placements |
| retail-media-setup | Sets up sponsored products / retail media for an e-commerce site |
| reporting | Generates a custom report with the right dimensions and filters |
| vast-video | Builds a VAST video ad with linear + companion creatives |
| programmatic | Configures programmatic deals, bidders, and demand sources |
| targeting | Builds geo / platform / data-key / list targets |
| contracts | Creates IO contracts and assigns them to campaigns |
| channels | Bundles zones into a channel and assigns campaigns |
| drafts | Stages a complete campaign as drafts before going live |
3 fallback meta-tools (search, describe, call)
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:
| Tool | What it does |
|------|--------------|
| search_adbutler_api | Keyword-search the full AdButler OpenAPI spec for matching endpoints |
| describe_adbutler_api | Get the full schema (params, body, response) for one endpoint |
| call_adbutler_api | Invoke any endpoint by method+path, with the session's auth applied automatically |
These complement (don't replace) the specific tools below — the LLM continues to prefer specific tools when they obviously match.
600+ tools across the full AdButler API
| Domain | Tools | Examples |
|--------|------:|----------|
| Display ads | 100+ | list_advertisers, create_campaign, create_image_ad_item, create_native_ad_item, create_placement, create_schedule, create_campaign_assignment |
| VAST 2/3/4 video | 156 | vast_create_creative, vast_create_linear_media, vast_create_companion, vast_create_placement, vast_create_schedule, plus full VAST 4.2 sub-resource coverage |
| Zones & publishing | 50+ | create_zone, create_zone_catalog, create_zone_email, create_native_template, create_publisher, ORTB native assets |
| Targeting | 37 | create_geo_target, create_platform_target, create_data_key, create_data_list, create_postal_code_target |
| Reporting | 39 | get_display_report, get_vast_report, get_event_logs, custom report configs, scheduled reports |
| Programmatic / RTB | 25 | create_demand_source, create_demand_endpoint, create_bidder, create_pmp_deal |
| Product catalogs | 20 | create_product_db_catalog, bulk_upload_products, ad item ↔ catalog item linking |
| Drafts | 48 | Stage campaigns/ad items/placements/schedules as drafts; publish atomically |
| Contracts | 43 | Insertion orders, contract documents, signature requests, payments |
| Account & security | 27 | Users, roles, redirect domains, beacon signing keys, SFTP connections |
| Ad serving | 2 | serve_ad, live_website_preview |
100% coverage of the AdButler v2 OpenAPI spec (604/604 endpoints).
Telemetry
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:
- Tool name (e.g. list_zones, create_campaign) — never tool arguments
- Account ID (derived once per session from /self)
- API-key fingerprint (SHA-256, truncated to 16 hex chars) — identifies which key was used without storing the key itself
- Transport (HTTP or SSE), MCP client name and version (e.g. Claude Desktop), call duration, success/error status
- On errors: upstream HTTP status code, a categorical error class (e.g. 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.
Development
Local source for contributors:
git clone https://github.com/adbutler/mcp-server
cd mcp-server
npm install
npm run build
ADBUTLER_API_KEY=your_key node dist/index.js
Inspect with the official MCP inspector:
npx @modelcontextprotocol/inspector node dist/index.js
Resources
- AdButler API documentation — https://api.adbutler.com/openapi.json
- MCP Protocol — https://modelcontextprotocol.io
- Hosted server status — https://mcp.adbutler.com/health
- Issues / feature requests — https://github.com/adbutler/mcp-server/issues
License
MIT
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.



