Pairloop Doubles Mixer

Rotate partners, print & score

사용해야 할까요

품질 및 안전성

A
설명 품질
100%
스키마 완전성
97%
이름 품질
93%
오염 위험
100%
권한 일치
100%
프로토콜 준수
100%

도구 정의와 프로토콜 준수에 대한 자동 분석을 기반으로 합니다.

컨텍스트 비용

~2,434토큰 (도구 정의)
~7.8 KB일반적인 응답 크기
중간 정도의 주의 영향 (128k 컨텍스트의 1.90%)

이는 서버의 도구가 모델의 컨텍스트에 로드될 때마다 소비되는 대략적인 토큰 수입니다. 수치가 높을수록 다른 작업에 사용할 수 있는 주의가 줄어듭니다.

설치

원클릭 설치

`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
}

커뮤니티

이 서버 평가하기

증거

최근 관측

검증됨버전이 기록되지 않음도구 3개