MCP server for Google AI Search Mode with CAPTCHA handling. Free, token-efficient web research with source citations.
Single tool 'search_ai' has a well-structured input schema with all parameters typed and described. The tool description is comprehensive (270+ chars) and clearly states what the tool does, its features, and prerequisites (CAPTCHA handling). However, the output schema is not documented in the source code, the SearchResult return type is inferred from types but not declared as part of the tool definition. The server lacks error handling guidance that tells LLMs what to do when a CAPTCHA is detected or the search fails. Parameter descriptions are clear and specific (e.g., 'timeout in milliseconds for the search (default: 120000 = 2 minutes)'), exceeding the baseline of 72 chars average. The tool follows verb_noun naming (search_ai) and accepts optional parameters with sensible defaults (headless=true, timeout_ms=120000, save_to_file=false). No tool annotations (readOnlyHint, destructiveHint, idempotentHint) are present despite the tool being READ_ONLY.
Search Google AI Mode (udm=50) and return AI-generated summary with citations. Returns markdown-formatted AI response with inline citations [1][2] and source list. Features: - Automatic CAPTCHA detection and handling - Source extraction with citations - Clean markdown formatting - Stealth mode for anti-detection - Optional file saving with timestamp and sanitized filename Note: If CAPTCHA is detected, you will be prompted to solve it in a visible browser window.
Output schema not documented. The tool handler returns a SearchResult type but the tool definition does not include a structured 'outputSchema' field or documentation of what fields the LLM should expect (success, markdown, sources, error, etc.). LLMs need to know what to extract from the response.
No tool annotations. The search_ai tool is READ_ONLY (does not modify state) but lacks the readOnlyHint annotation in the tool definition. Tool annotations guide agents on whether a call can be retried safely and whether it requires confirmation.
Error handling does not guide recovery. When a CAPTCHA is detected, the description says 'you will be prompted to solve it in a visible browser window' but the tool handler does not document actionable next steps for the LLM (e.g., 'If CAPTCHA is detected, the user must intervene or set headless=false to see the browser'). The error response includes captchaRequired flag but no guidance on what the LLM should do.
Inferred effective spec: 2026-07-28+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | C | 65 | 2026-07-28+ | v2 |
| 2026-03-09 | D | 50 | - | v1 |
No pagination or result limiting for markdown/sources output. The tool returns AI-generated markdown and source lists but does not document a maximum response size, limit parameter, or guidance on handling very long responses that might exhaust context windows. The description does not state if results are capped.
Parameter 'filename' has an undocumented dependency on 'save_to_file'. The description says '(only used if save_to_file is true)' but does not explicitly state that filename is required or optional, or what happens if both are provided vs. only save_to_file=true with no filename. This ambiguity could cause LLMs to pass incomplete parameters.