RAWG MCP — wraps the RAWG video games database API (rawg.io). The largest open video game database: 800k+ games with ratings, Metacritic scores, platforms, genres, developers, and publishers.
RAWG MCP has clear, well-structured tool definitions with good naming conventions (all start with action verbs: search_, get_, list_). Descriptions are present and reasonably detailed (avg ~150 chars). Input schemas are properly typed with JSON Schema. However, critical gaps exist: (1) output schemas are NOT documented, LLMs cannot predict response structure; (2) parameter descriptions contain example values (e.g., 'e.g. "elden ring", "mario"') which LLMs tend to reuse literally; (3) no error handling guidance, rawgGet returns {error, message} but tools don't document recovery paths; (4) _apiKey parameter exposed in tool inputs violates secret-injection pattern; (5) no pagination guidance despite search_games returning potentially large result sets. search_games lacks 'required' array, making query optional when it should be required.
Get full details for a single video game: description, ratings, Metacritic score, platforms, genres, developers, publishers, ESRB rating, and playtime. Example: get_game({ id: "the-witcher-3-wild-hunt" })
List all video game genres in the RAWG database, with game counts per genre (e.g. Action, RPG, Indie, Strategy).
List all gaming platforms in the RAWG database, with game counts per platform (e.g. PC, PlayStation 5, Xbox Series X, Nintendo Switch).
Search the RAWG video game database by name, genre, or platform. Returns games with ratings, Metacritic scores, release dates, platforms, and genres. Example: search_games({ query: "zelda", ordering: "-metacritic" })
Output schemas not documented. LLMs cannot predict response structure (fields, types, nesting). search_games returns {count, games[]} but this is inferred from code, not declared in tool definition.
_apiKey parameter exposed in tool inputs violates secret-injection pattern. API keys should never appear as tool parameters, they leak into logs and traces. Use server-side injection via environment or gateway.
Parameter descriptions contain example values (e.g., 'e.g. "elden ring", "mario"'). LLMs reuse examples literally rather than adapting to context. Replace with enum constraints or format declarations.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | 2026-07-28+ | v2 |
No error handling guidance. rawgGet returns {error, message} on failure, but tools don't document what errors are possible, whether they're retryable, or what the LLM should do next. E.g., 'api_key_required' should suggest 'Ensure RAWG API key is configured.'
search_games query parameter not marked required. Query is essential for search but inputSchema.required is missing, allowing LLMs to call search_games() with no query, which will fail or return all games.