Tournament Manager (EasyChamp)
Run tournaments end-to-end without leaving Claude — generate a league, spin up a tournament under it, build the bracket, create the schedule, and enter results as matches finish. Powered by the EasyChamp MCP running over stdio.
When to Use
- A league needs to be created ("Start the summer basketball league, 8 teams, single-elim").
- A tournament needs to be spun up under an existing league.
- A bracket must be generated from a tournament's team list.
- A match schedule must be produced with optional venue assignments.
- A match result must be recorded against the bracket.
Chain order is usually: easychamp_generate_league → easychamp_generate_tournament → easychamp_generate_bracket → easychamp_create_schedule → easychamp_enter_results (one per match).
MCP Tools
All tools live on the EasyChamp MCP server. Invoke them as-is; the server is configured via the Deps tab snippet (see below).
easychamp_generate_league
Create a new league under the authenticated organization.
Input:
{
"name": "Summer Basketball League",
"sport": "basketball",
"teamCount": 8,
"format": "single_elim"
}
Output: { leagueId, name, sport, teams: string[] }.
easychamp_generate_tournament
Create a tournament inside an existing league.
Input: { "leagueId": "lg_abc123", "type": "single_elim" }
Output: { tournamentId, leagueId, type }.
easychamp_generate_bracket
Build the bracket for a tournament from its registered teams.
Input: { "tournamentId": "tn_xyz789" }
Output: { bracketId, rounds: Match[] }.
easychamp_create_schedule
Produce the schedule with match dates (and optional venues).
Input:
{
"tournamentId": "tn_xyz789",
"startDate": "2026-06-01",
"venues": ["Court A", "Court B"]
}
Output: { scheduleId, matches: ScheduledMatch[] }.
easychamp_enter_results
Record the final score + winner for a single match.
Input: { "matchId": "m_42", "homeScore": 84, "awayScore": 77, "winner": "home" }
Output: { matchId, finalized: true }.
Setup
- Open the Deps tab in Skill Studio and click Copy config next to the EasyChamp row.
- Paste the snippet into your
~/.claude.jsonundermcpServers. - Export
EASYCHAMP_API_KEY(from https://easychamp.com/account/api-keys) or setEASYCHAMP_DEMO=1for a no-auth demo.
Detailed tool schemas are in references/schemas.md.
Workflow Example
1. easychamp_generate_league({ name: "Fall Cup", sport: "soccer", teamCount: 16, format: "double_elim" })
→ leagueId = "lg_fallcup"
2. easychamp_generate_tournament({ leagueId: "lg_fallcup", type: "double_elim" })
→ tournamentId = "tn_fallcup_main"
3. easychamp_generate_bracket({ tournamentId: "tn_fallcup_main" })
→ bracketId = "br_fallcup", rounds: [[Match, Match, ...], ...]
4. easychamp_create_schedule({ tournamentId: "tn_fallcup_main", startDate: "2026-09-01" })
→ scheduleId = "sc_fallcup", matches: [...]
5. easychamp_enter_results({ matchId: "m_1", homeScore: 3, awayScore: 1, winner: "home" })
→ { matchId: "m_1", finalized: true }
Safety
- Never log or echo the
EASYCHAMP_API_KEY. The copy-config snippet uses the${EASYCHAMP_API_KEY}placeholder — fill it in from your environment, never paste the real value into chat. - Score entries are final; re-running
easychamp_enter_resultsfor a matchId that is already finalized returns a structured error.