LeagueNight

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

¿Debería usar esto?

Calidad y seguridad

A
Calidad de la descripción
100%
Integridad del esquema
100%
Calidad de los nombres
80%
Riesgo de envenenamiento
100%
Coincidencia de permisos
100%
Cumplimiento del protocolo
100%

Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.

Costo de contexto

~817Tokens (definiciones de herramientas)
~1.5 KBTamaño de respuesta típico
Impacto moderado en la atención (0.64% del contexto de 128k)

Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.

Instalar

Instalación con un clic

Agrega esto a tu archivo `claude_desktop_config.json`:

{
  "mcpServers": {
    "league-night": {
      "url": "https://league-night.magicteams.ai/mcp"
    }
  }
}

Puntos de conexión remotos

https://league-night.magicteams.ai/mcpstreamable-http

Qué puede hacer

Inventario de herramientas

Herramientas (4)

🟢 Solo lectura🟡 Escritura🔴 Eliminación⚪ Desconocido
🟢round_robin_schedule(teams, rounds, second_leg)

Build a circle-method round-robin fixture schedule: every pair of teams meets once, or twice when second_leg is set. Odd team counts get one bye per round.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "teams": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Team names (2 or more, unique)"
    },
    "rounds": {
      "type": "number",
      "description": "Optional number of rounds to return (1..full schedule)"
    },
    "second_leg": {
      "type": "boolean",
      "description": "Also schedule the reverse fixtures for a double round-robin"
    }
  },
  "required": [
    "teams"
  ]
}
🟢standings_table(results, teams, points_win, points_draw)

Aggregate match results into a league table with played, wins, draws, losses, goals for/against, goal difference and points, sorted by points, then goal difference, then goals for, then name.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "home": {
            "type": "string"
          },
          "away": {
            "type": "string"
          },
          "home_score": {
            "type": "number"
          },
          "away_score": {
            "type": "number"
          }
        },
        "required": [
          "home",
          "away",
          "home_score",
          "away_score"
        ]
      },
      "description": "Match results in any order"
    },
    "teams": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Full roster; results for teams outside it are skipped with a warning"
    },
    "points_win": {
      "type": "number",
      "description": "Points for a win, default 3"
    },
    "points_draw": {
      "type": "number",
      "description": "Points for a draw, default 1"
    }
  },
  "required": [
    "results"
  ]
}
🟢match_day_plan(games, courts, slot_minutes, start_time)

Lay an ordered list of games onto a courts-by-slots time grid: game i goes to court (i mod courts) in slot (i div courts) and each slot is slot_minutes long, starting at start_time.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "games": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "home": {
            "type": "string"
          },
          "away": {
            "type": "string"
          }
        },
        "required": [
          "home",
          "away"
        ]
      },
      "description": "Games in the order they should be played"
    },
    "courts": {
      "type": "number",
      "description": "Courts available (1-12)"
    },
    "slot_minutes": {
      "type": "number",
      "description": "Minutes per time slot (10-180)"
    },
    "start_time": {
      "type": "string",
      "description": "First kick-off, 24h HH:MM"
    }
  },
  "required": [
    "games",
    "courts",
    "slot_minutes",
    "start_time"
  ]
}
🟢season_plan(teams, courts, slot_minutes, start_date, days_between_rounds, ...)

Size a season end-to-end: total fixtures from the round-robin, games per match day given the courts available, match days needed, and the calendar dates from a start date to the estimated finish date.

Esquema de entrada

{
  "type": "object",
  "properties": {
    "teams": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "Team names (2 or more, unique)"
    },
    "courts": {
      "type": "number",
      "description": "Courts available per match day (1-12)"
    },
    "slot_minutes": {
      "type": "number",
      "description": "Minutes per time slot (10-180)"
    },
    "start_date": {
      "type": "string",
      "description": "First match day, YYYY-MM-DD"
    },
    "days_between_rounds": {
      "type": "number",
      "description": "Days between match days, default 7"
    },
    "second_leg": {
      "type": "boolean",
      "description": "Plan a double round-robin (each pair meets twice)"
    }
  },
  "required": [
    "teams",
    "courts",
    "slot_minutes",
    "start_date"
  ]
}

Comunidad

Califica este servidor

Evidencia

Observaciones recientes

verificadoversión no registrada4 herramientas