MCP-Server für Sportdaten — Live-Scores, Tabellen, Spieler-Statistiken und historische Ergebnisse weltweit
Server has 10 tools with basic schemas and German-language descriptions. All tools are READ_ONLY and follow verb_noun naming (search_*, get_*, list_). However, critical gaps exist: descriptions are present but many lack actionable context for LLM selection; parameter descriptions are minimal (e.g., 'Team-ID (aus search_team erhalten)' is circular); output schemas are not documented; no error recovery guidance; no pagination support despite tools returning lists. Tool names are clear but descriptions average ~80 chars, below the 194-char baseline for A+ tools. Parameters lack constraints (enums, ranges, formats). The server is functional but falls short of production-grade quality.
Ruft Details zu einem einzelnen Sportereignis ab.
Ruft Spiele einer Sport-Liga für eine Saison ab.
Ruft die aktuelle Tabelle einer Liga ab.
Gibt eine Übersicht der verfügbaren Ligen für einen Sport zurück.
Ruft die letzten Ergebnisse eines Teams ab.
Ruft die nächsten geplanten Spiele eines Teams ab.
Gibt eine Übersicht aller unterstützten Sport-Ligen zurück.
Output schemas not documented. Tools return dicts with fields like 'teams', 'ergebnisse', 'fixtures' but LLMs cannot plan downstream calls without knowing the structure. E.g., search_team returns 'id', 'name', 'liga_id' but this is not declared in a schema.
Parameter descriptions are circular or minimal. E.g., 'team_id: Team-ID (aus search_team erhalten)' assumes the LLM already knows what a team_id is. Missing: format, constraints, examples of valid values. Descriptions should be 50-200 chars and actionable.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 59 | 2026-07-28+ | v2 |
Sucht einen Spieler nach Name und gibt Statistiken zurück.
Sucht ein Sportereignis nach Name.
Sucht ein Sportteam nach Name und gibt Details zurück.
No pagination support. Tools like get_team_last_results and get_league_events return lists but lack offset/limit parameters and total_count in response. Large result sets will blow context windows. Baseline: tools returning lists should support pagination.
No error recovery guidance. Error responses return {'error': str(e)} or {'fehler': ...} with no actionable next steps. E.g., 'Team not found' should suggest 'Try search_team() with a partial name.' Agents cannot self-correct.
Parameter constraints not declared. E.g., 'count' in get_team_last_results accepts 1-15 but no enum or range constraint in schema. 'league_name' in get_league_table accepts only specific values (bundesliga, premier_league, etc.) but not declared as enum. LLMs will hallucinate invalid values.