A video match database and search application for fighting game tournaments, with support for adding, editing, and approving match data.
KusaGames exposes 11 tools via HTTP/Express but has significant quality gaps. Tool naming is reasonably clear (search, addMatch, editMatch, etc.) but descriptions are inconsistent and often lack critical context. Parameter schemas are present but incomplete, many parameters lack proper type constraints and validation guidance. Error handling is minimal; responses are generic HTTP status codes without actionable recovery guidance. The server uses a custom authentication scheme (cookie tokens) but does not validate destructive operations (delete, approve) have appropriate confirmation patterns. Output schemas are not documented in the source, making it impossible for LLMs to plan downstream tool calls. Schema quality is further hampered by missing enums for constrained fields (winner must be '1', '2', or 'D' but this is only mentioned in descriptions, not enforced in schemas). Overall, this is a functional but immature tool suite that would require significant refinement before production use.
Add a new match to a video with player characters, names, time, and winner information
Approve a provisional video submission (move from provisional to approved status)
Delete a match from a video
Delete a provisional video submission
Download match data file (restricted to admin)
Edit an existing match in a video
Edit video metadata including date and tags
Get character data and player statistics for a specific character
Output schemas are not documented. No tool response structure is defined in the source, making it impossible for LLMs to infer what fields to expect or how to chain tools together.
Constrained input values (winner: '1'|'2'|'D', page numbers, match indices) are mentioned only in descriptions, not enforced as enum schemas. LLMs cannot see valid options and may hallucinate invalid values.
Destructive operations (deleteMatch, deleteProvVideo) lack confirmation or dry-run patterns. An agent could delete a video or match without a review step, risking data loss.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 41 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 11 | - | v1 |
Get statistics based on type (all-players, chars, player, or matchup)
Report an issue with a match
Search for matches based on player names, characters, winner, and pagination parameters
Error responses are generic HTTP status codes (400, 500) with minimal context. Errors like 'No!', 'Couldn't find the video', 'Couldn't get the video id' give agents no guidance on recovery steps or what went wrong.
Parameter descriptions are inconsistent in detail and tone. Some describe the constraint (e.g. 'YouTube video ID (11 characters)') while others are vague (e.g. 'Match winner'). Inconsistency confuses LLMs about which parameters are strict vs flexible.
Authentication is checked via cookies with hardcoded user names (e.g., 'Nate' in downloadMatchData). No tool declares required permissions or scopes. An LLM cannot tell which tools require auth and what level.
Parameters like 'idx' (report) vs 'orderIndex' (editMatch) use inconsistent naming for the same concept (match position in video). LLMs must reason about field name mappings, increasing error likelihood.