adrex-ai
OfficialOne line: Adrex AI is an MCP server that lets AI assistants manage and analyze real Google Ads and Meta Ads campaigns in natural language.
Connect once, then chat — link ad accounts in the Adrex dashboard via OAuth; use either the remote HTTP server (browser sign-in, no API key) or the
npx -y adrex-aistdio server with anADREX_API_KEY.Google Ads campaign management (28 tools present) — list accounts/campaigns, get campaign details, create Search campaigns (PAUSED), update name/budget/bidding, pause, resume, and permanently delete campaigns.
Google Ads ad groups, ads & keywords — list/create/update/pause/delete ad groups; list ads, create Responsive Search Ads, pause/enable/delete ads; list keywords with quality score, add keywords (BROAD/PHRASE/EXACT), add negatives, pause or remove keywords.
Google Ads reporting — campaign performance (spend, clicks, conversions, ROAS), daily time series, device/network breakdowns, auction insights, budget details.
Meta Ads campaign management (25 tools present) — list accounts/campaigns, get details, create campaigns with objectives and daily/lifetime budget, update, pause, resume, delete.
Meta ad sets, ads & targeting — list/create/update/pause/delete ad sets with age/gender/country/interest targeting; list ads, create ads with copy, image URL, page ID and CTA, pause/enable/delete ads; search interests, list custom audiences, list Facebook pages, update targeting.
Meta Ads reporting — campaign performance, daily time series, breakdowns by platform/placement/age/gender.
Cross-platform —
list_connected_platformsshows which ad platforms are connected and ready.Built-in safety — new campaigns/ads are created PAUSED, destructive and spend-starting actions carry explicit warnings, and read operations run freely.
Gap worth noting — the README advertises 64 tools, but this schema exposes 54: Google's 7 analysis tools (keyword/insights, search terms, conversion health & funnel, recent changes, ad performance),
meta_ads_creative_performance, and the cross-platformaccount_review/campaign_diagnosisare documented but not present here.
Provides tools to manage Google Ads campaigns, ad groups, ads, keywords, and reporting, including campaign performance, time series, breakdowns, and auction insights.
Provides tools to manage Meta Ads campaigns, ad sets, ads, targeting and audiences, and reporting across Facebook and Instagram.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@adrex-aiShow me my Google Ads performance for the last 7 days"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
What is Adrex AI?
Adrex AI is an open-source MCP (Model Context Protocol) server that connects AI assistants to your Google Ads and Meta Ads accounts. Instead of navigating complex dashboards, you manage campaigns, reporting, keywords, and targeting through natural language — from Claude, Cursor, Codex, or any MCP client.
Platforms: Google Ads and Meta Ads (Facebook & Instagram) today — TikTok and LinkedIn coming soon.
You: "Show me my Google Ads performance for the last 7 days"
Claude: [calls google_ads_campaign_performance] → table with spend, clicks, CTR, ROAS
You: "Pause the campaign with the lowest ROAS"
Claude: [calls google_ads_pause_campaign] → campaign paused, no more spend
You: "Create a Meta campaign for our summer sale, $50/day budget"
Claude: [calls meta_ads_create_campaign] → campaign created PAUSED for your reviewYou connect your ad accounts once in the Adrex dashboard (secure OAuth — your tokens stay on our servers, never in the MCP client), then drive everything from your AI assistant. There are two ways to connect (see Quick Start): a remote server with browser sign-in — no API key, or this npx server with an API key.
Safety First
These tools operate on real ad accounts that spend real money:
All campaigns and ads are created PAUSED — no spend until you explicitly resume
Destructive and spend-starting actions return clear warnings
Read operations (metrics, lists) run freely without side effects
Related MCP server: flour-ads
Quick Start
First, sign up at adrex.ai and connect your Google/Meta ad accounts in Settings. Then pick one of the two ways to connect.
Option A — Remote server (recommended, no API key)
Connect over HTTP and authorize in your browser — nothing to copy or paste. Your client stores its own secure token. In the Adrex dashboard, Settings → Connect to your AI (MCP) shows a one-command connect with your server URL. It looks like:
Claude Code:
claude mcp add --transport http adrex-ai https://<your-adrex-server>/mcpClaude Desktop / Cursor / VS Code / other clients (JSON) — or use the one-click Add to Cursor / Add to VS Code buttons in Settings:
{
"mcpServers": {
"adrex-ai": { "type": "http", "url": "https://<your-adrex-server>/mcp" }
}
}After adding, your client opens a browser tab — sign in and click Authorize. The consent screen shows which Adrex account you're authorizing as; if a different account is already signed in on that browser, use Not you? Switch before approving.
You can see and revoke every connected app in Settings → Connect to your AI → Connected AI apps.
Connected the wrong account? Every tool will report "Not connected" even though your ad accounts are linked. Revoke the app in Settings, then re-authorize. Note that re-running
claude mcp adddoes nothing once the server is configured (already exists in local config) — instead run/mcpin Claude Code, pickadrex-ai, and clear authentication.
Option B — npx server with an API key
Prefer the classic stdio server? Generate an API key in Settings, then add it below. Adrex ships a standard stdio MCP server, so it works with any MCP client — every config points at npx -y adrex-ai with your ADREX_API_KEY.
Claude Code:
claude mcp add -s user adrex-ai -e ADREX_API_KEY=your-api-key -- npx -y adrex-aiGemini CLI:
gemini mcp add adrex-ai -e ADREX_API_KEY=your-api-key -- npx -y adrex-aiClaude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json), Cursor (~/.cursor/mcp.json global or .cursor/mcp.json per-project), Gemini CLI (~/.gemini/settings.json), or any client using the JSON mcpServers format:
{
"mcpServers": {
"adrex-ai": {
"command": "npx",
"args": ["-y", "adrex-ai"],
"env": {
"ADREX_API_KEY": "your-api-key"
}
}
}
}Codex (~/.codex/config.toml) — note Codex uses TOML, not JSON:
[mcp_servers.adrex-ai]
command = "npx"
args = ["-y", "adrex-ai"]
env = { ADREX_API_KEY = "your-api-key" }Any other MCP client (Cline, Windsurf, Zed, Continue, …): point it at command npx -y adrex-ai with env ADREX_API_KEY set to your key.
That's it — no SDK setup, no developer tokens, no OAuth juggling. The server forwards each request to the Adrex backend, which uses the ad-account credentials you connected in the dashboard.
Behind a corporate proxy? v1.0.4+ automatically routes through
HTTP_PROXY/HTTPS_PROXY.
Tools
Google Ads (35 tools)
Campaigns
Tool | Description |
| List all accessible Google Ads accounts |
| List campaigns with performance metrics |
| Get detailed campaign info and metrics |
| Create a Search campaign (created PAUSED) |
| Update name, budget, or bidding strategy |
| Pause a campaign |
| Resume a paused campaign |
| Permanently remove a campaign |
Ad Groups
Tool | Description |
| List ad groups with metrics |
| Create an ad group with CPC bid |
| Update name, bid, or status |
| Pause an ad group |
| Remove an ad group |
Ads
Tool | Description |
| List ads with headlines, URLs, and metrics |
| Create RSA with headlines & descriptions |
| Pause an ad |
| Enable a paused ad |
| Remove an ad |
Keywords
Tool | Description |
| List keywords with quality score and metrics |
| Add keywords (BROAD, PHRASE, EXACT) |
| Add negative keywords to a campaign |
| Pause a keyword |
| Remove a keyword |
Reporting
Tool | Description |
| Performance summary across all campaigns |
| Daily metrics over a date range |
| Breakdowns by device or network |
| Competitive auction metrics |
| Campaign budget details |
Analysis
Tool | Description |
| Rank keywords by return — which keywords made the most money |
| Full keyword audit in one call: blocking negatives, wasted-spend themes, missing keywords, Quality Score premiums, budget vs Ad Rank caps, duplicates |
| Rank ads by return — which ad copy actually converts |
| What people actually searched, what it cost, and which terms spent with nothing to show |
| Check conversion tracking is working before trusting any CPA or ROAS |
| Which keywords or campaigns produce the event the business is actually paid on, not just form fills — essential when offline conversions are imported |
| Who changed what recently — most sudden shifts are something someone did |
Meta Ads (26 tools)
Campaigns
Tool | Description |
| List all Meta ad accounts |
| List campaigns with metrics |
| Get detailed campaign info |
| Create a campaign (created PAUSED) |
| Update name, budget, or status |
| Pause a campaign |
| Activate a paused campaign |
| Delete a campaign |
Ad Sets
Tool | Description |
| List ad sets with targeting and metrics |
| Create ad set with targeting options |
| Update name, budget, or status |
| Pause an ad set |
| Delete an ad set |
Ads
Tool | Description |
| List ads with creative details and metrics |
| Create ad with copy, image, and CTA |
| Pause an ad |
| Activate a paused ad |
| Delete an ad |
Targeting & Audiences
Tool | Description |
| Search targeting interests and behaviors |
| List custom audiences |
| List your Facebook pages |
| Update ad set targeting |
Reporting
Tool | Description |
| Performance summary across campaigns |
| Daily performance time series |
| Breakdowns by device, platform, age, gender |
| Rank ads by return — which creative made money, and which spent for nothing |
Cross-Platform (3 tools)
Tool | Description |
| One call for "how are we doing". Leads with how much a month is at risk across Google and Meta, then splits it: money that bought nothing, spend well above the account's own CPA, and growth left on the table |
| Why performance moved: compares the window against the one before and attributes the change |
| Which ad platforms are connected and ready to use |
Use Cases
Performance Review
"How are my Google Ads campaigns performing this month? Show me the ones with ROAS below 2x."
Campaign Management
"Create a new Meta traffic campaign called 'Summer Sale 2026' with a $75/day budget targeting ages 25-45 in the US."
Keyword Optimization
"Show me keywords in my 'Brand Terms' ad group. Pause any with quality score below 5."
Budget Control
"Increase the budget on my top-performing campaign by 20% and pause the one that's losing money."
Want More?
The MCP server gives you full campaign management from chat. The Adrex AI Platform adds:
AI Campaign Agent — autonomous optimization with guardrails and rollback
Creative Studio — AI-generated ad copy and images
A/B Testing — native platform experiments
Competitor Intelligence — track competitor ads across Google and Meta
Budget Rules Engine — automated rules with natural language parsing
Visual Dashboard — interactive charts, breakdowns, and time-series
Links
License
MIT License — see LICENSE for details.
Available Tools
54 toolsgoogle_ads_add_keywordsB
Add keywords to a Google Ads ad group with specified match types
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes | Keywords to add | |
| ad_group_id | Yes | Ad group ID | |
| customer_id | Yes | Google Ads customer/account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits, but it only states the action. It does not mention potential side effects, permissions required, error behaviors, or whether existing keywords are affected. This leaves the agent with no behavioral context beyond the basic mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is crisp and front-loaded. It conveys the essential action without redundancy or fluff, making it easy for an agent to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple keyword addition with well-documented parameters, the description is minimally viable. However, it lacks context about expected outcomes (e.g., confirmation, successful additions) and edge-case behavior, and the lack of annotations means the agent must infer operational details. It is adequate but not richer than needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description adds little beyond the schema. The phrase 'with specified match types' mirrors the matchType field but doesn't provide extra semantic detail. The baseline of 3 is appropriate since the schema already fully documents the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add keywords') and the resource ('a Google Ads ad group'), with the additional specification of match types. This distinguishes it from sibling tools like list, pause, remove, and even add_negative_keywords, since it focuses on adding normal (positive) keywords.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention that it is for positive keywords only, nor does it reference the related add_negative_keywords or any prerequisites (e.g., an existing ad group). The usage is only implied by the name and action.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_add_negative_keywordsA
Add negative keywords to a Google Ads campaign to exclude irrelevant searches
| Name | Required | Description | Default |
|---|---|---|---|
| keywords | Yes | Negative keyword texts | |
| campaign_id | Yes | Campaign ID | |
| customer_id | Yes | Google Ads customer/account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states the action and purpose, but does not disclose any behavioral traits such as whether negative keywords are appended to existing ones, any limits on keyword count, or whether the campaign must be paused. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the action and resource, and includes the purpose. Every word earns its place, with zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with 3 fully documented parameters, but there is no output schema and no annotations. The description covers the action and purpose, but omits any context about side effects (e.g., merging with existing negative keywords) or expected response. This is adequate for a basic operation but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description does not add meaning beyond the schema; it merely restates 'negative keywords' and the purpose. The schema already defines all three parameters (customer_id, campaign_id, keywords) clearly, so no additional parameter semantics are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Add') and resource ('negative keywords to a Google Ads campaign'), and adds the purpose 'to exclude irrelevant searches'. This clearly distinguishes it from sibling tools like google_ads_add_keywords and google_ads_remove_keyword.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by stating the goal ('exclude irrelevant searches'), but it does not explicitly mention when to prefer this over alternatives or any exclusions. For example, it does not contrast with google_ads_add_keywords for regular keywords or google_ads_remove_keyword for removing negatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_auction_insightsB
Get competitive auction insights showing how you compare against other advertisers
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Campaign ID | |
| customer_id | Yes | Google Ads customer/account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'Get competitive auction insights' without describing the metrics returned (e.g., impression share, overlap rate), any required permissions, or pagination/date-range behavior. This is a significant gap for a report tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no fluff. It conveys the core purpose efficiently and is appropriately sized for a two-parameter tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description should explain what the response contains (e.g., metrics list, time range). It does not, leaving the agent to guess about the returned data. The lack of behavioral context and return value information makes the tool incomplete for effective invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both customer_id and campaign_id documented. The description does not add additional meaning to the parameters, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Get') and resource ('competitive auction insights'), and adds the purpose 'showing how you compare against other advertisers', which distinguishes it from sibling reporting tools like campaign_performance or breakdowns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for competitive analysis but does not explicitly state when to use this tool versus alternatives such as google_ads_campaign_performance or google_ads_time_series. No when-not-to-use guidance is provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_breakdownsA
Get campaign breakdowns by device or network for a Google Ads campaign
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Campaign ID | |
| customer_id | Yes | Google Ads customer/account ID | |
| breakdown_type | No | Breakdown dimension | device |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the burden. It discloses read-only behavior via 'Get', but does not elaborate on response format, required permissions, or limitations such as date ranges or campaign type restrictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single clear sentence with no redundant words, immediately stating the action and key qualifiers.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema, and the description does not mention what data the breakdown returns (e.g., metrics like cost, impressions, clicks). This leaves uncertainty about the response structure for a reporting tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All three parameters are already documented in the schema (100% coverage). The description reinforces the role of breakdown_type by mentioning device/network but adds no additional semantics beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and clearly identifies the resource (campaign breakdowns) and the breakdown dimensions (device or network). It distinguishes this tool from sibling tools like google_ads_get_campaign and google_ads_campaign_performance by specifying the breakdown focus.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies a clear use case (when you need device/network breakdowns) but does not explicitly mention alternatives or when not to use this tool. Sibling tools like google_ads_campaign_performance or time_series serve related purposes without differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_campaign_performanceA
Get performance summary across all Google Ads campaigns with spend, clicks, conversions, and ROAS
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back (default 30) | |
| customer_id | Yes | Google Ads customer/account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description is the sole source of behavioral info. It correctly implies a read-only operation but does not disclose data scope (e.g., active vs. all campaigns), freshness, permissions, or potential pagination. It does not contradict any annotations (none exist), but the lack of detail for a read operation is acceptable yet not exemplary.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence that front-loads the action and lists specific metrics. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (2 parameters, no output schema). The description adequately explains the tool's purpose and scope. It could mention whether all statuses are included or clarify the time window source, but the `days` parameter already covers that. Overall, it is sufficiently complete for an agent to select and invoke it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both `days` and `customer_id` already clearly documented. The tool description adds no additional meaning to the parameters; it only mentions the output metrics. Baseline of 3 is appropriate since the schema handles the parameter semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('Get performance summary'), identifies the resource ('across all Google Ads campaigns'), and lists the key metrics (spend, clicks, conversions, ROAS). It distinguishes itself from sibling tools like `google_ads_get_campaign` (which is per-campaign) by explicitly saying 'across all campaigns'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for high-level aggregate reporting across all campaigns, which is clear context. However, it does not explicitly mention when to prefer this over `google_ads_time_series` or `google_ads_breakdowns`, nor does it note exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_create_ad_groupB
Create a new ad group within a Google Ads campaign
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Ad group name | |
| cpc_bid | No | Max CPC bid in dollars | |
| campaign_id | Yes | Campaign ID | |
| customer_id | Yes | Google Ads customer/account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It fails to mention side effects, requirements (like needing a valid campaign_id), return values, or any constraints. It only states a generic creation action, leaving the agent without important execution context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that front-loads the action and object. No wasted words; it is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity and complete schema coverage, the description is minimally viable. However, it lacks any mention of return values or prerequisites, and there is no output schema to compensate. It covers the basics but leaves key operational details unstated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are documented. The description adds no parameter semantics beyond that, but the baseline of 3 is appropriate because the schema handles the burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Create') and resource ('a new ad group') and clearly scopes it to 'within a Google Ads campaign'. This distinguishes it from sibling tools like list/update/pause/delete ad groups and from create campaign, providing unambiguous purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives, prerequisites (e.g., must have an existing campaign), or exclusions. The description is purely a statement of action without contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_create_responsive_search_adA
Create a Responsive Search Ad with multiple headlines and descriptions. Ad is created PAUSED for review.
| Name | Required | Description | Default |
|---|---|---|---|
| final_url | Yes | Landing page URL | |
| headlines | Yes | 3-15 headlines (max 30 chars each) | |
| ad_group_id | Yes | Ad group ID | |
| customer_id | Yes | Google Ads customer/account ID | |
| descriptions | Yes | 2-4 descriptions (max 90 chars each) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses a key behavioral trait: the ad is created paused for review. However, it omits other potential behaviors like permission requirements, return values, or reversibility, leaving some gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the primary action. Every word adds value, and the paused state is a critical detail conveyed efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite being sparse, the description provides the essential purpose and the pivotal paused-for-review behavior. With fully documented parameters and no output schema, an agent has enough context to invoke the tool correctly, though more depth could improve confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes all parameters. The description adds minimal meaning beyond noting 'multiple' headlines/descriptions, which is already captured by minItems/maxItems constraints. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: create a Responsive Search Ad. It specifies the resource (RSA) and distinguishes from siblings like list, pause, or delete ads. The mention of 'multiple headlines and descriptions' reinforces the ad type without being redundant.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for creating RSAs but does not explicitly contrast with alternatives like creating other ad types or using update tools. The paused-for-review note gives context but no explicit when-to-use/when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_create_search_campaignA
Create a new Google Ads Search campaign. Campaign is created PAUSED for safety — no money will be spent until you resume it.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Campaign name | |
| customer_id | Yes | Google Ads customer/account ID | |
| daily_budget | Yes | Daily budget in dollars | |
| bidding_strategy | No | Bidding strategy | MAXIMIZE_CLICKS |
| target_countries | No | Target country codes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the transparency burden. It discloses a critical behavior: the campaign is created PAUSED to prevent spending, which is a non-obvious and important safety default. This goes beyond a generic 'creates a campaign' and adds real behavioral context, though it does not cover other side effects like return values or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with the core purpose front-loaded and the crucial safety behavior immediately stated. No filler or redundant content, making efficient use of text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a moderate-complexity creation tool with no output schema, the description adequately covers the essential context: it tells the agent what the tool does and the key paused-state behavior. It lacks detail on return values or prerequisites, but given the schema covers parameters and the safety caveat is highlighted, it is reasonably complete for the task.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for all 5 parameters, giving 100% coverage. The description adds no extra parameter-level meaning beyond what the schema offers. The baseline of 3 is appropriate since the schema does the heavy lifting and the description does not need to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Create') and identifies the resource ('Google Ads Search campaign'), clearly distinguishing it from sibling tools like google_ads_create_ad_group or meta_ads_create_campaign. The campaign type is explicit, leaving no ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes clear that this tool is for creating a new Search campaign, which is a clear context of use. It does not explicitly mention alternatives or exclusions, but the naming and sibling list make the intended use evident. No prerequisites or when-not-to-use guidance is provided, but the core usage is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_delete_adA
Permanently remove a Google Ads ad — IRREVERSIBLE
| Name | Required | Description | Default |
|---|---|---|---|
| ad_id | Yes | Ad ID to delete | |
| ad_group_id | Yes | Ad group ID | |
| customer_id | Yes | Google Ads customer/account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the burden of behavioral disclosure. 'Permanently remove' and 'IRREVERSIBLE' clearly warn about the destructive and irreversible nature of the operation, which is essential. However, it omits other potential behavioral aspects like auth requirements, rate limits, or side effects, so it is not a 5.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that front-loads the key action and the critical warning. Every word adds value, with no wasted or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation, the description covers the essential action and the irreversible consequence. With no output schema and a straightforward parameter set, it is sufficiently complete, though it could mention side effects or what happens after deletion.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema descriptions cover all three parameters (ad_id, ad_group_id, customer_id) with clear meanings, giving 100% coverage. The description adds no additional parameter-level detail, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Permanently remove a Google Ads ad' clearly states the specific action (remove) and resource (ad), distinguishing it from sibling tools like pause/enable and delete operations on other entities. The addition of 'IRREVERSIBLE' reinforces the destructive nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for permanent deletion of an ad, but it does not explicitly state when to use it versus alternatives such as google_ads_pause_ad or google_ads_enable_ad. There are no exclusions or references to other tools, leaving usage context largely implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_delete_ad_groupA
Permanently remove a Google Ads ad group — IRREVERSIBLE
| Name | Required | Description | Default |
|---|---|---|---|
| ad_group_id | Yes | Ad group ID to delete | |
| customer_id | Yes | Google Ads customer/account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full transparency burden. It explicitly discloses that the action is permanent and irreversible, which is the most critical behavioral trait for a deletion tool. It does not mention permissions or impacts on child objects, but covers the key risk.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence delivers the essential message with no redundant words. The em-dash and 'IRREVERSIBLE' effectively emphasize the warning in a compact format.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with full parameter schemas, the description covers the core purpose and the primary risk (irreversibility). While it omits details like permission requirements, those are not essential for basic tool selection, and no output schema is expected for a delete tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameters are already well-documented. The description adds no parameter-specific meaning beyond what the schema provides, but baseline 3 is appropriate given the high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('remove') on a specific resource ('Google Ads ad group') and highlights its irreversibility, which distinguishes it from other ad group tools like pause or update.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The emphasis on 'permanently' and 'IRREVERSIBLE' strongly implies this tool is for final deletion, not temporary deactivation. However, it does not explicitly name alternatives like google_ads_pause_ad_group, so the guidance is implied rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_delete_campaignA
Permanently remove a Google Ads campaign — this action is IRREVERSIBLE
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Campaign ID to delete | |
| customer_id | Yes | Google Ads customer/account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description warns 'IRREVERSIBLE' and 'Permanently', disclosing the most critical behavioral trait for a deletion tool. It does not mention potential side effects like cascading deletion of ads or ad groups, but the irreversibility warning is strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence: 'Permanently remove a Google Ads campaign — this action is IRREVERSIBLE'. Every word adds value, and it is highly concise without sacrificing clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete operation with two well-documented parameters and no output schema, the description is appropriately sized. It covers the core purpose and irreversibility. It does not explain what happens to child resources, but that is not explicitly required for tool selection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% description coverage for both parameters (campaign_id, customer_id). The description adds no extra parameter meaning, but the baseline of 3 applies since the schema fully documents them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Permanently remove a Google Ads campaign' with a specific verb ('remove') and resource ('Google Ads campaign'). It distinguishes from siblings like pause/resume/update by emphasizing permanence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use for permanent deletion as opposed to pausing or updating, but does not explicitly name alternatives or state when not to use it. The word 'permanently' hints at the distinction but no direct guidance is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_enable_adA
Enable a paused Google Ads ad — it will start serving
| Name | Required | Description | Default |
|---|---|---|---|
| ad_id | Yes | Ad ID to enable | |
| ad_group_id | Yes | Ad group ID | |
| customer_id | Yes | Google Ads customer/account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the primary behavior ('will start serving'), but doesn't mention what happens if the ad is not paused, error conditions, or permissions. For a simple state change this is adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the action and resource, with no filler or redundancy. Every word contributes to understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with three required params and no output schema, the description covers the core functionality and expected result. It doesn't explain return values or edge cases, but this is minor for the tool's simplicity. Overall, it's adequately complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with each parameter described (ad_id, ad_group_id, customer_id). The description adds no extra parameter detail, but the schema already provides sufficient meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description is clear and specific: 'Enable a paused Google Ads ad — it will start serving'. It uses a direct verb ('enable'), identifies the resource ('paused Google Ads ad'), and states the effect, clearly distinguishing it from sibling tools like pause or delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for enabling paused ads, which provides clear context. It doesn't explicitly state 'use this instead of pause/ad create' but the context is sufficient for selecting among siblings. No exclusions or alternatives are mentioned, so a small deduction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_get_budgetA
Get budget details for a Google Ads campaign
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Campaign ID | |
| customer_id | Yes | Google Ads customer/account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It only says 'Get budget details,' which indicates a read operation, but it does not mention any specific permissions, rate limits, or what exactly is included in the budget details. The description adds minimal behavioral context beyond the verb 'Get.'
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant wording. It is appropriately concise for a simple tool, and every word contributes to the meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with two well-documented parameters and no output schema. However, the description does not explain what 'budget details' includes or how the response is structured. Given the absence of an output schema, more detail would be helpful, but the tool's simplicity mitigates the gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters (customer_id and campaign_id) with descriptions, achieving 100% coverage. The description does not add any extra parameter semantics, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Get' with the resource 'budget details' for a Google Ads campaign, clearly distinguishing it from siblings like google_ads_get_campaign and list_campaigns. This is a specific and unambiguous statement of purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states what the tool does but gives no explicit guidance on when to use it versus alternatives such as google_ads_get_campaign. Usage is implied by the tool name and resource targeting, but no exclusions or alternative references are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_get_campaignB
Get detailed information and metrics for a specific Google Ads campaign
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Campaign ID | |
| customer_id | Yes | Google Ads customer/account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It implies a read-only operation through the verb 'Get' but does not explicitly state that it has no side effects, require specific permissions, or explain error behavior. This lack of behavioral disclosure is a significant gap for a tool with no annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 13 words, immediately stating the tool's purpose without any extraneous content. It is appropriately sized for a simple get operation and is front-loaded with the key action and object.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has only two well-documented parameters and no output schema. The description is vague about what 'detailed information and metrics' specifically includes, leaving the return value expectations incomplete. For a simple tool it is adequate, but it could be improved by listing example metrics or linking to a schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% parameter coverage with clear descriptions for both campaign_id and customer_id. The description adds no additional parameter context beyond what the schema already includes, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a clear verb ('Get') and identifies the resource ('detailed information and metrics for a specific Google Ads campaign'). It distinguishes from siblings like google_ads_list_campaigns (which lists many) and meta_ads_get_campaign (which is for a different platform).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives such as google_ads_list_campaigns or google_ads_campaign_performance. No exclusions or alternative recommendations are mentioned, leaving the agent to infer usage from the tool name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_list_accountsA
List all accessible Google Ads accounts
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It states the action and scope ('all accessible') but does not disclose return format, pagination, authentication requirements, or what 'accessible' means. This is minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, direct sentence conveys the essential purpose without any filler or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema list tool, the description covers the basic purpose and scope. However, it omits return value details and the typical workflow of using this to obtain account IDs for other Google Ads operations, leaving the context slightly incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the empty schema is appropriate and no parameter details are needed. The description adds no parameter information, but none is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('Google Ads accounts') and adds scope ('all accessible'), clearly distinguishing it from sibling tools like google_ads_list_campaigns and meta_ads_list_accounts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when you need to see all accessible Google Ads accounts, but it does not mention alternatives, exclusions, or when to prefer another listing tool. For a simple list tool this is adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_list_ad_groupsA
List all ad groups for a Google Ads campaign with performance metrics
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Campaign ID | |
| customer_id | Yes | Google Ads customer/account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must stand alone. It discloses the read nature via 'List' and mentions metric inclusion, but omits details on authentication, rate limits, or return behavior. Score 2 due to limited behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with action and resource, no redundancy. It is efficient and appropriate for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple list operation with complete parameter schema and no output schema. The description adequately communicates scope and metric inclusion, but lacks specificity about response format or pagination, so it meets the minimum viable threshold.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both required parameters with descriptions (customer_id, campaign_id), achieving 100% coverage. The description adds no parameter-specific detail, meriting the baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states 'List all ad groups for a Google Ads campaign with performance metrics', clearly identifying the resource (ad groups) and scope (per campaign). This distinguishes it from sibling tools like list_ads and list_campaigns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to prefer this tool over alternatives, but the wording makes the target use case obvious. No exclusions or alternative tool mentions, scoring 3 as implied usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_list_adsA
List all ads in a Google Ads ad group with performance metrics
| Name | Required | Description | Default |
|---|---|---|---|
| ad_group_id | Yes | Ad group ID | |
| customer_id | Yes | Google Ads customer/account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the operation is a read-only 'List' and that results include 'performance metrics', but lacks details on pagination, potential data volume, or authentication requirements. This is adequate for a simple list tool but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that fully conveys the tool's purpose without any fluff. Every word contributes to understanding the tool's function and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with two well-documented parameters and no output schema, the description is complete enough. It states the scope, the resource, and the inclusion of performance metrics. Missing details like pagination are not critical given the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters (ad_group_id and customer_id). The description adds minimal semantic value beyond the schema, only reinforcing the ad group scope. Since the schema already documents parameters, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List all ads in a Google Ads ad group with performance metrics', specifying the exact resource (ads) and scope (ad group). This distinguishes it from sibling tools like google_ads_list_ad_groups and google_ads_list_campaigns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by mentioning 'in a Google Ads ad group', making it clear this tool is for listing ads within a specific ad group. It doesn't explicitly exclude alternatives or state when not to use it, but the context is sufficiently clear among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_list_campaignsB
List all campaigns for a Google Ads account with performance metrics
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status: ENABLED, PAUSED | |
| customer_id | Yes | Google Ads customer/account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does not mention pagination, which performance metrics are included, date ranges, required permissions, or any read-only guarantees. It only restates the action and a vague metric inclusion.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the action and resource, contains no filler, and is easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a list operation with only 2 parameters and no output schema, the description is minimally adequate. However, it leaves gaps around which performance metrics are returned, whether pagination is needed, and what the response shape looks like.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters, so the schema already documents them. The description adds no extra meaning about how to use 'status' or 'customer_id', so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb+resource: 'List all campaigns for a Google Ads account'. Adding 'with performance metrics' provides scope, but it does not explicitly distinguish this from sibling tools like 'google_ads_get_campaign' or 'google_ads_campaign_performance'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as google_ads_get_campaign for a single campaign or google_ads_campaign_performance for detailed metrics. The description only states what it does, not when to choose it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_list_keywordsA
List keywords in a Google Ads ad group with quality score and performance metrics
| Name | Required | Description | Default |
|---|---|---|---|
| ad_group_id | Yes | Ad group ID | |
| customer_id | Yes | Google Ads customer/account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It implies a read-only operation ('List') and discloses the returned metrics, but does not explicitly state that no changes are made or mention any side effects. It adds the context of quality score and performance metrics, which is beyond what the schema provides.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that leads with the action and is free of filler, earning a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the primary purpose and scope for a simple listing tool with two well-defined parameters. It mentions the output content (quality score and performance metrics) but lacks details on exact metrics or output format; given no output schema, it is mostly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes both parameters (ad_group_id and customer_id) with 100% coverage. The description reuses the concept of 'ad group' but does not add meaning beyond the schema, so it stays at the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('List') on a specific resource ('keywords in a Google Ads ad group') and adds what is returned ('quality score and performance metrics'), distinguishing it from sibling tools like list_ad_groups or list_ads.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving keyword-level data from a specific ad group, but it does not explicitly mention when to use it versus alternatives or exclude other tools. It provides clear context but no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_pause_adB
Pause a Google Ads ad
| Name | Required | Description | Default |
|---|---|---|---|
| ad_id | Yes | Ad ID to pause | |
| ad_group_id | Yes | Ad group ID | |
| customer_id | Yes | Google Ads customer/account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It merely states 'Pause' without explaining effects, reversibility, or any side effects, which is insufficient for a mutation operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no wasted words. It is optimally concise and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no annotations, no output schema, and the description provides only the basic action. Given the existence of closely related sibling pause/enable/delete tools, more context about effects or prerequisites is needed for full completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with each parameter explained. The description adds no additional parameter meaning beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Pause a Google Ads ad' uses a specific verb and resource, clearly identifying the action and target. It distinguishes itself from sibling pause tools like pause_campaign and pause_ad_group by specifically naming 'ad'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like enable_ad, delete_ad, or other pause tools. There are no prerequisites or contextual cues, leaving the agent to infer usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_pause_ad_groupB
Pause a Google Ads ad group
| Name | Required | Description | Default |
|---|---|---|---|
| ad_group_id | Yes | Ad group ID to pause | |
| customer_id | Yes | Google Ads customer/account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It only restates the operation name ('Pause a Google Ads ad group') without disclosing effects, reversibility, permissions, or consequences for child objects. The agent is left to infer how pausing an ad group behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise, a single six-word sentence with no filler. It is appropriately sized for the tool's apparent simplicity, though it could have added more context without hurting conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
This is a mutation tool with no annotations and no output schema. The description does not explain what the tool returns, whether it is reversible, or how it relates to pausing campaigns or ads. In the context of many sibling lifecycle tools, this minimal description leaves significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for both parameters, so the schema already documents them clearly. The description adds no additional parameter context, which meets the 100% coverage baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Pause' and identifies the exact resource 'Google Ads ad group', distinguishing it from sibling pause tools for campaigns, ads, and keywords. It clearly answers what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives like google_ads_pause_campaign or pause_ad. It does not explain prerequisites, scenarios, or typical use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_pause_campaignA
Pause a Google Ads campaign — stops ad delivery immediately
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Campaign ID to pause | |
| customer_id | Yes | Google Ads customer/account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the immediate effect of pausing, which is useful. However, without annotations, it does not mention whether the action is reversible, requires specific permissions, or impacts billing. Moderate transparency only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, direct, front-loaded with the action. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter mutation with no output schema, the description gives enough to understand the tool's purpose and effect. Lacks explicit alternative guidance but is otherwise adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters with descriptions. The description adds no extra semantic value beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specific verb 'Pause' plus resource 'Google Ads campaign' with behavioral detail 'stops ad delivery immediately'. Clearly distinguishes from siblings like resume, delete, and enable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the name and effect, but no explicit when-to-use vs. alternatives (e.g., vs. update or delete) is provided. No exclusions or prerequisites mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_pause_keywordB
Pause a keyword in a Google Ads ad group
| Name | Required | Description | Default |
|---|---|---|---|
| ad_group_id | Yes | Ad group ID | |
| customer_id | Yes | Google Ads customer/account ID | |
| criterion_id | Yes | Keyword criterion ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. 'Pause' implies a mutation but does not disclose whether the action is reversible, what the keyword status changes to, or any downstream effects. The description adds no context beyond the verb itself.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured sentence with no wasted words. It is immediately clear and front-loaded with the action and target.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a simple mutation with three required IDs and no output schema, but the description is too sparse. It does not explain the expected outcome (keyword becomes paused), whether it can be resumed (no enable_keyword sibling exists), or any side effects. This is incomplete for an agent to invoke confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for all three parameters (customer_id, ad_group_id, criterion_id). The description does not add any parameter-specific meaning, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Pause a keyword in a Google Ads ad group', using a specific verb ('Pause') and resource ('keyword in a Google Ads ad group'). This distinguishes it from sibling tools like google_ads_pause_campaign, google_ads_pause_ad_group, and google_ads_pause_ad.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention exclusions, prerequisites (e.g., keyword must be active), or that it differs from pausing campaigns/ad groups/ads. The context is implied only by the name and description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_remove_keywordA
Permanently remove a keyword from a Google Ads ad group — IRREVERSIBLE
| Name | Required | Description | Default |
|---|---|---|---|
| ad_group_id | Yes | Ad group ID | |
| customer_id | Yes | Google Ads customer/account ID | |
| criterion_id | Yes | Keyword criterion ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explicitly discloses the permanent/irreversible nature, which is the key behavioral trait for a removal operation. However, it does not mention permission requirements or other side effects, such as whether data is archived.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with a clear action and a vital warning. Every word is purposeful, and the em-dash emphasis on 'IRREVERSIBLE' is efficient and memorable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter delete operation with no output schema, the description adequately conveys the action and its permanent consequence. It does not mention when to use vs. alternatives, but the core semantics are complete and the tool's simplicity lowers the need for additional detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the three parameters, and the description adds no additional meaning beyond their names and types. The baseline of 3 is appropriate since the schema already fully documents the parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('permanently remove') and the resource ('a keyword from a Google Ads ad group'). The 'IRREVERSIBLE' warning distinguishes it from the sibling 'pause_keyword' tool, which implies a reversible state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'pause_keyword' or 'delete_ad_group'. The permanent nature is implied, but no explicit context or exclusions are given, leaving the agent to infer usage from sibling names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_resume_campaignA
Resume a paused Google Ads campaign — this will start spending your budget
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Campaign ID to resume | |
| customer_id | Yes | Google Ads customer/account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It does add an important warning: 'this will start spending your budget', which alerts the agent to the financial impact. However, it does not mention reversibility, permissions, or error behavior, so it is not fully comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence with no redundancy. It clearly states the action and a key consequence, earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema or annotations, the description covers the essential purpose and important side effect. It lacks details on return values or error handling, but these are not critical for such a straightforward operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage of parameters, each with descriptions (campaign_id and customer_id). The tool description adds no extra meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Resume' and a clear resource 'paused Google Ads campaign', making the action explicit. It also differentiates from sibling tools like google_ads_pause_campaign and google_ads_delete_campaign by focusing on resuming.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The use case is implied ('Resume a paused campaign') but there is no explicit guidance on when to use this tool vs alternatives, nor any exclusions or prerequisites. The context is clear enough, but the description does not actively steer the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_time_seriesC
Get daily performance time series for a Google Ads campaign
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days (default 30) | |
| campaign_id | Yes | Campaign ID | |
| customer_id | Yes | Google Ads customer/account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It only states the basic action and does not mention whether it is read-only, what metrics are returned, how data is aggregated, or any permissions/limitations. This is a significant gap for a tool that presumably accesses sensitive account data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that directly states the core function. It is efficient and without filler, but it is so brief that it sacrifices useful context—still, for the purpose of conciseness, it scores well.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description should explain what the returned time series contains (metrics, format, date range behavior). It does not. The tool also needs better differentiation from google_ads_campaign_performance and meta_ads_time_series. The description is minimal and insufficient for a complete understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% coverage with descriptions for all three parameters, so the baseline is 3. The description adds no extra parameter meaning beyond what the schema already states, such as the role of 'days' in controlling the time window. It does not harm, but also does not elevate above the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get'), a clear resource ('daily performance time series'), and an object ('Google Ads campaign'). It gives a concise statement of what the tool does and hints at its distinguishing feature (daily, time series) relative to siblings like google_ads_campaign_performance, though it does not explicitly name an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention use cases, exclusions, or refer to any sibling tools, leaving the agent without context for selecting it over similar performance lookup tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_update_ad_groupB
Update a Google Ads ad group's name, bid, or status
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name | |
| status | No | New status | |
| cpc_bid | No | New CPC bid in dollars | |
| ad_group_id | Yes | Ad group ID | |
| customer_id | Yes | Google Ads customer/account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries full responsibility for behavioral disclosure. It states only that it updates fields, but does not mention whether partial updates are supported, whether at least one optional field must be provided, permission requirements, or the result of a no-op update. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler. Every word contributes to the main purpose and no information is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the core purpose is clear, the description is incomplete given the lack of an output schema and annotations. It does not explain return values, behavior when no optional fields are supplied, or how this relates to sibling pause tools. For a mutation tool, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are already well documented. The description adds minimal value by mapping 'bid' to cpc_bid and listing the updatable fields, but it does not enrich any parameter beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'update' and identifies the resource 'ad group' along with the exact mutable fields (name, bid, status). This clearly distinguishes it from sibling tools like pause, delete, or create.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for changing name, bid, or status, but it does not explicitly contrast this with alternatives such as google_ads_pause_ad_group, which overlaps when setting status to PAUSED. No conditions or exclusions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
google_ads_update_campaignB
Update a Google Ads campaign's name, budget, or bidding strategy
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New campaign name | |
| campaign_id | Yes | Campaign ID | |
| customer_id | Yes | Google Ads customer/account ID | |
| daily_budget | No | New daily budget in dollars | |
| bidding_strategy | No | New bidding strategy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It simply says 'Update' without stating side effects, permissions required, whether it is a partial update, or the nature of the response. For a mutating tool, this lack of detail is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no unnecessary words. It efficiently lists the updatable fields, keeping the description short and scannable while conveying the essential purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the schema fully documents parameters, the description lacks behavioral context such as return values, error conditions, or prerequisites. Given no annotations and no output schema, the description is adequate for basic tool selection but incomplete for anticipating side effects or handling edge cases.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter described clearly (e.g., 'New daily budget in dollars'). The tool description restates the fields but adds no new meaning, constraints, or format details beyond what the schema already provides. The baseline of 3 is appropriate given high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'Update' and explicitly identifies the resource (Google Ads campaign) and the updatable fields (name, budget, bidding strategy). This clearly distinguishes it from sibling tools like create, pause, resume, and delete campaign operations, making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use this tool versus alternatives. It does not mention that this is for modifying existing campaigns or that separate tools exist for creating, pausing, or deleting campaigns, leaving the agent to infer usage solely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_connected_platformsA
Check which ad platforms are configured and ready to use
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It clearly indicates a read-only operation with 'check' and adds semantic value by specifying 'ready to use', which goes beyond the tool name. It doesn't detail output format or error cases, but the operation is simple enough that this is a minor omission.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no extraneous content. It efficiently communicates the tool's purpose and scope.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 0-parameter list tool, the description is nearly complete. It could mention what the output looks like (e.g., a list of platform names), but the absence of an output schema and the tool's simplicity make this a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so there is nothing to explain. The schema coverage is trivially 100%, and the description doesn't need to add any parameter information. Baseline 4 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('check') and identifies the resource ('ad platforms') with a clear outcome ('configured and ready to use'). It distinguishes itself from all sibling tools, which are platform-specific operations (google_ads_*, meta_ads_*).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage as a discovery tool before platform-specific operations, given the sibling context, but it does not explicitly state when to use this tool vs alternatives or mention exclusions. Usage guidance is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_breakdownsC
Get campaign breakdowns by device, platform, placement, age, or gender
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Meta campaign ID | |
| breakdown_type | No | Breakdown dimension | device_platform |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full responsibility for disclosing behavioral traits. It does not explain what the breakdowns contain (e.g., metrics per segment), whether results might be empty, required permissions, or any side effects. This omission leaves the agent without key operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 13 words, immediately front-loading the action and resource. It is efficient with no filler or redundant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and no annotations, so the description should explain the return format and additional context. It does not; it only states the basic purpose. For an agent to correctly invoke and interpret results, it would need more information about response structure and how breakdowns are aggregated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already fully documents both parameters with 100% coverage. The description's mention of 'device, platform, placement, age, gender' partially rephrases the enum values but adds little functional meaning beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves campaign breakdowns and lists the available dimensions (device, platform, placement, age, gender). It is specific with a clear verb and resource, but it lacks explicit differentiation from sibling tools like google_ads_breakdowns, though the tool name itself provides that differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention prerequisites, exclusions, or cases where another breakdown tool (e.g., meta_ads_time_series, meta_ads_campaign_performance) would be more appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_campaign_performanceA
Get performance summary across all Meta campaigns with spend, clicks, and conversions
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days to look back (default 30) | |
| ad_account_id | Yes | Meta ad account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but reveals little beyond the metrics returned. It does not state whether the operation is read-only, how aggregation works, or any data recency constraints. It is not misleading, but lacks depth for a tool with zero annotation support.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single concise sentence front-loads the action and key resources. No redundant information or filler, making it easy to scan.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with two params and no output schema, the description names key metrics but omits return structure and any default behavior (though days default is in schema). It is adequate but leaves some gaps around output format and time range interpretation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% for both parameters (ad_account_id and days), so the baseline is 3. The tool description adds no parameter-specific context, but the schema already defines them adequately.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves a performance summary (spend, clicks, conversions) across all Meta campaigns. This distinguishes it from sibling tools like meta_ads_list_campaigns (listing) or meta_ads_get_campaign (single campaign focus).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. It only implies high-level performance, but does not mention when to choose this over meta_ads_time_series, meta_ads_breakdowns, or google_ads_campaign_performance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_create_adA
Create a new Meta ad with creative (image, copy, link). Ad is created PAUSED for review.
| Name | Required | Description | Default |
|---|---|---|---|
| body | Yes | Ad body text | |
| name | Yes | Ad name | |
| title | Yes | Ad headline/title | |
| page_id | Yes | Facebook page ID | |
| link_url | Yes | Destination URL | |
| ad_set_id | Yes | Ad set ID | |
| image_url | No | Image URL for the ad creative | |
| ad_account_id | Yes | Meta ad account ID | |
| call_to_action | No | Call to action button | LEARN_MORE |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description reveals the important behavioral trait that created ads are 'PAUSED for review,' which is not evident from the schema. However, with no annotations provided, it carries the full burden and does not discuss permissions, reversibility, or return values, leaving some transparency gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—two sentences—and leads with the action. Every word contributes; no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a creation tool, the description plus fully documented schema provides adequate invocation context: required parameters are clear, and the paused status is stated. The lack of explanation about the response/return value is a minor gap, but not critical for selecting and invoking the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for all 9 parameters (100% coverage). The description adds the semantic grouping of 'creative (image, copy, link),' but this does not significantly extend the schema's parameter documentation. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Create a new Meta ad' and specifies the creative components (image, copy, link). It distinguishes this from sibling tools like meta_ads_create_ad_set and Google Ads ad creation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context by identifying the function as creating a Meta ad, and the paused-for-review detail helps set expectations. However, it does not explicitly state when to prefer this over alternatives or mention prerequisites like ad_set_id.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_create_ad_setB
Create a new ad set in a Meta campaign with targeting options
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Ad set name | |
| age_max | No | Maximum age | |
| age_min | No | Minimum age | |
| genders | No | Genders: 1=Male, 2=Female | |
| countries | No | Target country codes | |
| campaign_id | Yes | Campaign ID | |
| daily_budget | Yes | Daily budget in dollars | |
| ad_account_id | Yes | Meta ad account ID | |
| optimization_goal | No | Optimization goal | LINK_CLICKS |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states 'Create', which implies mutation, but does not mention permissions, side effects, or the requirement of a valid campaign. This is a significant gap for a write operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that efficiently captures the action and resource. There are no redundant words or lengthy explanations, making it appropriately concise and structured for quick comprehension.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 9 parameters, no annotations, and no output schema, this description is too sparse. It does not explain the required execution context (e.g., existing campaign), return value, or error conditions. For a complex Meta Ads operation, more context is needed to make the agent fully informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the baseline is 3. The description's phrase 'with targeting options' vaguely maps to the demographic and location parameters, but adds no meaningful detail beyond the schema's own descriptions. Therefore, it does not elevate the parameter semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create'), the resource ('ad set'), the context ('in a Meta campaign'), and adds scope ('with targeting options'). This distinguishes it well from sibling tools like create_campaign or create_ad, and there is no ambiguity about what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as meta_ads_update_ad_set or meta_ads_create_campaign. It also omits prerequisites (e.g., needing an existing campaign) and any exclusions, leaving the agent without context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_create_campaignA
Create a new Meta Ads campaign. Created PAUSED for safety — no money spent until you activate it.
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Campaign name | |
| objective | Yes | Campaign objective | |
| daily_budget | No | Daily budget in dollars | |
| ad_account_id | Yes | Meta ad account ID | |
| lifetime_budget | No | Lifetime budget in dollars (alternative to daily) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses a crucial behavioral trait (campaign is created PAUSED, preventing spend) which is valuable. However, it does not cover other behavioral aspects such as authentication requirements, response format, or what happens on failure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise: two short sentences. The purpose is front-loaded, and the safety note ('Created PAUSED for safety — no money spent until you activate it') earns its place by providing critical behavior without superfluous detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a create operation with no output schema, the description is reasonably sufficient: it states the purpose and a key safety behavior. However, it does not mention the return value (e.g., campaign ID), follow-up activation steps, or required permissions, leaving gaps for a complex creation flow.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema; it only implies a relationship between 'paused' and budget spending, but does not clarify parameter nuances like the mutual exclusivity of daily_budget and lifetime_budget.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create a new Meta Ads campaign') with a specific verb and resource. It distinguishes itself from sibling tools like meta_ads_create_ad_set and meta_ads_create_ad by explicitly mentioning 'campaign'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, nor does it mention any prerequisites or exclusions. It simply states the action without context on opting between daily and lifetime budgets or when to prefer this over other campaign tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_delete_adA
Permanently delete a Meta ad — IRREVERSIBLE
| Name | Required | Description | Default |
|---|---|---|---|
| ad_id | Yes | Meta ad ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden of behavioral disclosure. It prominently highlights irreversibility with 'IRREVERSIBLE' and 'Permanently,' which is the most critical trait for a delete operation. However, it does not mention permissions, effects on related data, or return behavior, but these are less critical for a simple one-param delete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, using only necessary words. 'Permanently' and 'IRREVERSIBLE' are slightly redundant but serve emphasis; no filler or tangential information is present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter delete tool with no output schema, the description is nearly complete. It clearly states the action, target, and irreversibility. It could mention what cannot be undone (e.g., ad disappearance from reports) or valid ad ID format, but the minimal structure makes this adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, as ad_id is fully described as 'Meta ad ID to delete.' The description adds no additional parameter semantics beyond the schema, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function with a specific verb and resource: 'Permanently delete a Meta ad.' It distinguishes from sibling tools like meta_ads_pause_ad and meta_ads_enable_ad by specifying permanent deletion, and from meta_ads_delete_campaign/ad_set by targeting ad-level resources.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by specifying 'permanently delete' versus alternatives like pause/enable, but it does not explicitly state when to use this tool vs. those alternatives. No clear guidance on prerequisites or scenarios is provided, making it inferred rather than explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_delete_ad_setA
Permanently delete a Meta ad set — IRREVERSIBLE
| Name | Required | Description | Default |
|---|---|---|---|
| ad_set_id | Yes | Meta ad set ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description takes on the full responsibility of behavioral disclosure. It explicitly warns that the operation is 'IRREVERSIBLE,' which is a critical trait for a destructive action. However, it does not mention additional consequences (e.g., cascading deletion of ads) or prerequisites like pausing first, leaving some behavioral context uncovered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the action and the key warning. Every word earns its place, with no redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple delete tool with one parameter and no output schema, the description states the core purpose and the most important side effect (irreversibility). It is adequate for an agent to select and invoke the tool correctly, though it could have mentioned cascading effects or prerequisites to be fully comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully documents the only parameter (ad_set_id) with description 'Meta ad set ID to delete,' covering 100% of the schema. The description adds no additional parameter context beyond what the schema already provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('delete') and resource ('Meta ad set'), with 'permanently' and 'IRREVERSIBLE' clearly distinguishing it from sibling tools like pause or update, which are non-destructive.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for permanent deletion, which suggests non-permanent alternatives like pause or update exist, but it does not explicitly name them or state when to use them. The context is clear enough to infer, but there is no direct comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_delete_campaignA
Permanently delete a Meta campaign — IRREVERSIBLE
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Meta campaign ID to delete |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does state 'Permanently delete' and 'IRREVERSIBLE', which are key traits for a destructive operation. However, it omits information about permissions, cascading effects on ad sets/ads, and response behavior, making the disclosure minimal but present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that conveys the action and its irreversibility with no filler words. It is appropriately sized for the tool's simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter delete tool with no output schema, the description covers the core behavior but leaves gaps. It does not mention whether deleting the campaign also affects associated ad sets/ads, nor does it specify what the response or return value is. Adequate but not fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with a clear description for campaign_id ('Meta campaign ID to delete'). The tool description adds no further parameter-specific meaning, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (permanently delete) and the resource (a Meta campaign). The 'IRREVERSIBLE' emphasis adds a distinguishing trait, and it is distinct from sibling tools like pause/resume or Google Ads delete.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not provide any guidance on when to use this tool vs alternatives. It does not mention that pausing should be used for temporary stops, nor does it reference sibling tools like meta_ads_pause_campaign or google_ads_delete_campaign.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_enable_adA
Activate a paused Meta ad — it will start serving
| Name | Required | Description | Default |
|---|---|---|---|
| ad_id | Yes | Meta ad ID to activate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden for behavioral disclosure. It clearly explains the effect ('it will start serving') and implies the target state ('paused'). While it doesn't detail edge cases like calling on an already-active ad or idempotency, for a simple state-change tool the core behavior is adequately disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence: 'Activate a paused Meta ad — it will start serving'. Every word contributes to the purpose and outcome, with no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple enabling operation with one parameter and no output schema, the description effectively covers the purpose and action. It lacks explicit mention of return values or error behavior, but these are less critical for a straightforward state-change tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for its single parameter 'ad_id', and the description adds no additional parameter-specific meaning. The baseline of 3 applies because the schema already fully documents the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Activate' with a clearly defined resource 'paused Meta ad', and it states the outcome ('it will start serving'). This distinguishes it from sibling tools like meta_ads_pause_ad and google_ads_enable_ad by specifying both the platform (Meta) and the state (paused).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly indicates the tool is for paused Meta ads, providing clear context for when to use it. However, it does not explicitly name alternatives or exclusion criteria, leaving some reliance on the tool name and sibling list for full differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_get_campaignA
Get detailed information and metrics for a specific Meta campaign
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Meta campaign ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the behavioral burden. It correctly identifies the operation as read-only ('Get') and implies it is safe, but does not clarify what 'detailed information and metrics' includes, error behavior, or whether any rate limits apply. For a simple get tool, this is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler words. It is front-loaded with the key verb and object, making it immediately understandable. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter get tool, the description is functionally adequate, but without an output schema it does not explain the shape of the returned data. The promise of 'detailed information and metrics' is vague; the agent might not know if it gets status, budget, performance KPIs, or other fields. A more complete description would enumerate examples of what is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers 100% of parameters (campaign_id with description 'Meta campaign ID'), so the baseline is 3. The description adds no additional parameter semantics beyond reinforcing that it is a specific campaign, which is already implied by the schema and required field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('Get') and resource ('detailed information and metrics for a specific Meta campaign'). It distinguishes itself from sibling list tools like meta_ads_list_campaigns by emphasizing 'specific', and from Google Ads get_campaign by naming Meta.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: this tool is for when you need details of a single Meta campaign, not for listing or modifying. However, there is no explicit mention of alternatives or scenarios where this tool is preferred over meta_ads_campaign_performance or similar. The description provides no exclusions, so it is adequate but not explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_list_accountsA
List all accessible Meta (Facebook) ad accounts
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It only says 'List all accessible Meta ad accounts,' which is minimal. It does not mention pagination, permissions required, the shape of the returned data, or what happens if no accounts are accessible. This lack of detail is a significant gap for a listing tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It is front-loaded with the verb and resource and is appropriately concise for a tool with no parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (no parameters, no output schema, no annotations), the description is minimally adequate. However, because there is no output schema, it leaves gaps about the response format and pagination. It is one-dimensional, so a 3 seems appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so with 100% schema coverage of an empty schema there is nothing to document. The baseline for 0 params is 4, and the description does not need to add parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states that the tool lists all accessible Meta (Facebook) ad accounts. It uses a specific verb ('List') and resource ('accessible Meta ad accounts'), and the 'Meta' qualifier distinguishes it from the sibling tool google_ads_list_accounts.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool's usage when you need to see all accessible Meta ad accounts, and the sibling list shows an alternative for Google Ads. However, it does not explicitly state when to use this tool versus alternatives, nor does it provide any exclusions or contextual hints like 'use this to find account IDs before calling other Meta tools.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_list_adsA
List all ads in a Meta ad set with creative details and metrics
| Name | Required | Description | Default |
|---|---|---|---|
| ad_set_id | Yes | Meta ad set ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'List' implies a read-only operation, and the description adds what data will be returned. However, it does not disclose pagination behavior, rate limits, or explicitly state that it has no side effects. This is adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence that covers purpose and return content without any filler. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has a single required parameter and no output schema. The description explains what the tool does (lists ads) and what the response includes (creative details and metrics), which is sufficient for a simple list operation. It does not mention edge cases like empty results or pagination, but 'all ads' implies comprehensive listing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents ad_set_id with 100% coverage ('Meta ad set ID'). The description adds the context that the tool lists ads within that ad set, but does not provide additional parameter formatting or syntax details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses the specific verb 'List' with the resource 'ads in a Meta ad set', and clarifies the return contents ('creative details and metrics'). This clearly distinguishes it from sibling tools like google_ads_list_ads and meta_ads_list_campaigns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly implies when to use: when you need to list ads within a specific Meta ad set, using the ad_set_id parameter. It does not explicitly mention alternatives or exclusions, but the 'Meta ad set' context separates it from Google Ads and other Meta list tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_list_ad_setsA
List all ad sets for a Meta campaign with targeting and metrics
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Meta campaign ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It correctly states the operation is a listing (read-only) and mentions it includes targeting and metrics, but does not disclose pagination, rate limits, or output structure. It does not contradict annotations (there are none), but it offers limited behavioral context beyond the bare operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-front-loaded sentence with no wasted words. It efficiently conveys the core purpose and key details (targeting and metrics).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one parameter and no output schema, the description provides enough context for an agent to select it correctly. It could be more detailed about what 'metrics' means, but the lack of complexity and clear sibling differentiation make it sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single parameter (campaign_id) with a description, achieving 100% coverage. The description does not add extra meaning to the parameter, but the schema is sufficient. This is the baseline score for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and resource ('ad sets for a Meta campaign'), and additionally notes the inclusion of 'targeting and metrics,' which distinguishes it from sibling tools like meta_ads_list_campaigns (lists campaigns) and meta_ads_list_ads (lists ads). This is clear and unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool (when you need ad sets for a Meta campaign) but does not explicitly state alternatives or exclusions. It lacks guidance on when to prefer this over meta_ads_get_campaign or meta_ads_list_campaigns, though the resource name makes the intended use case fairly obvious.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_list_audiencesA
List custom audiences for a Meta ad account
| Name | Required | Description | Default |
|---|---|---|---|
| ad_account_id | Yes | Meta ad account ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, leaving the description to carry the full burden. It only states the action without disclosing behavioral traits like read-only nature, pagination, rate limits, or return format. This is minimal information beyond the tool's name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence with a front-loaded verb and no filler. Every word contributes to the meaning, making it highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the low complexity (one documented parameter, no output schema), the description adequately conveys the core action. However, it does not specify return fields or pagination, though 'list' implies a collection. Slight gap in detailing expected output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The sole parameter ad_account_id is fully described in the schema as 'Meta ad account ID'. The description adds no extra semantics such as format, examples, or scoping behavior. With 100% schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'List' with a clear resource 'custom audiences' and scope 'for a Meta ad account'. It distinguishes itself from sibling tools like meta_ads_list_campaigns and meta_ads_list_ad_sets by naming a distinct entity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives such as meta_ads_search_interests or other list tools. However, the resource name makes usage fairly obvious, giving an implied context rather than explicit directions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_list_campaignsA
List all campaigns for a Meta ad account with performance metrics
| Name | Required | Description | Default |
|---|---|---|---|
| status | No | Filter by status: ACTIVE, PAUSED | |
| ad_account_id | Yes | Meta ad account ID (with or without act_ prefix) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose behavioral traits on its own. It only adds 'with performance metrics' but does not clarify what metrics, how pagination works, whether it returns only default fields, or any authentication requirements. For a read operation, it could have explicitly stated it is read-only and described the response shape. The lack of these details leaves significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without any fluff. It earns its place by being clear and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
While the tool appears simple (2 params, no output schema), the description lacks essential context. It does not explain what 'performance metrics' includes, nor does it clarify default behavior when no status is provided. Given the existence of a separate meta_ads_campaign_performance tool, the phrase 'with performance metrics' could mislead an agent into thinking this is the place for deep performance analysis. More detail on return contents would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides 100% description coverage for both parameters (status and ad_account_id). The description adds the nuance 'all campaigns' implying that without a status filter, all are returned. This is marginal value beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists all campaigns for a Meta ad account and includes performance metrics. It uses a specific verb ('List') and resource ('campaigns'), and distinguishes from sibling tools like meta_ads_get_campaign (single campaign) and meta_ads_create_campaign. The mention of 'Meta' also differentiates it from google_ads_list_campaigns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'List all campaigns' implies this is the tool for retrieving a broad campaign overview, but there is no explicit guidance on when to use it versus alternatives such as meta_ads_get_campaign for a single campaign or meta_ads_campaign_performance for detailed metrics. No clear when-to-use or when-not-to-use instructions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_list_pagesA
List Facebook pages you manage (needed for creating ads)
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It does state that it lists pages the user manages, which implies read-only access and a need for Facebook authentication/permissions. However, it does not explicitly disclose whether there are side effects, required skills, or any rate limits. As a simple list tool, this is adequate but not richly transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that communicates the core purpose and one key usage context. Every word contributes value, with no redundancy or irrelevant details. This is an example of concise, effective writing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with no output schema, the description is largely complete: it states what is listed and why it is needed. It could potentially mention what the output will contain (e.g., page IDs and names) or how the results connect to other tools, but the given context is sufficient for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and the baseline for zero-parameter tools is 4. The description adds context by specifying 'you manage', which clarifies that the result is scoped to the user's manageable pages. Since there are no parameters to document, the description provides sufficient semantic value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific action ('List') on a specific resource ('Facebook pages you manage'), and it distinguishes itself from sibling tools like meta_ads_list_accounts and meta_ads_list_campaigns by targeting pages. The parenthetical '(needed for creating ads)' further clarifies its role in the ad creation workflow.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context that this tool is a prerequisite for creating ads, implying when to use it. However, it does not explicitly mention when not to use it or name alternative tools, though the sibling list makes the distinction obvious. This is slightly below the top tier because exclusions/alternatives are not directly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_pause_adB
Pause a Meta ad
| Name | Required | Description | Default |
|---|---|---|---|
| ad_id | Yes | Meta ad ID to pause |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It only says 'Pause,' which implies a state change, but it does not explain what pausing does (e.g., stops ad delivery), whether it is reversible, or what the response will be. This minimal disclosure is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with no filler words, making it easy to parse. However, it provides the bare minimum information—just the action and resource—which is efficient but does not offer any additional useful structuring or detail that could enhance understanding.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description is technically complete in stating the action, but it omits important context such as the effect on the ad's delivery status, reversibility, and relationship to other ad lifecycle tools. Given the absence of annotations and output schema, this leaves a gap in the agent's understanding of the tool's full behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage for the single parameter (ad_id), with the description 'Meta ad ID to pause' already explaining its purpose. The tool description adds no extra meaning beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Pause') and the specific resource ('a Meta ad'), which distinguishes it from sibling tools like meta_ads_pause_campaign and meta_ads_pause_ad_set. It is unambiguous and directly tells an agent what the tool does.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives (e.g., when to pause vs. delete an ad, or how to resume it with meta_ads_enable_ad). The description does not mention any context, prerequisites, or exclude cases, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_pause_ad_setB
Pause a Meta ad set
| Name | Required | Description | Default |
|---|---|---|---|
| ad_set_id | Yes | Meta ad set ID to pause |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only states 'Pause a Meta ad set' without disclosing consequences (e.g., stops ad delivery, billing impact), reversibility, or required permissions. Pausing is implied as a write operation, but no side effects are mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero redundant words. It is appropriately sized for the simple operation it describes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has low complexity (one required parameter, no output schema) and the schema is complete, but the lack of behavioral and usage context makes it minimally complete. It covers purpose and parameter needs but omits safety and operational context expected from a mutation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the only parameter (ad_set_id) is fully described in the schema. The description adds no extra parameter meaning, but the baseline of 3 applies because schema handles the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Pause') and the resource ('Meta ad set'), using a specific verb+resource structure. It distinguishes itself from sibling tools like meta_ads_pause_campaign and meta_ads_pause_ad by explicitly targeting ad sets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool vs alternatives, nor are there any prerequisites or effects described. The tool name alone is insufficient to understand the context (e.g., when to pause an ad set versus a campaign or ad).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_pause_campaignA
Pause a Meta campaign — stops ad delivery immediately
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Meta campaign ID to pause |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the behavioral burden. It discloses the immediate effect ('stops ad delivery immediately'), which is useful. However, it does not mention reversibility, impact on campaign status, or any side effects, leaving gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the verb and resource. Every word adds value, with no unnecessary detail or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter tool, the description covers the core action and immediate effect. It lacks details about post-conditions or return values, but given the simplicity and full schema coverage, it is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with campaign_id clearly described as 'Meta campaign ID to pause'. The description adds no additional parameter context beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Pause' and resource 'Meta campaign', and adds a clear behavioral effect 'stops ad delivery immediately'. This distinguishes it from sibling tools like google_ads_pause_campaign and meta_ads_pause_ad_set.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description does not mention exclusions, prerequisites, or reference sibling tools for comparison. It simply states the action without context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_resume_campaignA
Activate a paused Meta campaign — this will start spending your budget
| Name | Required | Description | Default |
|---|---|---|---|
| campaign_id | Yes | Meta campaign ID to activate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It discloses the key behavioral consequence ('this will start spending your budget'), but lacks deeper context like permission requirements or behavior if the campaign is already active. Honest but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that conveys purpose and key effect with no wasted words. Ideal length and structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter resume tool with no output schema, the description adequately covers what the tool does and its main side effect. It could mention error conditions (e.g., already active campaign) but is not critically incomplete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (campaign_id is described as 'Meta campaign ID to activate'). The tool description adds no extra meaning beyond the schema, so baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action: 'Activate a paused Meta campaign' — a specific verb and resource. It distinguishes from siblings like pause or delete by specifying the resume action and its primary effect (starting budget spend).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'Activate a paused Meta campaign' implies the appropriate context (when a campaign is paused and needs resuming). It doesn't explicitly mention alternatives, but the 'paused' qualifier and budget impact provide clear situational guidance with no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_search_interestsA
Search Meta's targeting interests and behaviors for audience building
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search term (e.g., 'fitness', 'cooking', 'real estate') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It states 'Search' but does not explicitly confirm it's read-only, describe what the response contains, or note any rate limits or authentication requirements. The description is too minimal to provide an agent with clear expectations beyond a basic search operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the verb and resource, and contains no filler or redundant information. It is appropriately sized for a simple one-parameter search tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple search tool with no output schema, the description provides sufficient context about the tool's purpose and input. However, it does not explain the return format or how results might be used in downstream audience building, which would enhance completeness. Yet given the simplicity, it is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema fully describes the single 'query' parameter with a clear description and examples. The tool description adds context that the query is for searching interests/behaviors, but this aligns with the schema. Since schema coverage is 100%, the baseline of 3 is appropriate; the description does not need to add more.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('Search') and resource ('Meta's targeting interests and behaviors') with a clear purpose ('for audience building'). This distinguishes it from sibling tools like meta_ads_list_audiences or meta_ads_create_campaign, which focus on other operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for audience targeting research but provides no explicit guidance on when to use this tool versus alternatives or any exclusions. It does not mention prerequisites or how this tool fits into the broader ad creation workflow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_time_seriesB
Get daily performance time series for a Meta campaign
| Name | Required | Description | Default |
|---|---|---|---|
| days | No | Number of days (default 30) | |
| campaign_id | Yes | Meta campaign ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Since no annotations are present, the description must disclose safety/auth behaviors. 'Get' implies read-only, but there is no mention of required permissions, date range formats, or what metrics are included. It adds no behavioral detail beyond the operation name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, focused sentence with no filler. Every word contributes to defining the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description does not specify return format or included metrics. Important context such as timezone, metric list, or limits is missing, making it incomplete for an agent to predict the tool's output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of parameters, with 'Meta campaign ID' and 'Number of days (default 30)'. The description adds context that the series is daily, implying the days parameter determines the number of daily data points returned, slightly enhancing schema meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('daily performance time series for a Meta campaign'), clearly distinguishing it from sibling tools like meta_ads_campaign_performance (aggregate performance) and meta_ads_breakdowns (dimension breakdowns).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to choose this tool over alternatives such as meta_ads_campaign_performance or meta_ads_breakdowns. The description does not state exclusions or use cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_update_ad_setB
Update a Meta ad set's name, budget, or status
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New name | |
| status | No | New status | |
| ad_set_id | Yes | Meta ad set ID | |
| daily_budget | No | New daily budget in dollars |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It only says 'update' without disclosing permissions, reversibility, side effects, or response behavior. This is insufficient for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence of ten words. It is front-loaded with the action and resources, and every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is relatively simple with four parameters fully described in the schema. However, the description lacks usage context and behavioral details, making it only minimally adequate for an agent to select and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description lists fields already documented in the schema (name, budget, status) but adds no extra meaning or clarification beyond the parameter descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool updates a Meta ad set and specifies the updatable fields (name, budget, status). It distinguishes itself from sibling tools like create, pause, or delete ad set actions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as meta_ads_pause_ad_set or meta_ads_update_campaign. The description only states what it does, not the context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_update_campaignC
Update a Meta campaign's name, budget, or status
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | New campaign name | |
| status | No | New status | |
| campaign_id | Yes | Meta campaign ID | |
| daily_budget | No | New daily budget in dollars |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It only says 'update' without revealing side effects, permission requirements, or how partial updates affect other fields. It adds the list of updatable fields but nothing about the semantics of mutation or return behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no filler or redundancy, and the key information ('name, budget, or status') is front-loaded. It is appropriately sized for a simple update tool, though the brevity limits its usefulness for the other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (4 parameters, no annotations, no output schema), the description is incomplete. It fails to clarify the overlap with pause/resume tools, lacks any mention of permissions or side effects, and does not describe what the response contains. For a mutation tool, more context is needed to ensure correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with each parameter (name, status, campaign_id, daily_budget) already described. The description adds no new semantic information beyond what the schema provides, and it uses the imprecise term 'budget' instead of the actual parameter 'daily_budget'. Baseline 3 applies because the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Update') and resource ('Meta campaign'), and lists the exact mutable fields (name, budget, status). This distinguishes it from sibling tools like meta_ads_update_ad_set and meta_ads_update_targeting. However, it does not differentiate from the specialized pause/resume tools, so it loses the full 5 points.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. Sibling tools like meta_ads_pause_campaign and meta_ads_resume_campaign overlap in functionality (via the status field), but no exclusions or alternative recommendations are mentioned. Usage is only implied by the listed fields, not clearly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
meta_ads_update_targetingB
Update targeting settings on a Meta ad set (age, gender, countries, interests)
| Name | Required | Description | Default |
|---|---|---|---|
| age_max | No | Maximum age | |
| age_min | No | Minimum age | |
| genders | No | Genders: 1=Male, 2=Female | |
| ad_set_id | Yes | Meta ad set ID | |
| countries | No | Target country codes | |
| interests | No | Interest targeting |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description only says 'Update targeting settings' without disclosing whether updates are incremental or replace existing targeting, what data is affected, or any permission requirements. This is a significant gap for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, immediately states the action and scope, and has zero wasted words. It is appropriately front-loaded with the most important information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no output schema and no annotations, the description is too sparse. It does not explain the update semantics (e.g., whether unspecified fields are cleared), the return value, or any side effects, making it incomplete for an agent to confidently invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with each parameter documented, so the description adds little beyond listing the field categories. The baseline of 3 applies because the schema carries the semantic load; the description's parenthetical list is a redundant but harmless summary.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Update') and resource ('targeting settings on a Meta ad set'), and explicitly lists the fields (age, gender, countries, interests). This clearly distinguishes it from sibling tools like meta_ads_update_ad_set, which could update other ad set properties.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for targeting updates, but it does not explicitly state when to use it over alternatives like meta_ads_update_ad_set, nor does it mention prerequisites or exclusions. The context is clear enough for a basic scenario, but lacks direct comparison or guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
54 tool updates
v1.0.12- First observed
google_ads_add_keywords - First observed
google_ads_add_negative_keywords - First observed
google_ads_auction_insights - First observed
google_ads_breakdowns - First observed
google_ads_campaign_performance - First observed
google_ads_create_ad_group - First observed
google_ads_create_responsive_search_ad - First observed
google_ads_create_search_campaign - First observed
google_ads_delete_ad - First observed
google_ads_delete_ad_group - First observed
google_ads_delete_campaign - First observed
google_ads_enable_ad - First observed
google_ads_get_budget - First observed
google_ads_get_campaign - First observed
google_ads_list_accounts - First observed
google_ads_list_ad_groups - First observed
google_ads_list_ads - First observed
google_ads_list_campaigns - First observed
google_ads_list_keywords - First observed
google_ads_pause_ad - First observed
google_ads_pause_ad_group - First observed
google_ads_pause_campaign - First observed
google_ads_pause_keyword - First observed
google_ads_remove_keyword - First observed
google_ads_resume_campaign - First observed
google_ads_time_series - First observed
google_ads_update_ad_group - First observed
google_ads_update_campaign - First observed
list_connected_platforms - First observed
meta_ads_breakdowns - First observed
meta_ads_campaign_performance - First observed
meta_ads_create_ad - First observed
meta_ads_create_ad_set - First observed
meta_ads_create_campaign - First observed
meta_ads_delete_ad - First observed
meta_ads_delete_ad_set - First observed
meta_ads_delete_campaign - First observed
meta_ads_enable_ad - First observed
meta_ads_get_campaign - First observed
meta_ads_list_accounts - First observed
meta_ads_list_ad_sets - First observed
meta_ads_list_ads - First observed
meta_ads_list_audiences - First observed
meta_ads_list_campaigns - First observed
meta_ads_list_pages - First observed
meta_ads_pause_ad - First observed
meta_ads_pause_ad_set - First observed
meta_ads_pause_campaign - First observed
meta_ads_resume_campaign - First observed
meta_ads_search_interests - First observed
meta_ads_time_series - First observed
meta_ads_update_ad_set - First observed
meta_ads_update_campaign - First observed
meta_ads_update_targeting
TDQS
Scored across 54 tools
The tools are clearly separated by platform prefix (google_ads_ vs. meta_ads_) and by resource and action. Most tools have distinct purposes, though a few reporting tools (e.g., google_ads_list_campaigns vs. google_ads_campaign_performance) could be confused, but descriptions clarify the differences.
Most tools follow a consistent platform_action_resource pattern (e.g., google_ads_pause_campaign, meta_ads_list_ad_sets). Exceptions include reporting tools named as platform_resource (e.g., google_ads_campaign_performance) and the standalone list_connected_platforms, which breaks the pattern. Minor inconsistency between 'resume' for campaigns and 'enable' for ads.
With 54 tools, the server is very large. While each tool addresses a specific need across two ad platforms, the count far exceeds the typical range and may overwhelm agents, making tool selection more difficult.
The server covers the full lifecycle for campaigns, ad groups/sets, ads, and keywords, plus reporting and targeting. Minor gaps include no individual get operations for ad groups/ads and no update operation for ad creatives, but these can be worked around by using list or create operations.
Maintenance
Related MCP Connectors
Google Ads MCP server — manage campaigns, keywords, and metrics.
AI agents that manage paid ads on Meta, LinkedIn, and Google Ads from any MCP client.
Upfixe is the autonomous PPC engine built for AI agents. With Upfixe's Model Context Protocol (MCP) server, your AI assistant can research keywords, draft responsive search ads, structure ad groups, publish campaigns, and pull cross-network analytics across both Google Ads and Microsoft Advertising (Bing Ads). Features enterprise-grade token encryption (AES-256-GCM) and strict safety guardrails (auto-paused deployments, daily budget caps, O&O syndication filters).
Run Google Ads and Meta Ads from ChatGPT or Claude: audit wasted spend, create and manage campaigns.
Related MCP Servers
- AlicenseAqualityCmaintenanceMCP server for AI agents to manage ad campaigns across Google, Meta, LinkedIn, Microsoft, Reddit, TikTok, and more2181 npm17MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for managing ad campaigns across Google Ads, Meta, and more. Enables deploying campaigns, checking performance, and managing budgets from terminal or AI assistants.MIT
- AlicenseBqualityAmaintenanceAn MCP server that gives your AI assistant read + write access to Google Ads and GA4 — with safety guardrails that prevent accidental spend.91537 PyPI264MIT
- FlicenseNot gradedqualityDmaintenanceMCP server that lets any LLM manage Google Ads campaigns from the terminal. Supports read and write operations.-