MCP server that finds the cheapest gas stations in a given city or zip code by scraping GasBuddy
Single tool with basic schema and description. Tool name follows verb_noun pattern (search_gas_prices). Description is adequate (71 chars) but lacks context on when to use vs alternatives, prerequisites, or failure modes. Input schema present with types and descriptions for both parameters. However, output is returned as plain string rather than structured JSON, forcing LLM to parse unstructured text. No error handling guidance, no pagination support, no output schema documentation. Parameter descriptions are minimal (location: 67 chars, fuel_type: 68 chars) but present. Missing critical patterns: no recovery guidance on failures, no rate limiting, no timeout documentation, no idempotency guarantees.
Finds the cheapest gas stations in a given city or zip code.
Output returned as unstructured string instead of structured JSON object. LLM must parse free-text response, wasting tokens and increasing hallucination risk.
No output schema documented. LLM cannot predict response structure or plan downstream operations. Tool description does not specify what fields are returned.
No error handling guidance. When scraper fails (site structure change, network timeout, invalid location), response is generic 'No gas prices found' with no recovery path suggested to LLM.
Tool description lacks context on when to use it, prerequisites, or limitations. Does not mention that results depend on GasBuddy site availability or that scraping may fail if site structure changes.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 54 | 2026-07-28+ | v2 |
No rate limiting, timeout documentation, or idempotency guarantees. Agents calling this tool in loops risk overwhelming GasBuddy or hitting rate limits without guidance.