MCP server for Serper Google Search Nikola 8 API with authentication and HTTP 402 payment protocol support
Single tool 'google_search' with significant quality gaps. The tool has a description (194 chars, within baseline 34-392), but the input schema and parameter descriptions are problematic. The 'q' parameter is marked optional=true despite being described as 'the only required parameter', a critical contradiction. No output schema is documented. The server uses FastMCP with D402 payment protocol but lacks tool annotations (readOnlyHint, destructiveHint, idempotentHint) for protocol alignment. Error handling is not visible in the tool definition, no guidance on what happens if the search fails, if the API key is missing, or if the Serper API returns an error.
Perform a Google search using a single search query keyword. This endpoint takes only one required parameter: the search query string. Returns Google search results including organic results, answer boxes, and related searches.
Parameter 'q' marked optional=true but description says 'the only required parameter', critical contradiction. LLMs will treat it as optional and omit it.
Example values embedded in parameter description ('artificial intelligence', 'python programming', 'best restaurants near me'). Use enum constraints or pattern validation instead.
Output schema not documented. LLMs cannot plan downstream operations or extract fields without knowing what the response contains. Serper API returns organic results, answer boxes, related searches, none of this is exposed in the tool definition.
No error handling documented. Tool definition does not specify what happens if search fails, API key is invalid, Serper rate limits are hit, or the query is malformed.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 53 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 30 | - | v1 |
Tool annotations missing. FastMCP supports readOnlyHint, destructiveHint, idempotentHint. google_search is read-only (marked Risk: READ_ONLY in metadata) but this is not formalized as a tool annotation in the schema. Agents need this for safe reasoning.
Parameter description too long (257 chars) and contains instruction text ('Do not include additional parameters, only provide the search query string'). Parameter descriptions should focus on semantics, not API usage instructions. Keeps agents focused on what the param does, not how to use the endpoint.