MCP Tool that can utilize multiple search engines and processing to provide AI ready results
serp-it has three well-defined tools with clear names (search, search_fetch, fetch) and comprehensive descriptions (130-180 chars each). All tools have documented input schemas with proper type constraints (minLength, maxLength, optional flags). However, output schemas are inferred from Zod definitions in code rather than explicitly exposed in tool registration, creating ambiguity about what LLMs should expect. Tool annotations (readOnlyHint) are present on all three tools, which is excellent. Parameter descriptions are thorough and include usage guidance (e.g., 'Use quotes for exact phrases'). The resource capability (serp-it://capabilities) and three prompts (research, fact-check, compare-sources) add value but don't substitute for tool-level clarity. Main gaps: (1) Output schemas not directly visible in tool registration payloads, LLMs must infer structure from execution; (2) No explicit error handling guidance in tool descriptions (what happens on network failure, invalid URL, unsupported MIME type?); (3) search_fetch's maxFetch parameter lacks guidance on timeout/performance implications of large fetches; (4) No idempotent/confirmation patterns for potentially expensive operations.
Fetch a URL and render its content as Markdown. Supports regular HTML pages and PDF files. Perfect for reading specific pages after searching.
Search the web across multiple engines (Brave, DuckDuckGo, Bing, Yahoo, AOL, Startpage, Yandex) and return deduplicated results. Use this for quick discovery of relevant URLs without fetching page content. Wrap important keywords in quotes for exact matching.
Search the web and fetch full page content from the top results. Combines web search with page rendering to markdown for comprehensive information gathering. Perfect for research and detailed information needs.
Output schemas are defined in Zod but not explicitly registered with tools, LLMs must infer response structure from execution or documentation rather than from formal schema declarations.
No error handling guidance in tool descriptions. What happens if a URL returns 404, timeout, unsupported MIME type, or malformed PDF? Descriptions should include recovery paths.
search_fetch's maxFetch parameter lacks performance/timeout implications. Fetching 100 pages could be slow or fail; description should warn about practical limits and timeout behavior.
fetch tool accepts any URL without validation guidance. No mention of timeout, max response size, or supported content types. Should document what happens with large PDFs, redirects, or authentication-required pages.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 59 | 2025-06-18+ | v2 |
| 2026-03-09 | F | 0 | - | v1 |
Region parameter uses loose string type (minLength 2, maxLength 16) without enum constraint. Should provide enum of supported locale codes (en-US, fr-FR, etc.) to prevent hallucinated values.