MCP server for a car marketplace that provides tools for searching, comparing, recommending, and retrieving details about cars
Four tools with basic schemas and minimal descriptions. All tools have input schemas with proper types and required flags, but descriptions are generic (10-50 chars) and lack context for LLM selection. No output schemas documented. Parameters lack enums, ranges, or format constraints. No error handling guidance. search_cars_tool and recommend_cars_tool are functionally identical (same params, similar intent), violates single-responsibility principle. get_car_details_tool returns hardcoded localhost URLs, a security/portability issue. No pagination support despite returning lists.
Get cars requested by the user for comparison.
Get complete details of a specific car.
Find cars matching the user's requirements.
Search available cars in the marketplace.
Duplicate tool intent: search_cars_tool and recommend_cars_tool have identical parameter signatures and similar descriptions. LLMs cannot distinguish when to use each. Merge into one canonical tool or document the semantic difference explicitly.
Descriptions are too short (10-50 chars) and lack context. 'Search available cars in the marketplace' does not explain WHEN to use this vs recommend_cars_tool, what filters do, or what the response contains. Expand to 100-200 chars with selection guidance.
No output schemas documented. LLMs cannot plan downstream calls or extract required fields (e.g., car_id for compare_cars_tool). Document return type structure with field names and types.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2026-07-28+ | v2 |
Parameters lack constraints. min_price, max_price, min_year, max_year, min_mileage, max_mileage have no documented ranges or validation rules. fuel_type and transmission accept free-form strings instead of enums, inviting hallucinated values.
get_car_details_tool hardcodes 'http://127.0.0.1:8000/' in image URLs. This breaks in production and leaks internal infrastructure details. Use environment-based URL construction or return relative paths.