A FastMCP server that provides Google Custom Search functionality. This server exposes a tool for performing Google searches and returning formatted results.
Single tool with adequate naming and basic schema, but significant gaps in parameter descriptions and output documentation. Tool name 'search_google' follows verb_noun convention and is clear. Input schema present with types and defaults, but parameter descriptions are minimal (under 50 chars each). Output schema is inferred from code but not formally documented in the tool definition. Error handling returns structured responses but lacks actionable recovery guidance. No tool annotations (readOnlyHint, etc.) despite being READ_ONLY. Descriptions meet minimum length (194 chars) but lack context on when to use vs alternatives or prerequisites.
Perform a Google search and return formatted results. This function uses Google Custom Search API to search the web based on the provided query. It formats the results into a consistent structure and handles potential errors.
Parameter descriptions are minimal and lack format/constraint guidance. 'query' and 'num_results' descriptions do not specify valid ranges, format expectations, or examples of what constitutes a good query.
Output schema is not formally documented. Tool docstring describes return structure in prose, but no JSON Schema is visible in the tool definition. LLMs cannot reliably parse the response structure without explicit schema.
No tool annotations present. Tool is READ_ONLY but lacks readOnlyHint annotation. This prevents clients from optimizing caching, retry logic, or permission checks.
Error messages lack recovery guidance. HttpError and generic exceptions return error strings but do not suggest next steps (e.g., 'Check API key configuration' or 'Verify Custom Search Engine ID').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 52 | 2026-07-28+ | v2 |
No pagination support. Tool accepts num_results but does not support offset/page parameters or return a next_cursor. Large result sets cannot be iterated.