Google Ads MCP by AdKit
Manage Google Ads campaigns from an AI agent, with every change saved as a draft
Google Ads MCP server by AdKit: Search, Display, Demand Gen and Performance Max campaigns, keywords, negative keywords, search terms and reports. Hosted, OAuth sign-in, every change saved as a draft for your approval. Works with Claude, ChatGPT, Cursor and Codex.
A hosted MCP server from AdKit that connects Google Ads to AI apps such as Claude, ChatGPT, Cursor and Codex. Agents can create and edit Search, Display, Demand Gen and Performance Max campaigns, manage keywords and read reports, with every create, edit or pause saved as a draft until you approve it.
Campaign and keyword management
Create, read, update and delete campaigns, ad groups, ads, keywords, negative keywords and shared negative keyword lists across Search, Display, Demand Gen and Performance Max.
Reporting and research
Read search terms, placements, change history and performance results, and pull keyword and audience ideas and geo-location targeting.
Draft approval
Every change is saved as a draft first. Nothing goes live on Google Ads until you approve it on AdKit's Draft Approval page or tell your AI to publish.
Conversions
Create and manage conversion actions and upload offline click conversions through the conversions tools.
Hosted, no API key
AdKit hosts the server at a remote URL over streamable HTTP. You sign in to AdKit in the browser and connect Google Ads there, with no developer token or API key required.
Who it’s for. For marketers and agencies running Google Ads who want to create campaigns, clean up keywords and pull reports from an AI agent while keeping a review step before changes go live. Multiple accounts can be kept in separate AdKit projects.
Example prompts
auth: OAuth · pricing: Single Project $29/mo · Multiple Projects $49/mo · 7-day free trial · reviewed by MCPExplorer
How to read this: tool names here come from the publisher's own documentation; we have not yet confirmed them with a live tools/list handshake. The Risk label is a heuristic inferred from the tool name (write/destructive verbs), not from executing the tool — a conservative guess, not a verified capability. We never escalate risk from a description. Found one that's wrong? Tell us — we fix on report.
| Tool | Risk | Side effects | Approval |
|---|---|---|---|
| adkit_drafts_delete Delete a draft | write | false | unknown |
| adkit_drafts_publish Publish drafts after you approve them | write | true | unknown |
| adkit_drafts_read List saved drafts, or read one | read | false | unknown |
| adkit_drafts_update Edit a draft before it goes live | write | true | unknown |
| adkit_feedback Report a bug or a missing feature | unknown | unknown | unknown |
| adkit_help Look up fields, limits and examples | unknown | unknown | unknown |
| adkit_projects List your AdKit projects and pick one | read | false | unknown |
| adkit_setup Get the link to connect an ad account | read | false | unknown |
| adkit_status Show the connected ad accounts | read | false | unknown |
| google_ads_accounts_connect Connect ad accounts | unknown | unknown | unknown |
| google_ads_accounts_disconnect Disconnect ad accounts | unknown | unknown | unknown |
| google_ads_accounts_read Read ad accounts | read | false | unknown |
| google_ads_ad_groups_create Create ad groups | write | true | unknown |
| google_ads_ad_groups_delete Delete ad groups | destructive | true | true |
| google_ads_ad_groups_read Read ad groups | read | false | unknown |
| google_ads_ad_groups_update Update ad groups | write | true | unknown |
| google_ads_ads_create Create ads | write | true | unknown |
| google_ads_ads_delete Delete ads | destructive | true | true |
| google_ads_ads_read Read ads | read | false | unknown |
| google_ads_ads_update Update ads | write | true | unknown |
| google_ads_asset_groups_create Create asset groups (Performance Max) | write | true | unknown |
| google_ads_asset_groups_delete Delete asset groups (Performance Max) | destructive | true | true |
| google_ads_asset_groups_read Read asset groups (Performance Max) | read | false | unknown |
| google_ads_asset_groups_update Update asset groups (Performance Max) | write | true | unknown |
| google_ads_assets_attach Attach assets | unknown | unknown | unknown |
| google_ads_assets_create Create assets | write | true | unknown |
| google_ads_assets_detach Detach assets | unknown | unknown | unknown |
| google_ads_assets_read Read assets | read | false | unknown |
| google_ads_assets_update Update assets | write | true | unknown |
| google_ads_campaigns_create Create campaigns | write | true | unknown |
| google_ads_campaigns_delete Delete campaigns | destructive | true | true |
| google_ads_campaigns_read Read campaigns | read | false | unknown |
| google_ads_campaigns_update Update campaigns | write | true | unknown |
| google_ads_change_history_read Read change history | read | false | unknown |
| google_ads_conversions_create Create conversions | write | true | unknown |
| google_ads_conversions_delete Delete conversions | destructive | true | true |
| google_ads_conversions_read Read conversions | read | false | unknown |
| google_ads_conversions_update Update conversions | write | true | unknown |
| google_ads_conversions_upload Upload conversions | write | true | unknown |
| google_ads_geo_locations_read Read location targeting | read | false | unknown |
| google_ads_keywords_create Create keywords | write | true | unknown |
| google_ads_keywords_delete Delete keywords | destructive | true | true |
| google_ads_keywords_read Read keywords | read | false | unknown |
| google_ads_keywords_update Update keywords | write | true | unknown |
| google_ads_negative_keywords_create Create negative keywords | write | true | unknown |
| google_ads_negative_keywords_delete Delete negative keywords | destructive | true | true |
| google_ads_negative_keywords_read Read negative keywords | read | false | unknown |
| google_ads_negative_lists_attach Attach negative keyword lists | unknown | unknown | unknown |
| google_ads_negative_lists_create Create negative keyword lists | write | true | unknown |
| google_ads_negative_lists_delete Delete negative keyword lists | destructive | true | true |
| google_ads_negative_lists_detach Detach negative keyword lists | unknown | unknown | unknown |
| google_ads_negative_lists_read Read negative keyword lists | read | false | unknown |
| google_ads_placements_read Read placements report | read | false | unknown |
| google_ads_platform_api_request_mutate Send direct API requests to the ad platform | unknown | unknown | unknown |
| google_ads_research_read Read keyword and audience ideas | read | false | unknown |
| google_ads_results_read Read results and reports | read | false | unknown |
| google_ads_search_terms_read Read search terms report | read | false | unknown |
| google_ads_upload Upload images and videos | write | true | unknown |
- repohttps://github.com/adkit/google-ads-mcp
- homepagehttps://adkit.so/features/ads-mcp/google
- licenseMIT
- adoption0 stars · 0 forks
Add the “as seen on MCPExplorer” badge to your README.
This is one server. A loadout combines the right servers, governance, and proven plays for a whole job — assembled deliberately, not tool-dumped.
Explore loadouts →