MCP server for managing drift racing events, pilots, cars, qualifications, and battle brackets
Server has 13 tools with basic schemas and descriptions, but significant gaps prevent production use. 4 tools (update_pilot, update_event, update_car, record_qualification_run) lack visible descriptions entirely, automatic 0 on description dimension. Parameter descriptions are sparse or missing across most tools. Output schemas are undocumented. Error handling is minimal (generic catch-all in index.ts). No tool annotations (readOnlyHint/destructiveHint). Naming is verb-first and clear, but parameter naming lacks type suffixes (e.g., 'pilotId' vs 'pilot_id'). No pagination support on query_database despite accepting arbitrary Prisma queries. Destructive tools (delete_*) have no confirmation or dry-run pattern.
Adds a new car and links it to an existing pilot.
Creates a new drifting event/round.
Registers a new pilot in the system, optionally attaching a car to them immediately.
Removes a car from the database (e.g., if it was totaled or sold).
Deletes an event.
Removes a pilot from the system (retires or disqualifies them). This will cascade or require deleting their cars/results depending on schema.
Generates the battle bracket (e.g., Top 32 or Top 16) for a specific event based on qualification results.
Four tools (update_pilot, update_event, update_car, record_qualification_run) have no visible descriptions in source code.
No parameter descriptions visible for most tools. Rubric requires every input parameter to have a description explaining what it controls. LLMs cannot infer parameter meaning from names alone.
No output schemas documented. Rubric requires documenting return types so LLMs know what fields to expect for downstream tool calls and data extraction.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 45 | 2026-07-28+ | v2 |
Get the Prisma schema to understand available tables and relations.
Universal read-only database tool. Accepts model and Prisma findMany queryArgs.
Destructive tools (delete_pilot, delete_event, delete_car) lack confirmation or dry-run pattern. Agents make mistakes, irreversible operations should support a confirm_before_execute pattern.
query_database accepts arbitrary Prisma queryArgs with no pagination support, limit enforcement, or result capping. Large result sets will blow context windows. Rubric requires pagination with limit/offset and total count.