SEO Keywords (Google Ads volume) MCP — exact Google Ads search volume via DataForSEO (dataforseo.com).
Single tool with complete schema and reasonable description. Tool name lacks action verb (should be 'get_seo_keyword_google_ads_volume'). Description is 380 chars (within 10-1024 range) but includes example values that LLMs may reuse literally. All parameters have types and descriptions. Output schema is documented in code but not exposed to callers. Error handling is present but generic. No parameter validation constraints (e.g., max 10 keywords stated in description but not enforced via schema maxItems). Secrets properly injected via _apiKey parameter (acceptable pattern for this context, though ideally server-side). Overall: functional but misses several production patterns.
Exact Google Ads search volume for `<keyword>` — Google's own monthly search-volume numbers (plus competition and CPC) from the Ads API, for up to 10 keywords. Use when you specifically need Google Ads figures; for general SEO volume + keyword difficulty, prefer seo_keyword_overview (cheaper). Example: seo_keyword_google_ads_volume({ keywords: ["running shoes"], location_code: 2840, _apiKey: "your-base64-key" })
Tool name does not start with action verb. 'seo_keyword_google_ads_volume' is a noun phrase; should be 'get_seo_keyword_google_ads_volume' to signal the action clearly to LLMs.
Description includes example values ('running shoes', 'trail shoes') that LLMs may reuse literally in real calls. Replace with formal constraints (enums, patterns) or remove examples.
Input schema lacks maxItems constraint on 'keywords' array. Description states 'max 10' but schema does not enforce it. Add 'maxItems': 10 to prevent invalid requests.
Output schema not documented in tool definition. Callers cannot see that response includes 'location_code', 'language_code', and 'keywords' array with 'keyword', 'search_volume', 'competition', 'cpc' fields. Add outputSchema to tool definition.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
Error messages are generic ('DataForSEO auth failed', 'HTTP 401'). Should include recovery guidance: 'Check _apiKey is base64(login:password) and account is funded. Re-encode and retry.'