MCP server for searching and analyzing Thai fuel station availability data from the XYZradar API
Two tools with basic verb-noun naming (search_*, get_*) but significant quality gaps. search_fuel_status has a minimal 1-field schema with no parameter description. get_fuel_summary has an empty schema. Both descriptions are present but generic (under 100 chars). No output schemas documented. No error handling guidance. No parameter validation hints. Tool logic is simple read-only operations, but definitions lack the rigor expected for production use. Schemas are visible in mcp_server.py but lack depth; descriptions do not explain WHEN to use each tool or what structure is returned.
Get overall summary of fuel status and provinces with fuel shortages.
Search for fuel availability in Thailand by station name, province, or district.
Parameter descriptions missing. 'query' parameter in search_fuel_status has no description explaining what constitutes a valid search term (station name, province, district, or combination). LLMs cannot infer intent.
Output schemas not documented. Both tools return plain text strings, but no schema describes the structure of returned data (e.g., list of fuel reports with fields: stationName, province, diesel, benzine95, confidence). LLMs cannot parse or chain results.
No error handling guidance. If data file is missing or malformed, tools return plain text errors ('Data file not found'). No recovery hints or actionable next steps for the LLM.
get_fuel_summary has empty input schema (no properties). Schema is valid but provides zero guidance on what the tool does or when to call it. Description is generic ('Get overall summary').
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 48 | 2026-07-28+ | v2 |
No result limits or pagination. search_fuel_status returns up to 5 results hardcoded; get_fuel_summary returns top 3 provinces. Limits are not documented in descriptions, and no pagination mechanism exists for larger datasets.