Skip to main content
Glama
adeshsarwan

google-ads-function-gateway

by adeshsarwan

Server Quality Checklist

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

  • Disambiguation4/5

    Tools are mostly distinct: list vs details pairs for accounts and campaigns are clear, and cost vs performance have separate purposes. There is minor potential confusion between get_campaign_cost and get_campaign_performance since cost could be considered part of performance, but the descriptions clarify the difference.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern with snake_case, such as list_accounts, get_account_details, and list_campaigns. The naming is predictable and makes the tool's purpose clear.

    Tool Count5/5

    Six tools is a well-scoped set for a Google Ads read-only gateway. Each tool covers a meaningful access or reporting need without unnecessary redundancy.

    Completeness4/5

    The tool surface covers core account discovery, campaign listing, details, cost, and performance reporting. It lacks deeper campaign management or ad-level reporting, but for a read-only function gateway the major workflows are covered.

  • Average 3.6/5 across 6 of 6 tools scored. Lowest: 2.9/5.

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

    • No community issues in the last 6 months
    • 3 commits in the last 12 weeks
    • No stable releases found
    • No critical vulnerability alerts
    • No high-severity vulnerability alerts
    • No code scanning findings
    • CI status not available
  • Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.

    If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.

    MCP servers without a LICENSE cannot be installed.

  • 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?

    Annotations already declare read-only, idempotent, non-destructive behavior, so the safety profile is covered. The description adds a useful access-related detail about allow-listing, but it does not explain output shape, pagination, result limits, or how filters interact.

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

    Conciseness4/5

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

    The description is a single efficient sentence with no filler: the action and main constraint are front-loaded. It is appropriately concise, though slightly terse for a tool with six parameters.

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

    Completeness2/5

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

    With no output schema, six parameters, and overlapping sibling tools, the description is incomplete. It leaves important context implicit: what metrics 'performance' includes, how date parameters behave, how multiple customers are handled, and when this tool should be preferred over siblings.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description carries the burden of explaining parameter meaning, but it only vaguely refers to customers. It does not clarify start_date/end_date formats, status filtering, campaign_ids, or how customer_id and customer_ids relate.

    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 clearly identifies the action ('Return'), the resource ('campaign performance rows'), and a key scoping constraint ('explicitly allow-listed customers'). It is distinguishable from siblings like get_campaign_details or get_campaign_cost, though it does not explicitly contrast itself with them.

    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?

    There is no guidance about when to use this tool versus the sibling tools such as get_campaign_cost, get_campaign_details, or list_campaigns. The allow-listed customer phrase implies an access restriction, but prerequisites and alternative conditions are left unstated.

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

  • Behavior3/5

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

    Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds the 'explicitly allow-listed customer' eligibility/auth context, but it does not disclose return shape, error behavior, or what happens for non-allow-listed customers.

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

    Conciseness4/5

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

    The description is a single sentence with no filler; it front-loads the verb and resource and adds one relevant constraint. The phrase 'explicitly allow-listed' is slightly awkward but still compact and purposeful.

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

    Completeness3/5

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

    For a simple two-parameter read tool with strong annotations, the description is minimally adequate but leaves gaps: return content is undefined, parameter semantics are undocumented, and there is no positioning against sibling tools. An agent can infer much from the schema and tool name, but the description alone does not fully support correct invocation.

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

    Parameters2/5

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

    Schema description coverage is 0%, and the description mentions 'customer' and 'campaign' only generically without explaining what customer_id or campaign_id mean, how they relate, or what values are valid. The description does not compensate for the missing parameter documentation.

    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 uses a specific verb ('Return') and resource ('details for one campaign'), and adds a scope constraint ('explicitly allow-listed customer'). It distinguishes from list_campaigns by saying 'one campaign' and from cost/performance siblings by saying 'details', though 'details' remains somewhat generic and siblings are not explicitly named.

    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 use when a single campaign's general details are needed from an allow-listed customer, but it does not provide explicit when-to-use or when-not-to-use guidance. It also does not reference alternatives like get_campaign_cost, get_campaign_performance, or list_campaigns.

    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?

    Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false, so the safety profile is well covered. The description adds useful context beyond annotations by emphasizing the authorization restriction and the single-customer scope.

    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 a single sentence with no filler, front-loading the verb, resource, and key scope constraint. Every word earns its place.

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

    Completeness3/5

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

    The description is adequate for a simple read-only list operation, especially with strong annotations and self-explanatory parameter names. However, with no output schema and 0% parameter coverage, it could still use more detail about return shape, optional filters, or guidance on selecting the right sibling tool.

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

    Parameters1/5

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

    Schema description coverage is 0%, and the description does not explain any of the five parameters beyond the implicit customer scope. It provides no meaning or allowed values for status, campaign_ids, channel_type, or campaign_name_contains, leaving the agent to guess from parameter names alone.

    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 specific verb ('List'), a concrete resource ('campaigns'), and a clear scope ('one explicitly allow-listed Google Ads customer'). This easily distinguishes it from sibling tools like list_accounts or get_campaign_details without needing to inspect schemas.

    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 allow-listed customer constraint gives clear context about when the tool applies, and 'list' implies a broad listing use case. However, it does not explicitly mention when to prefer this over siblings like get_campaign_details, get_campaign_cost, or get_campaign_performance, so the routing guidance is only implied.

    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?

    Annotations already carry the read-only, idempotent, and non-destructive profile, so the description's burden is lower. It adds meaningful context by disclosing the allow-list requirement and the daily-row granularity, which are behavioral constraints not present in the structured metadata.

    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 a single, tightly worded sentence with no filler. The core action and resource are front-loaded, and the access constraint is appended without bloating the text.

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

    Completeness2/5

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

    There is no output schema and no parameter documentation in the schema, so the description is the only source of operational detail. It fails to explain date range behavior, optional filters, return shape, or failure behavior for non-allow-listed customers, leaving important invocation details unspecified.

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

    Parameters2/5

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

    Schema description coverage is 0%, so the description needed to compensate for missing parameter meaning. It only contextualizes customer_id through the allow-listed customer phrase; start_date, end_date, campaign_ids, and status semantics remain unexplained.

    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 specific verb and resource: 'Return daily campaign cost rows'. The qualifier 'for an explicitly allow-listed customer' adds useful scope and distinguishes this from sibling tools like get_campaign_details or get_campaign_performance, which target different data.

    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 this tool: when daily campaign cost rows are needed. However, it does not explicitly mention alternatives, exclusions, or when another sibling tool would be more appropriate, so routing guidance is left mostly to inference.

    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?

    Annotations already declare readOnly, idempotent, and non-destructive behavior, so the safety profile is covered. The description adds the key behavioral constraint that only explicitly allow-listed customers are valid, and the verb 'Return' reinforces that this is a read operation.

    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 one sentence with no filler, and the core constraint ('explicitly allow-listed') is front-loaded. Every word earns its place.

    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 a single required parameter and annotations that establish read-only/idempotent/non-destructive behavior, the description covers the essential precondition and target resource. The return payload is not described, but for a simple single-account lookup with no output schema, this is a minor gap.

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

    Parameters3/5

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

    The single parameter's purpose is mostly inferable from its name and the description's 'Google Ads customer' phrasing, and the allow-list constraint adds meaning about valid values. However, with 0% schema coverage, the description still does not specify customer_id format (e.g., hyphens vs. plain numeric ID) or how to obtain an allow-listed ID.

    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 ('Return') and names the exact resource ('details for one explicitly allow-listed Google Ads customer'). It clearly distinguishes this tool from list_accounts by scoping it to a single customer and adds the allow-listed constraint.

    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 phrase 'explicitly allow-listed' serves as a clear precondition: the tool should only be used for customers that have been pre-approved. It does not explicitly name alternatives like list_accounts, but the single-customer scope provides enough context for selection.

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

  • Behavior3/5

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

    Annotations already cover the safety profile (readOnlyHint, idempotentHint, openWorldHint, destructiveHint false). The description adds useful scoping context—'accessible' accounts and MCC-based discovery—but does not disclose return format, pagination, or configuration prerequisites. Given the annotation coverage, this is a reasonable level of added 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 a single, front-loaded sentence that states the action, resource, and scope without any filler. Its brevity is appropriate for a tool with no parameters and a simple discovery purpose.

    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 zero-parameter, read-only list tool with rich annotations, the description is nearly complete. It does not explicitly state the return shape (e.g., list of account IDs and names) or mention that no filters are supported, but the tool's simplicity and clear focus keep the gap small.

    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 schema coverage is 100% by default. The description's reference to 'configured MCC context' clarifies the implicit environment/context, but there are no parameter semantics that need explanation. Baseline of 4 for zero parameters is appropriate.

    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 ('Discover') and resource ('accessible Google Ads accounts'), and adds scope by mentioning the configured MCC context. This clearly distinguishes it from sibling tools like list_campaigns and get_account_details.

    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 clearly implies an account-discovery context and gives the relevant environmental framing ('configured MCC context'). However, it does not explicitly state when to use this tool versus siblings or mention exclusions, though the distinction is fairly obvious from the names.

    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-client MCP server

Copy to your README.md:

Score Badge

google-ads-mcp-client 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/adeshsarwan/google-ads-mcp-client'

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