Pairloop Doubles Mixer
Rotate partners, print & score
사용해야 할까요
품질 및 안전성
도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.
컨텍스트 비용
이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.
설치
원클릭 설치
`claude_desktop_config.json` 파일에 다음을 추가하세요:
{
"mcpServers": {
"doubles-mixer": {
"url": "https://doubles-mixer.zovo.one/mcp"
}
}
}원격 엔드포인트
https://doubles-mixer.zovo.one/mcpstreamable-http할 수 있는 일
도구 목록
도구 (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.
입력 스키마
{
"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#"
}출력 스키마
{
"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.
입력 스키마
{
"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#"
}출력 스키마
{
"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.
입력 스키마
{
"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#"
}출력 스키마
{
"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
}커뮤니티
증거