Serper MCP Server supporting search and webpage scraping
Two tools with complete schemas and descriptions, but significant gaps in parameter documentation and error handling. google_search has 16 parameters with good descriptions (10-50 chars each), meeting baseline expectations. scrape has minimal parameter detail. Both tools lack output schema documentation, error recovery guidance, and actionable error messages. No tool annotations (readOnlyHint/destructiveHint) despite READ_ONLY risk classification. Descriptions are adequate (100-150 chars) but could be more LLM-optimized per pattern:tool-description baseline (194 chars avg). Parameter descriptions are present but inconsistent in depth.
Tool to perform web searches via Serper API and retrieve rich results. It is able to retrieve organic search results, people also ask, related searches, and knowledge graph.
Tool to scrape a webpage and retrieve the text and, optionally, the markdown content. It will retrieve also the JSON-LD metadata and the head metadata.
Missing output schema documentation. Neither tool documents what fields are returned, forcing LLMs to guess structure and plan downstream calls blindly.
No error recovery guidance. Tools throw generic errors ('failed to search', 'failed to scrape') without actionable next steps or error classification (retryable vs user-fixable).
Missing tool annotations. Both tools marked READ_ONLY but lack readOnlyHint in schema. Agents cannot infer safety properties from definitions alone.
scrape parameter descriptions lack format/constraint detail. 'includeMarkdown' has no guidance on output format changes; 'url' has no validation rules (must be http/https, max length, etc.).
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
google_search required parameters (q, gl, hl) lack justification. Why are gl and hl mandatory when described as 'optional'? Contradictory schema forces LLM confusion.