# LeagueNight (remote · league-night.magicteams.ai)

Round-robin fixtures, standings and match-day plans for league organizers. Free.

- Trust score: 73/100 (medium)
- Change this week: +3
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-23

## Components

- remote · `league-night.magicteams.ai`: 73/100 (this document), [markdown](https://verifymcp.io/servers/everyai-com-league-night/league-night.md), [page](https://verifymcp.io/servers/everyai-com-league-night/league-night)

## Channel facts

- Endpoint: `https://league-night.magicteams.ai/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.0.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-23.

- **Endpoint Security**: 74/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 69/100
  - AI-judged instruction clarity (excellent).
  - Context-footprint check failed: tool/resource definitions use about 896 tokens (~224/item across 4 items; 4 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 23/100
  - Stability check failed: schema churn in the 19 days we've observed: 0 tool removals, 3 breaking changes, 0 auth/transport breaks, 0 additions.
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (100% of tools); any adoption earns full credit.
- **Tool Safety**: 100/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - We read all 4 captured tool definition(s), and no name or description among them implies an irreversible operation.
  - An AI judge read all 5 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

## Install

### How do I install the LeagueNight MCP server?

LeagueNight is a hosted endpoint at https://league-night.magicteams.ai/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http everyai-com-league-night 'https://league-night.magicteams.ai/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "everyai-com-league-night": {
      "url": "https://league-night.magicteams.ai/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "everyai-com-league-night": {
      "type": "http",
      "url": "https://league-night.magicteams.ai/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.everyai-com-league-night]
url = "https://league-night.magicteams.ai/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "everyai-com-league-night": {
      "type": "remote",
      "url": "https://league-night.magicteams.ai/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add everyai-com-league-night --url 'https://league-night.magicteams.ai/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  everyai-com-league-night:
    url: "https://league-night.magicteams.ai/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "everyai-com-league-night": {
      "Transport": "http",
      "Url": "https://league-night.magicteams.ai/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add everyai-com-league-night -t streamable-http -u 'https://league-night.magicteams.ai/mcp'
```

### Other

```json
{
  "mcpServers": {
    "everyai-com-league-night": {
      "type": "http",
      "url": "https://league-night.magicteams.ai/mcp"
    }
  }
}
```

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-22 (score 73, +1)

No change was recorded against any check on this day. Stability & Change Management went from 16 to 19.

### 2026-10-20 (score 72, +1)

No change was recorded against any check on this day. Stability & Change Management went from 9 to 13.

### 2026-10-18 (score 71, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 6.

### 2026-10-10 (score 70, −2)

- [security regression] Stability: 0.07 → fail
- [security regression] A breaking change shipped without a version bump: still 1.0.0
- [security] Tool “match_day_plan” rewrote its description, which is the text the model reads
- [security] Tool “round_robin_schedule” rewrote its description, which is the text the model reads
- [security] Tool “season_plan” rewrote its description, which is the text the model reads
- [security] Tool “standings_table” rewrote its description, which is the text the model reads
- [functional regression] Schema quality: 127 → 224
- [functional regression] “match_day_plan” changed the type of “courts”: number → integer
- [functional regression] “match_day_plan” changed the type of “slot_minutes”: number → integer
- [functional regression] “round_robin_schedule” changed the type of “rounds”: number → integer
- [functional regression] “season_plan” changed the type of “courts”: number → integer
- [functional regression] “season_plan” changed the type of “days_between_rounds”: number → integer
- [functional regression] “season_plan” changed the type of “slot_minutes”: number → integer
- [functional] First check of Tool coverage: 100
- [functional] Schema quality: good → excellent
- [cosmetic] “match_day_plan” reworded the description of “courts”
- [cosmetic] “match_day_plan” reworded the description of “games”
- [cosmetic] “match_day_plan” reworded the description of “slot_minutes”
- [cosmetic] “match_day_plan” reworded the description of “start_time”
- [cosmetic] “round_robin_schedule” reworded the description of “rounds”
- [cosmetic] “round_robin_schedule” reworded the description of “second_leg”
- [cosmetic] “round_robin_schedule” reworded the description of “teams”
- [cosmetic] “season_plan” reworded the description of “courts”
- [cosmetic] “season_plan” reworded the description of “days_between_rounds”
- [cosmetic] “season_plan” reworded the description of “second_leg”
- [cosmetic] “season_plan” reworded the description of “slot_minutes”
- [cosmetic] “season_plan” reworded the description of “start_date”
- [cosmetic] “season_plan” reworded the description of “teams”
- [cosmetic] “standings_table” reworded the description of “points_draw”
- [cosmetic] “standings_table” reworded the description of “points_win”
- [cosmetic] “standings_table” reworded the description of “results”
- [cosmetic] “standings_table” reworded the description of “teams”

### 2026-10-06 (score 72, +1)

- [functional improvement] Stability: unverified → 0.07

### 2026-10-04 (score 71)

First indexed and scored.

## MCP tools (4)

### `round_robin_schedule` (~203 tokens)

Round robin schedule

Compute a round-robin fixture list (circle method) for 2-100 teams: every pair meets once, or twice home-and-away with second_leg; odd counts get one bye per round. Use when you need who plays whom in each round. Do NOT use to assign times/courts for one match day (use match_day_plan) or to get calendar dates for a season (use season_plan).

Input parameters:

- `rounds` (integer): Optional: return only the first N rounds, integer 1..max (max = teams-1 for even counts, teams for odd; doubled with second_leg). Default: all rounds
- `second_leg` (boolean): If true, append a mirrored second leg with home and away swapped (double round-robin). Default false
- `teams` (array, required): Team names: 2-100 unique, non-empty names (trimmed), e.g. ["Falcons", "Tigers", "Bears"]

Output parameters:

- `games_per_team` (number): Average games per team across the returned rounds (2 decimals)
- `legs` (integer): Number of legs included in the returned rounds (1 or 2)
- `note` (string): Plain-English summary of the schedule (teams, rounds, byes, truncation)
- `rounds` (array): Rounds in play order, each with its fixtures and any bye
- `teams` (array): Cleaned (trimmed) team names in input order
- `total_games` (integer): Total fixtures (excluding byes) in the returned rounds

### `standings_table` (~174 tokens)

Standings table

Compute a league standings table from match results: played, W/D/L, goals for/against, goal difference and points, sorted by points, then goal difference, then goals for, then name. Use when you have scores and want the current table. Do NOT use to generate future fixtures (use round_robin_schedule).

Input parameters:

- `points_draw` (number): Points awarded for a draw, non-negative number. Default 1
- `points_win` (number): Points awarded for a win, non-negative number. Default 3
- `results` (array, required): Completed match results in any order; may be empty if teams is given (zeroed table)
- `teams` (array): Optional full roster (2+ unique names). Teams with no results appear with zeros; results involving teams not listed are skipped with a warning

Output parameters:

- `points_system` (object): Points scheme applied to compute the table
- `table` (array): Standings rows sorted by points, goal difference, goals for, then team name
- `warnings` (array): Results skipped because a team was not in the roster (empty if none)

### `match_day_plan` (~204 tokens)

Match day plan

Compute a one-day timetable: lay an ordered list of games onto parallel courts and fixed-length time slots from a start time, giving each game a court and HH:MM start, plus the end time. Use when you already know the day's games. Do NOT use to decide who plays whom (use round_robin_schedule) or to size a whole season (use season_plan).

Input parameters:

- `courts` (integer, required): Number of courts/pitches usable at the same time, integer 1-12, e.g. 2
- `games` (array, required): Games in the order they should be played (non-empty); e.g. one round's fixtures from round_robin_schedule
- `slot_minutes` (integer, required): Length of one game slot in minutes, integer 10-180, e.g. 40
- `start_time` (string, required): First game start, 24h HH:MM, e.g. "09:00" or "18:30"

Output parameters:

- `courts` (integer): Number of courts used in parallel
- `end_time` (string): Time the last slot finishes, 24h HH:MM (wraps past midnight)
- `note` (string): Plain-English summary (slots, courts, after-midnight warning)
- `slot_minutes` (integer): Length of each slot in minutes
- `start_time` (string): First slot start time, 24h HH:MM (echoed from input)
- `timeline` (array): One entry per game, in input order
- `total_minutes` (integer): Total duration from first start to last finish, in minutes

### `season_plan` (~280 tokens)

Season plan

Estimate a season's size and calendar: total round-robin fixtures, games per match day (limited by courts, one slot per day), match days needed, every match-day date from start_date at a fixed interval, and the finish date. Use for "when will the season end?". Do NOT use for pairings (use round_robin_schedule) or one day's timetable (use match_day_plan).

Input parameters:

- `courts` (integer, required): Courts usable at the same time on each match day, integer 1-12; caps games per match day. E.g. 2
- `days_between_rounds` (integer): Days between consecutive match days, integer 1-60. Default 7 (weekly)
- `second_leg` (boolean): If true, plan a double round-robin (each pair meets twice). Default false
- `slot_minutes` (integer, required): Length of one game slot in minutes, integer 10-180 (validated and echoed in the note; each match day is one slot). E.g. 30
- `start_date` (string, required): First match day, YYYY-MM-DD, e.g. "2026-10-04"
- `teams` (array, required): Team names: 2-100 unique, non-empty names (trimmed), e.g. ["Falcons", "Tigers", "Bears"]

Output parameters:

- `dates` (array): Every match-day date, YYYY-MM-DD, in order
- `finish_date` (string): Date of the last match day, YYYY-MM-DD
- `games_per_round` (integer): Games played per match day: min(floor(teams/2), courts)
- `games_total` (integer): Total fixtures in the season (n(n-1)/2 per leg)
- `note` (string): Plain-English summary of the season plan and assumptions
- `per_team_games` (integer): Games each team plays over the season
- `rounds_needed` (integer): Number of match days needed to play all fixtures

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/everyai-com-league-night/league-night#diagnostics

## Score history

- 2026-10-23: 73
- 2026-10-22: 73
- 2026-10-21: 72
- 2026-10-20: 72
- 2026-10-19: 71
- 2026-10-18: 71
- 2026-10-17: 70
- 2026-10-16: 70
- 2026-10-15: 70
- 2026-10-14: 70
- 2026-10-13: 70
- 2026-10-12: 70
- 2026-10-10: 70
- 2026-10-06: 72
- 2026-10-04: 71

## Common questions

### What is the LeagueNight MCP server?

LeagueNight is an MCP server listed in the public MCP registry as io.github.everyai-com/league-night. Round-robin fixtures, standings and match-day plans for league organizers. Free. This page covers its hosted endpoint (https://league-night.magicteams.ai/mcp).

### Is the LeagueNight MCP server safe to use?

LeagueNight scores 73 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the LeagueNight MCP server expose?

LeagueNight exposes 4 tools: round_robin_schedule, standings_table, match_day_plan, season_plan. Their descriptions and schemas cost roughly 861 tokens of context every time the server is loaded.

### Does the LeagueNight MCP server require authentication?

No. We connected to LeagueNight without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

### Is the LeagueNight MCP server still maintained?

LeagueNight is still listed as active in the MCP registry. We last reached this channel on 23 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

## Links

- Remote endpoint: https://league-night.magicteams.ai/mcp
- Repository: https://github.com/everyai-com/sahadeva
- Changelog RSS feed: https://verifymcp.io/servers/everyai-com-league-night/league-night.xml
- Changelog JSON feed: https://verifymcp.io/servers/everyai-com-league-night/league-night.json
- HTML version of this page: https://verifymcp.io/servers/everyai-com-league-night/league-night
