Skip to main content
Glama
monsieurgoodmood

google-ads-mcp-plus

Server Quality Checklist

67%
Profile completionA complete profile improves this server's visibility in search results.
  • Latest release: v0.1.0

  • Disambiguation4/5

    Most tools are clearly distinct, but validate_pmax_assets and validate_ad_copy both check ad copy limits, and add_negative_keywords vs apply_negative_keyword_list have overlapping purposes (campaign-level vs shared list). These pairs could cause misselection, though descriptions clarify the differences.

    Naming Consistency5/5

    All tools follow a consistent verb_noun snake_case pattern (list_accounts, update_campaign_budget, create_performance_max_campaign, etc.). Even server_status fits as a status check. No mixed conventions or vague verbs.

    Tool Count5/5

    13 tools is well-scoped for a Google Ads management server. Each tool serves a distinct function, and the count is neither too thin nor bloated. It covers auditing, querying, campaign management, and offline validation without unnecessary redundancy.

    Completeness4/5

    The toolset covers core lifecycle operations: list, create, update (budget/status), and add negatives, plus a raw GAQL escape hatch. Missing delete operations (e.g., remove campaign, remove negative keyword) are the only notable gap, but the audit and query tools compensate for exploratory needs.

  • Average 4.5/5 across 13 of 13 tools scored. Lowest: 3.7/5.

    See the Tool Scores section below for per-tool breakdowns.

    • No community issues in the last 6 months
    • 10 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI is passing
  • This repository is licensed under Apache 2.0.

  • This repository includes a README.md file.

  • No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.

    Tip: use the "Try in Browser" feature on the server page to seed initial usage.

  • Add a glama.json file to provide metadata about your server.

  • If you are the author, simply .

    If the server belongs to an organization, first add glama.json to the root of your repository:

    {
      "$schema": "https://glama.ai/mcp/schemas/server.json",
      "maintainers": [
        "your-github-username"
      ]
    }

    Then . Browse examples.

  • Add related servers to improve discoverability.

How to sync the server with GitHub?

Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.

To manually sync the server, click the "Sync Server" button in the MCP server admin interface.

How is the quality score calculated?

The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).

Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.

Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).

Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.

Tool Scores

  • Behavior3/5

    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 useful context: days is a lookback window ending yesterday, and status values are enumerated (ENABLED, PAUSED, REMOVED, ALL). However, it does not mention pagination, permissions, or whether results are filtered by default beyond the status parameter, leaving some ambiguity for a list tool.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is compact: one sentence for the purpose followed by a brief structured Args block. Every sentence adds value, no fluff, and the format is easy to parse. It is appropriately sized for the tool's complexity.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the presence of an output schema, the description does not need to explain return values. The parameter explanations are sufficient for invocation. However, it lacks any discussion of limitations (e.g., maximum days, pagination) or a hint that customer_id might come from list_accounts, leaving minor gaps for a tool of this simplicity.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, so the description's Args section is the sole source of parameter meaning. It explains customer_id as 'Account to inspect', days as a lookback window ending yesterday, and status as a filter with explicit values. This fully compensates for the lack of schema descriptions and adds semantics beyond mere parameter titles.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description states a clear action ('List campaigns') with the specific fields returned (budget, status, spend, conversions). It is unambiguous about the resource and operation, but it does not explicitly contrast with sibling tools like gaql_query, which could also be used to retrieve campaign data. Thus it meets the 'clear but no sibling differentiation' criterion.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines2/5

    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 that gaql_query is for custom queries or that this is the default listing tool. The description simply lists parameters without contextualizing when this should be preferred.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the burden and does well: it discloses the two-phase preview/confirm mechanism, the role of confirm_token, and the safety guarantee that negatives only reduce spend. It does not cover permissions or side effects on existing negatives, but the core behavioral traits are clearly explained.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is efficiently structured: a one-line purpose, a safety note, and an enumerated Args section. Every sentence is informative with no redundancy, making it easy to scan.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The two-phase workflow and parameter semantics are well covered, and an output schema exists so return values are not required in the description. A minor gap is that it doesn't explicitly state the preview response returns a confirm_token, though this is implied by 'Token from the preview call. Omit for a preview.'

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    All five parameters are documented in the Args block with meaningful descriptions (e.g., 'Terms to exclude', 'Token from the preview call. Omit for a preview.'), adding substantial value over the bare schema types/defaults. With 0% schema description coverage, this fully compensates.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose4/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The first sentence 'Add campaign-level negative keywords' uses a specific verb and resource, clearly stating the tool's function and scope. It does not explicitly distinguish from sibling apply_negative_keyword_list, but 'campaign-level' narrows the context, so it's clear but not fully differentiated.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines3/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description implies when to use the tool by naming the target resource and describing the two-phase flow, but it does not mention alternatives, exclusions, or when not to use it. The safety note 'safest write operation' provides context but not explicit usage guidance.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the full burden and does well by disclosing the tool's offline nature, specific character limits (headlines <=30, descriptions <=90, paths <=15), and the CJK/full-width counting behavior 'matching the Google UI.' It does not detail return values or edge-case handling, but this is somewhat mitigated by the presence of an output schema.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is compact and front-loaded. Three sentences each earn their place: the purpose, the usage timing, and the specific rules. No fluff or repetition of schema details.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple validation tool with an output schema, the description covers purpose, timing, and detailed rules. It does not explain that headlines/descriptions are arrays or how invalid input is handled, but those are likely evident from the schema and output schema. Overall, it is sufficient for an agent to invoke correctly.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, so the description must compensate. It does by explaining the constraints for the key parameters: headlines and descriptions with their character limits, and paths with a limit. It does not explicitly name path1/path2, but 'paths' clearly maps to both. The explanation adds meaningful context beyond the raw schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description states a clear action: 'Check ad copy against Google's character limits' with a specific resource (ad copy) and domain (Google). It distinguishes itself from siblings like validate_pmax_assets by focusing on character limits and by highlighting 'offline, no account' as a key differentiating context.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides explicit when-to-use guidance: 'Use this while drafting, before creating anything.' It implies this is a pre-flight check before account-level actions, but does not explicitly mention alternatives or exclusions, so it lacks the full when-not/alternatives detail needed for a 5.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    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 discloses that the tool returns 'every accessible customer ID' and marks allowlisted ones, providing meaningful behavioral detail about the output. Since it's a read-only list operation, no side effects are expected, and the description adequately covers the behavior without needing to mention auth or rate limits.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is extremely concise—two sentences that get straight to the point. The first sentence states the action, and the second describes the output. Every word earns its place with no 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.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a simple, zero-parameter tool with an output schema, the description is complete. It explains what the tool lists and the specific detail about allowlisted accounts, which is the key differentiator. The output schema likely handles return format details, so the description doesn't need to elaborate further.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool has zero parameters, so there are no parameter semantics to elaborate. The description covers all necessary context about what the tool returns, which is sufficient given the absence of parameters. The empty schema means 100% coverage, but the description adds value by explaining the output's meaning.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the verb 'List' and the resource 'Google Ads accounts these credentials can reach,' immediately conveying what the tool does. It also distinguishes itself from sibling tools like list_campaigns by specifying 'accounts' and the 'accessible' scope, making it unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear context by explaining it returns all accessible customer IDs and highlights allowlisted accounts. While it doesn't explicitly mention when to use it over alternatives or exclusions, the purpose is obvious from the description, and no specific alternative is needed for a zero-parameter listing tool.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description carries the transparency burden. 'Report' indicates a read-only operation, and 'Call this first' suggests it is a safe, non-destructive starting point. It doesn't explicitly state side effects or permission requirements, but for a status/report tool this is adequately covered.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Two sentences, front-loaded with the core purpose, then a practical usage hint. No wasted words; every sentence earns its place.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The tool is simple (0 parameters), has an output schema for return values, and the description covers what it reports and when to use it. Nothing critical is missing.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    The tool has zero parameters, and the schema shows no properties. The description doesn't need to document parameter syntax. A baseline of 4 applies for tools with no parameters.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses the specific verb 'Report' and names three concrete resources: mode, allowlisted accounts, and safety limits. This clearly distinguishes it from sibling tools like list_accounts or run_audit, which focus on different aspects.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    It explicitly states when to use this tool ('Call this first if you are unsure what the server is permitted to do'), providing a clear condition. It doesn't explicitly name alternatives or exclusions, but the 'first' instruction implies precedence over other tools.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    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 transparently reveals the two-phase nature of the operation and clarifies the status field values. It does not disclose error behavior, permissions, or side effects beyond the state change, but the core preview-confirm behavior is well explained.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is concise, front-loaded with the primary purpose, and follows with a clean argument list. Every sentence earns its place; there is no redundancy or filler.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a mutation tool with no annotations and an output schema, the description covers the essential workflow and parameters. It lacks explicit mention of prerequisites, error handling, or confirmation semantics beyond 'token from preview,' but overall it provides enough context for correct invocation.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, so the description fully compensates by explaining each parameter: customer_id, campaign_id, status (with valid values), and confirm_token (with its purpose and omission rule). This adds substantial meaning beyond the bare schema definitions.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's purpose with a specific verb and resource: 'Pause or enable a campaign.' It is distinct from sibling tools like list_campaigns or update_campaign_budget, leaving no ambiguity about what action this tool performs.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear context on the two-phase workflow ('preview, then confirm') and explicitly instructs to omit confirm_token for a preview. It does not explicitly name alternatives or exclusions, but the workflow guidance is sufficient for correct usage.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description discloses the key safety trait: 'Never modifies anything' and lists the checks, which are all read-only. It also notes that the lookback window ends yesterday, adding behavioral nuance. It lacks details like rate limits or auth, but the essential safety profile is clear.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is well-structured with a summary, a list of checks, and an Args section. Every sentence adds value, and the length is appropriate for a tool with this complexity.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    The description covers the tool's purpose, safety, and parameters, while the output schema exists to handle return values. It is complete for an agent to select and invoke this tool correctly.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, but the description compensates fully with an Args section that explains each parameter: customer_id (digits, dashes stripped), days (lookback window ending yesterday, default 30), and min_spend (ignore entities below spend in account currency). This goes well beyond the schema.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description uses a specific verb 'Audit' with a clear resource ('an account') and outcome ('report what is costing money or hiding data'). It distinguishes itself from sibling tools like list_accounts or gaql_query by focusing on comprehensive read-only checks.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides clear context: it runs a comprehensive set of 12 read-only checks and explicitly states it never modifies anything, making it suitable for auditing without side effects. However, it does not explicitly mention when not to use it or compare it to alternatives.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    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 transparently explains the preview/confirm flow, including what the preview returns (current value, proposed value, percentage change) and the condition for token issuance ('If it is within limits'). However, it does not disclose error scenarios or what happens if limits are exceeded, but the output schema may cover return details.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is well-structured and appropriately sized. It opens with a one-sentence purpose, then explains the two-phase process, then lists arguments with concise explanations. No fluff; every sentence contributes to understanding.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's two-phase complexity, the description is complete. It explains the workflow, the token mechanics, and all parameters. The presence of an output schema mitigates the need to describe return structures in detail. The description fully equips 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.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, so the description must explain parameters. It does so comprehensively: customer_id as 'Account holding the campaign', campaign_id as 'Campaign whose budget changes', new_daily_budget as 'New daily amount in account currency', and confirm_token with clear omit-for-preview guidance. This adds significant meaning beyond the bare schema titles.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states the tool's purpose: 'Change a campaign's daily budget.' It uses a specific verb (change) and resource (campaign's daily budget), and the two-phase preview/confirm detail distinguishes it from sibling tools like set_campaign_status or list_campaigns.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description provides explicit usage instructions: call without confirm_token to preview, then call again with token to apply. It clearly explains the two-step process, but does not mention exclusions or alternatives (e.g., when not to use this tool). This is clear context without explicit exclusions.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the full burden for behavioral disclosure. It clearly discloses read-only behavior, restriction to SELECT queries, and inability to modify data. It also mentions the limit's default and hard cap, providing important execution context. Minor absence of pagination/error details, but core behavioral traits are well covered.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is appropriately sized: a concise purpose statement, a usage directive, and a clear args list. Every sentence earns its place, with no redundant filler or repetition of schema fields without added value.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness4/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's flexibility and the presence of an output schema, the description covers essential context: what it does, when to use it, and its security constraints. It omits details like query language specifics or potential error cases, but for a generic query tool, this is adequate and complete for most agents.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, but the description fully documents all three parameters: customer_id as account, query as a GAQL SELECT statement, and limit with default/hard cap. This adds meaning that the bare schema lacks, fully compensating for the coverage gap.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description clearly states 'Run a read-only GAQL query against an account', specifying the verb, resource, and scope. It distinguishes itself from sibling tools by positioning as a catch-all for anything not covered by packaged tools, making its purpose unique and clear.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    Explicitly provides usage context: 'Use this for anything the packaged tools do not cover.' It also states constraints (only SELECT accepted) without listing all siblings as alternatives, which is sufficient because the sibling list is visible and this tool explicitly covers the gaps.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior4/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    No annotations provided, so the description carries the full burden. It transparently states the operation is offline, requires no credentials, and is text-only, implying a non-mutating read-only check. It does not describe return behavior, but an output schema exists to cover that.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    Three short paragraphs, front-loaded with the core purpose, and every sentence adds functional information about scope, usage timing, or parameter constraints. No fluff or repetition.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's low complexity and the presence of an output schema, the description covers everything necessary: purpose, usage context, parameter constraints, scope boundaries, and sibling differentiation. It leaves nothing critical unexplained.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters4/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, so the description compensates powerfully by specifying required counts and character limits for headlines, long_headlines, descriptions, and business_name. It omits any explanation of final_url, but that parameter is optional and self-explanatory.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description opens with a specific verb and resource: 'Check Performance Max TEXT assets against Google's limits — offline.' It clearly differentiates from siblings by explicitly stating that image validation is handled by create_performance_max_campaign, not here.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    It gives explicit timing guidance ('Use this while drafting copy, before creating anything') and clarifies what it does not cover, naming the alternative tool for image validation. This provides clear when-to-use and when-not-to-use context.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations provided, the description takes on the full transparency burden. It discloses crucial behaviors: the campaign is created PAUSED, the two-phase validation prevents accidental creation, the entire operation is atomic ('If anything fails, nothing is created'), and it never uploads images ('this tool never uploads images'). It also mentions the allowlist requirement for customer_id, adding 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.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is structured effectively: it leads with the core purpose, then explains the two-phase flow, atomicity, and asset reuse, followed by a comprehensive but concise Args list. Every sentence adds necessary information, and the length is proportionate to the tool's complexity (20 parameters). It avoids redundancy and is front-loaded with the most critical facts.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a complex mutation tool with 20 parameters and two-phase behavior, the description covers all essential aspects: purpose, usage phases, atomic behavior, asset reuse, parameter semantics, and related tool guidance. An output schema exists to describe return values, and the description does not need to repeat that. The description is sufficient for an agent to invoke this tool correctly without additional context.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0%, but the description compensates by explicitly defining all 20 parameters in the Args block. It gives constraints (e.g., 'at least 3' headlines, 'max 25 characters' for business_name), examples (language_ids: '1002 = French, 1000 = English'), and clarifies optional fields (target_cpa, target_roas). This turns a bare parameter list into actionable guidance.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description opens with a specific action: 'Create a Performance Max campaign, PAUSED.' It also introduces the two-phase preview/confirm flow, which distinguishes it from simpler create tools. The resource (Performance Max campaign) and key attributes (paused, atomic, asset reuse) are clearly stated, setting it apart from siblings like create_shopping_campaign.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description explains when to use the preview vs. confirm path ('Without a token... validates... Call again with the token to create it for real'). It also directs users to gaql_query for finding existing asset IDs, acknowledging an alternative tool. While it doesn't explicitly contrast with all campaign-creation siblings, the context is clear enough for an agent to select this tool appropriately.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries the full burden. It discloses that the campaign is created paused, builds a specific structure (budget, campaign, ad group, empty product ad, exhaustive listing group tree), and the two-phase preview/confirm behavior. It also includes operational details like the mandatory excluded catch-all and the allowlisted customer_id requirement.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is well-structured: a concise summary followed by a clear Args list. Every sentence provides meaningful information, from the PAUSED state to the exhaustive listing group tree, with no wasted words. It is appropriately detailed for a complex tool.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    Given the tool's complexity (12 params, two-phase flow, detailed construction logic), the description is complete. It covers what the tool does, how to use it, all parameter details, and the preview/confirm behavior, while the output schema presumably explains the return value.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema coverage is 0%, but the description provides thorough explanations for all 12 parameters, adding meaning beyond the schema. Examples include clarifying feed_label replaces sales_country, dimension allowed values, campaign_priority semantics, and language/geo ID formats. This fully compensates for the lack of schema descriptions.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description explicitly states 'Create a Standard Shopping campaign, PAUSED' with a specific verb and resource, clearly distinguishing it from the sibling create_performance_max_campaign. It further details the two-phase creation, making the purpose unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines4/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description explains the two-phase usage: omit confirm_token for a preview, then call again with the token to create. It also notes the prerequisite that customer_id must be allowlisted. However, it does not explicitly mention when to use this over alternatives like PMax, though the name and context imply it.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

  • Behavior5/5

    Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

    With no annotations, the description carries full burden, and it excels. It discloses idempotence ('Running it twice does nothing'), the reuse behavior of existing lists, the notion of a preview phase, and that only missing keywords/links are added. These are non-obvious traits an agent needs to know for safe invocation.

    Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

    Conciseness5/5

    Is the description appropriately sized, front-loaded, and free of redundancy?

    The description is well-structured with a clear summary first, then usage guidance, idempotence note, and an Args block. Each sentence adds value—no filler. The length is justified by the tool's complexity (two-phase, multiple parameters) and it is front-loaded with the most critical information.

    Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

    Completeness5/5

    Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

    For a tool with 6 parameters and two-phase behavior, the description covers all essential aspects: purpose, when to use vs alternatives, idempotence, preview/confirm flow, and parameter semantics. The output schema exists, so return values need no explanation. There are no obvious gaps for an agent to select and invoke correctly.

    Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

    Parameters5/5

    Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

    Schema description coverage is 0% (context signals), so the description is the sole source of parameter meaning. It provides an 'Args' section explaining every parameter, including match_type guidance ('PHRASE is the usual choice') and confirm_token semantics ('Omit for a preview'). This fully compensates for the lack of schema descriptions.

    Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

    Purpose5/5

    Does the description clearly state what the tool does and how it differs from similar tools?

    The description opens with 'Create or extend a SHARED negative keyword list', which is a specific verb-resource pair and clarifies the scope (shared list). It explicitly distinguishes from the sibling tool add_negative_keywords by stating when to prefer this tool, making the purpose unambiguous.

    Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

    Usage Guidelines5/5

    Does the description explain when to use this tool, when not to, or what alternatives exist?

    The description gives explicit guidance: 'Prefer this over add_negative_keywords whenever the same exclusions apply to several campaigns' and explains why (one edit updates all). It also covers the two-phase preview/confirm workflow, giving the agent clear context for when to invoke this tool and how to approach it.

    Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

GitHub Badge

Glama performs regular codebase and documentation scans to:

  • Confirm that the MCP server is working as expected.
  • Confirm that there are no obvious security issues.
  • Evaluate tool definition quality.

Our badge communicates server capabilities, safety, and installation instructions.

Card Badge

google-ads-mcp-plus MCP server

Copy to your README.md:

Score Badge

google-ads-mcp-plus MCP server

Copy to your README.md:

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/monsieurgoodmood/google-ads-mcp-plus'

If you have feedback or need assistance with the MCP directory API, please join our Discord server