MCP server for fetching and analyzing ProtonDB Linux/Proton game compatibility reports
Six tools with clear verb-noun naming (search_*, get_*, analyze_*). All have descriptions (avg 120 chars, within baseline 34-392). Input schemas present with types and descriptions for all parameters. Output schemas not explicitly documented in source. Error handling minimal, no recovery guidance or actionable error messages visible. Tool composition is sound: each tool has one responsibility, and outputs chain well (appId flows through multiple tools). Parameter constraints use enums (verdict, match, sort) appropriately. No secrets exposed as parameters. Missing: explicit output schema documentation, error classification, and per-tool permission declarations.
Aggregate ProtonDB reports for a game into compatibility patterns: verdict breakdown, working rate, best Proton versions, launch options, environment variables, fault breakdown, and representative notes
Aggregate all ProtonDB reports matching an environment keyword (e.g. 'nixos', 'bazzite', 'wayland') into compatibility patterns for cross-game analysis
Fetch Steam game details (title, description, release date, genres, tags) for a given app ID
Fetch individual ProtonDB reports for a game with optional filtering by verdict, Proton version, GPU, and timestamp
Search for games by name or app ID in the ProtonDB database
Full-text keyword search across ProtonDB reports (notes, title, Proton version, GPU, OS, launch options) with optional app ID scoping and relevance ranking
Output schemas not documented in source code. LLMs cannot plan downstream tool calls or extract fields without knowing response structure.
No error handling guidance visible. Tools return errors but do not indicate whether they are retryable, user-fixable, or fatal. No recovery suggestions.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint) present. All tools are read-only but this is not declared in schema.
Inferred effective spec: 2025-06-18+.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 50 | 2025-06-18+ | v2 |
Parameter descriptions lack format/constraint details. E.g., 'appId' should specify format (numeric string, 1-7 digits); 'limit' should state min/max bounds explicitly in description.
No pagination guidance in tool descriptions. search_reports and get_reports accept 'limit' but do not document whether results are truncated or if a cursor/offset is available for continuation.