Google Ads API integration for Model Context Protocol (MCP)
Critical failures across all dimensions. The single tool 'list_accounts' has a truncated description ('Lists all') that provides zero context for LLM selection. No input schema is visible in the source code, the tool is registered with an empty dict {}. No output schema is documented. The tool name lacks clarity about what 'accounts' means in the Google Ads context (customer accounts? ad accounts?). No parameter descriptions, no error handling guidance, no pagination support despite the name suggesting a list operation. The server code shows authentication logic but no tool implementation details, making it impossible to verify actual behavior.
Lists all
Tool description is incomplete: 'Lists all' (8 chars) provides no context. Must explain what accounts are returned, when to call this tool, and what fields are included in the response.
Input schema is empty ({}). No parameters are defined or documented. If pagination, filtering, or sorting are supported, they must be explicit parameters with descriptions and type constraints.
Output schema is not documented. LLMs cannot plan downstream calls without knowing what fields are returned (e.g., account_id, account_name, status, currency). Must document the response structure.
Tool name 'list_accounts' is ambiguous in Google Ads context. Does it return customer accounts, ad accounts, or something else? Clarify with a more specific name like 'list_customer_accounts' or 'list_ad_accounts'.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 26 | <=2025-11-25 | v2 |
No pagination support visible. List operations must accept limit and offset/cursor parameters and return a total count or next_cursor to handle large result sets without blowing context windows.