Pairloop Doubles Mixer
Rotate partners, print & score
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
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": {
"doubles-mixer": {
"url": "https://doubles-mixer.zovo.one/mcp"
}
}
}Puntos de conexión remotos
https://doubles-mixer.zovo.one/mcpstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (3)
🟢generate_mixer_schedule(players, courts, rounds, seed, group_a, ...)
Use this when the user wants a pickleball round robin generator, pickleball mixer, rotating partners schedule, tennis mixer schedule or padel americano. Makes balanced rests, partner rotations, a fairness summary, printable PDF score sheets and CSV for 4 to 48 players, 1 to 12 courts and 1 to 24 rounds. Does not balance ratings or make fixed-team brackets; bounded optimization can leave partner repeats above the lower bound.
Esquema de entrada
{
"type": "object",
"properties": {
"players": {
"maxItems": 48,
"type": "array",
"items": {
"type": "string",
"maxLength": 160,
"description": "Player name, up to 40 characters, e.g. Alex."
},
"description": "4 to 48 distinct player names, e.g. [\"Alex\",\"Blair\",\"Casey\",\"Drew\"]. Names are limited to 40 characters."
},
"courts": {
"type": "number",
"description": "Available courts, a whole number from 1 to 12, e.g. 2. Unfillable courts are left unused."
},
"rounds": {
"type": "number",
"description": "Number of rounds, a whole number from 1 to 24, e.g. 7."
},
"seed": {
"description": "Repeatable seed, a whole number from 0 to 4294967295, e.g. 42. Defaults to 1; four players in one round enumerate ordered rotations before repeating (24 without groups, 16 with groups). Larger configurations use seeded bounded search.",
"type": "number"
},
"group_a": {
"description": "Optional group A names, e.g. [\"Alex\",\"Blair\"]. Supply both groups; each player must be in one group.",
"maxItems": 46,
"type": "array",
"items": {
"type": "string",
"maxLength": 160,
"description": "Player name, up to 40 characters, e.g. Alex."
}
},
"group_b": {
"description": "Optional group B names, e.g. [\"Casey\",\"Drew\"]. Partners cross groups; unequal groups may be refused if balanced rests are impossible.",
"maxItems": 46,
"type": "array",
"items": {
"type": "string",
"maxLength": 160,
"description": "Player name, up to 40 characters, e.g. Alex."
}
},
"paper": {
"description": "Print sheet size, e.g. \"letter\" (US Letter, default) or \"a4\".",
"type": "string",
"enum": [
"letter",
"a4"
]
}
},
"required": [
"players",
"courts",
"rounds"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"summary": {
"type": "string"
},
"downloads": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"kind",
"summary",
"details"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢score_mixer_standings(schedule, scores)
Use this when the user wants individual standings from a social doubles schedule and game scores. Counts wins, losses, draws, points for, points against, difference and win percent for up to 48 players and 288 scores. Accepts a generated schedule_request or an indexed schedule; unscored games stay pending. Does not use rating systems or governing tournament rules.
Esquema de entrada
{
"type": "object",
"properties": {
"schedule": {
"anyOf": [
{
"type": "object",
"properties": {
"players": {
"maxItems": 48,
"type": "array",
"items": {
"type": "string",
"maxLength": 160,
"description": "Player name, up to 40 characters, e.g. Alex."
},
"description": "4 to 48 distinct player names, e.g. [\"Alex\",\"Blair\",\"Casey\",\"Drew\"]. Names are limited to 40 characters."
},
"courts": {
"type": "number",
"description": "Available courts, a whole number from 1 to 12, e.g. 2. Unfillable courts are left unused."
},
"rounds": {
"type": "number",
"description": "Number of rounds, a whole number from 1 to 24, e.g. 7."
},
"seed": {
"description": "Repeatable seed, a whole number from 0 to 4294967295, e.g. 42. Defaults to 1; four players in one round enumerate ordered rotations before repeating (24 without groups, 16 with groups). Larger configurations use seeded bounded search.",
"type": "number"
},
"group_a": {
"description": "Optional group A names, e.g. [\"Alex\",\"Blair\"]. Supply both groups; each player must be in one group.",
"maxItems": 46,
"type": "array",
"items": {
"type": "string",
"maxLength": 160,
"description": "Player name, up to 40 characters, e.g. Alex."
}
},
"group_b": {
"description": "Optional group B names, e.g. [\"Casey\",\"Drew\"]. Partners cross groups; unequal groups may be refused if balanced rests are impossible.",
"maxItems": 46,
"type": "array",
"items": {
"type": "string",
"maxLength": 160,
"description": "Player name, up to 40 characters, e.g. Alex."
}
}
},
"required": [
"players",
"courts",
"rounds"
]
},
{
"type": "object",
"properties": {
"players": {
"maxItems": 48,
"type": "array",
"items": {
"type": "string",
"maxLength": 160,
"description": "Player name, up to 40 characters, e.g. Alex."
},
"description": "4 to 48 distinct player names, e.g. [\"Alex\",\"Blair\",\"Casey\",\"Drew\"]. Names are limited to 40 characters."
},
"rounds": {
"maxItems": 24,
"type": "array",
"items": {
"type": "object",
"properties": {
"round": {
"type": "number",
"description": "Round number, e.g. 1."
},
"matches": {
"maxItems": 12,
"type": "array",
"items": {
"type": "object",
"properties": {
"court": {
"type": "number",
"description": "Court number, e.g. 1."
},
"team_a": {
"maxItems": 2,
"type": "array",
"items": {
"type": "number",
"description": "Zero-based player index, e.g. 0 for the first player."
},
"description": "Team A player indexes, e.g. [0,1]."
},
"team_b": {
"maxItems": 2,
"type": "array",
"items": {
"type": "number",
"description": "Zero-based player index, e.g. 0 for the first player."
},
"description": "Team B player indexes, e.g. [2,3]."
}
},
"required": [
"court",
"team_a",
"team_b"
]
},
"description": "Doubles matches, e.g. [{court:1,team_a:[0,1],team_b:[2,3]}]."
},
"sit_out": {
"description": "Indexes sitting out, e.g. [4]. Omit to calculate from matches.",
"maxItems": 48,
"type": "array",
"items": {
"type": "number",
"description": "Zero-based player index, e.g. 0 for the first player."
}
}
},
"required": [
"round",
"matches"
]
},
"description": "The schedule rounds, e.g. one round with one court."
}
},
"required": [
"players",
"rounds"
]
}
],
"description": "The returned schedule_request, e.g. {players:[\"Alex\",\"Blair\",\"Casey\",\"Drew\"],courts:1,rounds:3,seed:42}, or a full indexed schedule JSON."
},
"scores": {
"maxItems": 288,
"type": "array",
"items": {
"type": "object",
"properties": {
"round": {
"type": "number",
"description": "Round number, e.g. 1."
},
"court": {
"type": "number",
"description": "Court number, e.g. 1."
},
"score_a": {
"type": "number",
"description": "Team A points, a whole number 0 to 999, e.g. 11."
},
"score_b": {
"type": "number",
"description": "Team B points, a whole number 0 to 999, e.g. 7."
}
},
"required": [
"round",
"court",
"score_a",
"score_b"
]
},
"description": "Game scores, e.g. [{round:1,court:1,score_a:11,score_b:7}]. Ties count as draws; supply at least one score."
}
},
"required": [
"schedule",
"scores"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"summary": {
"type": "string"
},
"downloads": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"kind",
"summary",
"details"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢check_mixer_fairness(players, courts, rounds, seed, group_a, ...)
Use this when the user wants to check social doubles schedule limits before making a rotating partners schedule. Reports usable courts, balanced sit-out totals, unavoidable consecutive rests and a counting lower bound on partner repeats for 4 to 48 players and 1 to 24 rounds. Does not claim that bounded scheduling reaches the lower bound or balance player ratings.
Esquema de entrada
{
"type": "object",
"properties": {
"players": {
"maxItems": 48,
"type": "array",
"items": {
"type": "string",
"maxLength": 160,
"description": "Player name, up to 40 characters, e.g. Alex."
},
"description": "4 to 48 distinct player names, e.g. [\"Alex\",\"Blair\",\"Casey\",\"Drew\"]. Names are limited to 40 characters."
},
"courts": {
"type": "number",
"description": "Available courts, a whole number from 1 to 12, e.g. 2. Unfillable courts are left unused."
},
"rounds": {
"type": "number",
"description": "Number of rounds, a whole number from 1 to 24, e.g. 7."
},
"seed": {
"description": "Repeatable seed, a whole number from 0 to 4294967295, e.g. 42. Defaults to 1; four players in one round enumerate ordered rotations before repeating (24 without groups, 16 with groups). Larger configurations use seeded bounded search.",
"type": "number"
},
"group_a": {
"description": "Optional group A names, e.g. [\"Alex\",\"Blair\"]. Supply both groups; each player must be in one group.",
"maxItems": 46,
"type": "array",
"items": {
"type": "string",
"maxLength": 160,
"description": "Player name, up to 40 characters, e.g. Alex."
}
},
"group_b": {
"description": "Optional group B names, e.g. [\"Casey\",\"Drew\"]. Partners cross groups; unequal groups may be refused if balanced rests are impossible.",
"maxItems": 46,
"type": "array",
"items": {
"type": "string",
"maxLength": 160,
"description": "Player name, up to 40 characters, e.g. Alex."
}
}
},
"required": [
"players",
"courts",
"rounds"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}Esquema de salida
{
"type": "object",
"properties": {
"kind": {
"type": "string"
},
"summary": {
"type": "string"
},
"downloads": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "string"
}
},
"details": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"required": [
"kind",
"summary",
"details"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}Comunidad
Evidencia