Boxerbook

World professional boxing: schedule, results, boxer cards, rankings, forecasts. Free, no key.

我该使用它吗

质量与安全性

A
描述质量
100%
模式完整度
97%
命名质量
88%
投毒风险
100%
权限匹配度
90%
协议合规性
100%

发现(1)

  • LOWTool 'fetch' suggests web access but openWorldHint=false在 fetch 中

基于对工具定义和协议合规性的自动分析。

上下文开销

~6,764token 数(工具定义)
~6.6 KB典型响应大小
对注意力有显著影响(占 128k 上下文窗口的 5.28%)

这是每次将服务器的工具加载到模型上下文窗口时所消耗的大致 token 数。数值越高,可用于其他任务的注意力就越少。

安装

一键安装

将以下内容添加到你的 `claude_desktop_config.json` 文件中:

{
  "mcpServers": {
    "boxing": {
      "url": "https://mcp.boxerbook.com/mcp"
    }
  }
}

远程端点

https://mcp.boxerbook.com/mcpstreamable-http

它能做什么

工具清单

工具(10)

🟢 只读🟡 写入🔴 删除⚪ 未知
🟢boxing_schedule(when, country, division)

Upcoming professional boxing cards worldwide, grouped by card: date, start_utc (card start in UTC), venue, promoter, broadcasters, and each bout with both records going in, division, scheduled rounds, title, Boxerbook forecast and market consensus when known. Use this for "who is fighting tonight / this weekend", "what boxing is on". when=today also keeps last night's cards that started under 6 hours ago. Cite the url of each card or bout.

输入模式

{
  "type": "object",
  "properties": {
    "when": {
      "type": "string",
      "enum": [
        "today",
        "tonight",
        "weekend",
        "30d"
      ],
      "default": "today",
      "description": "today (and cards still running from last night), tonight, weekend (Fri-Sun) or 30d"
    },
    "country": {
      "type": "string",
      "description": "ISO 3166-1 alpha-2 country of the bout, e.g. GB, US, MX",
      "pattern": "^[A-Za-z]{2}$"
    },
    "division": {
      "type": "string",
      "description": "division code (hea, wel, w_fea) or name (heavyweight, women's featherweight)",
      "minLength": 1,
      "maxLength": 40
    }
  }
}

输出模式

{
  "type": "object",
  "properties": {
    "when": {
      "enum": [
        "today",
        "tonight",
        "weekend",
        "30d"
      ]
    },
    "from": {
      "type": "string"
    },
    "to": {
      "type": "string"
    },
    "country": {
      "type": [
        "string",
        "null"
      ]
    },
    "division": {
      "type": [
        "string",
        "null"
      ]
    },
    "truncated": {
      "type": "boolean",
      "description": "true when the 400-bout cap of the underlying list may have dropped bouts of this window (narrow it with country or division)"
    },
    "events": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": [
              "integer",
              "null"
            ]
          },
          "date": {
            "type": "string"
          },
          "start_utc": {
            "type": "string"
          },
          "venue": {
            "type": [
              "string",
              "null"
            ]
          },
          "city": {
            "type": [
              "string",
              "null"
            ]
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "promoter": {
            "type": [
              "string",
              "null"
            ]
          },
          "broadcasts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "platform": {
                  "type": "string"
                },
                "region": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "url": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "platform"
              ]
            }
          },
          "url": {
            "type": "string"
          },
          "bouts": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "date": {
                  "type": "string"
                },
                "start_utc": {
                  "type": "string",
                  "description": "ISO UTC start of the card, when known"
                },
                "status": {
                  "type": "string"
                },
                "a": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "name": {
                      "type": "string"
                    },
                    "slug": {
                      "type": "string"
                    },
                    "record": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "W-L-D going into the bout"
                    }
                  },
                  "required": [
                    "name",
                    "record"
                  ]
                },
                "b": {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "name": {
                      "type": "string"
                    },
                    "slug": {
                      "type": "string"
                    },
                    "record": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "W-L-D going into the bout"
                    }
                  },
                  "required": [
                    "name",
                    "record"
                  ]
                },
                "division": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "scheduled_rounds": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "title_text": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "url": {
                  "type": "string"
                },
                "forecast": {
                  "type": "object",
                  "properties": {
                    "p_a": {
                      "type": "number",
                      "description": "Boxerbook model probability that side a wins"
                    },
                    "as_of": {
                      "type": "string"
                    },
                    "run_id": {
                      "type": [
                        "integer",
                        "null"
                      ]
                    }
                  },
                  "required": [
                    "p_a",
                    "as_of"
                  ]
                },
                "market": {
                  "type": "object",
                  "properties": {
                    "favourite": {
                      "enum": [
                        "a",
                        "b"
                      ]
                    },
                    "p_a": {
                      "type": "number",
                      "description": "no-vig consensus probability of side a"
                    },
                    "books": {
                      "type": "integer"
                    },
                    "snapshot_at": {
                      "type": "string"
                    },
                    "via": {
                      "const": "The Odds API consensus"
                    },
                    "opening": {
                      "type": "object",
                      "properties": {
                        "p_a": {
                          "type": "number"
                        },
                        "snapshot_at": {
                          "type": "string"
                        }
                      },
                      "required": [
                        "p_a",
                        "snapshot_at"
                      ],
                      "description": "the opening line (first live snapshot); /v1/bouts/{id} only"
                    }
                  },
                  "required": [
                    "favourite",
                    "p_a",
                    "books",
                    "snapshot_at",
                    "via"
                  ]
                }
              },
              "required": [
                "id",
                "date",
                "a",
                "b",
                "url"
              ]
            }
          }
        },
        "required": [
          "date",
          "bouts",
          "broadcasts"
        ]
      }
    },
    "url": {
      "type": "string"
    },
    "attribution": {
      "type": "object",
      "properties": {
        "source": {
          "const": "Boxerbook"
        },
        "license": {
          "const": "ODbL"
        },
        "url": {
          "type": "string"
        }
      },
      "required": [
        "source",
        "license",
        "url"
      ]
    },
    "as_of": {
      "type": "string"
    },
    "partial": {
      "type": "boolean",
      "description": "true when part of the data could not be read this time; retry in a minute for the full answer"
    }
  },
  "required": [
    "events",
    "attribution",
    "as_of"
  ]
}
🟢boxing_results(days, country, division)

Completed professional bouts of the last N days (N calendar days ending today: 1 = today, 2 = last night and today, up to 14), newest first: winner, method, round, time, both records going in and the sources of each result. Use this for "who won last night", "results this weekend". Cite the url of each bout.

输入模式

{
  "type": "object",
  "properties": {
    "days": {
      "type": "integer",
      "minimum": 1,
      "maximum": 14,
      "default": 2,
      "description": "number of days ending today (default 2: last night and today)"
    },
    "country": {
      "type": "string",
      "description": "ISO 3166-1 alpha-2 country of the bout, e.g. GB, US, MX",
      "pattern": "^[A-Za-z]{2}$"
    },
    "division": {
      "type": "string",
      "description": "division code (hea, wel, w_fea) or name (heavyweight, women's featherweight)",
      "minLength": 1,
      "maxLength": 40
    }
  }
}

输出模式

{
  "type": "object",
  "properties": {
    "days": {
      "type": "integer"
    },
    "from": {
      "type": "string"
    },
    "to": {
      "type": "string"
    },
    "country": {
      "type": [
        "string",
        "null"
      ]
    },
    "division": {
      "type": [
        "string",
        "null"
      ]
    },
    "truncated": {
      "type": "boolean",
      "description": "true when the 400-bout cap of the underlying list may have dropped bouts of this window (narrow it with days, country or division)"
    },
    "bouts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "date": {
            "type": "string"
          },
          "a": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "name": {
                "type": "string"
              },
              "slug": {
                "type": "string"
              },
              "record": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "W-L-D going into the bout"
              }
            },
            "required": [
              "name",
              "record"
            ]
          },
          "b": {
            "type": "object",
            "properties": {
              "id": {
                "type": "integer"
              },
              "name": {
                "type": "string"
              },
              "slug": {
                "type": "string"
              },
              "record": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "W-L-D going into the bout"
              }
            },
            "required": [
              "name",
              "record"
            ]
          },
          "winner": {
            "enum": [
              "a",
              "b",
              "draw",
              "nc"
            ]
          },
          "method": {
            "type": [
              "string",
              "null"
            ]
          },
          "round": {
            "type": [
              "integer",
              "null"
            ]
          },
          "time": {
            "type": [
              "string",
              "null"
            ]
          },
          "confirmation": {
            "type": [
              "string",
              "null"
            ]
          },
          "division": {
            "type": [
              "string",
              "null"
            ]
          },
          "title_text": {
            "type": [
              "string",
              "null"
            ]
          },
          "event_id": {
            "type": [
              "integer",
              "null"
            ]
          },
          "url": {
            "type": "string"
          },
          "sources": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "name": {
                  "type": "string"
                },
                "url": {
                  "type": [
                    "string",
                    "null"
                  ]
                }
              },
              "required": [
                "name"
              ]
            }
          }
        },
        "required": [
          "id",
          "date",
          "a",
          "b",
          "winner",
          "sources"
        ]
      }
    },
    "url": {
      "type": "string"
    },
    "attribution": {
      "type": "object",
      "properties": {
        "source": {
          "const": "Boxerbook"
        },
        "license": {
          "const": "ODbL"
        },
        "url": {
          "type": "string"
        }
      },
      "required": [
        "source",
        "license",
        "url"
      ]
    },
    "as_of": {
      "type": "string"
    },
    "partial": {
      "type": "boolean",
      "description": "true when part of the data could not be read this time; retry in a minute for the full answer"
    }
  },
  "required": [
    "bouts",
    "attribution",
    "as_of"
  ]
}
🟢boxer(query)

One boxer's card by name, slug or Boxerbook id: country, division, record (W-L-D, KOs), stance, height, reach, birth date, nickname, next fight, last result, Boxerbook rating and, when known, the record as betting favourite and underdog. A name goes through the site search and returns the best match (other_matches lists the next ones: check them when the name is common). Cite the url.

输入模式

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "a boxer's name, slug (giorgio-visioli) or Boxerbook id",
      "minLength": 1,
      "maxLength": 80
    }
  },
  "required": [
    "query"
  ]
}

输出模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer"
    },
    "slug": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "country": {
      "type": [
        "string",
        "null"
      ]
    },
    "sex": {
      "type": [
        "string",
        "null"
      ]
    },
    "division": {
      "type": [
        "string",
        "null"
      ]
    },
    "record": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "w": {
              "type": "integer"
            },
            "l": {
              "type": "integer"
            },
            "d": {
              "type": "integer"
            },
            "ko": {
              "type": [
                "integer",
                "null"
              ]
            }
          },
          "required": [
            "w",
            "l",
            "d"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "record_source": {
      "enum": [
        "bouts",
        "wikidata",
        null
      ]
    },
    "bouts_without_result": {
      "type": [
        "integer",
        "null"
      ],
      "description": "completed bouts whose result is not known yet (record_source bouts only); record is null when no result is known at all"
    },
    "stance": {
      "type": [
        "string",
        "null"
      ]
    },
    "height_cm": {
      "type": [
        "number",
        "null"
      ]
    },
    "reach_cm": {
      "type": [
        "number",
        "null"
      ]
    },
    "birth_date": {
      "type": [
        "string",
        "null"
      ]
    },
    "nickname": {
      "type": [
        "string",
        "null"
      ]
    },
    "next_fight": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "bout_id": {
              "type": "integer"
            },
            "date": {
              "type": "string"
            },
            "start_utc": {
              "type": "string"
            },
            "opponent": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "name": {
                  "type": "string"
                },
                "slug": {
                  "type": "string"
                }
              },
              "required": [
                "name"
              ]
            },
            "url": {
              "type": "string"
            }
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "last_result": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "bout_id": {
              "type": "integer"
            },
            "date": {
              "type": "string"
            },
            "opponent": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "name": {
                  "type": "string"
                },
                "slug": {
                  "type": "string"
                }
              },
              "required": [
                "name"
              ]
            },
            "result": {
              "enum": [
                "W",
                "L",
                "D",
                "NC",
                null
              ]
            },
            "method": {
              "type": [
                "string",
                "null"
              ]
            },
            "round": {
              "type": [
                "integer",
                "null"
              ]
            },
            "url": {
              "type": "string"
            }
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "rating": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "mu": {
              "type": "number"
            },
            "rd": {
              "type": "number"
            },
            "division_rank": {
              "type": [
                "integer",
                "null"
              ]
            },
            "confidence": {
              "type": [
                "string",
                "null"
              ]
            }
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "market_record": {
      "type": "object",
      "properties": {
        "as_favourite": {
          "type": "object",
          "properties": {
            "w": {
              "type": "integer"
            },
            "l": {
              "type": "integer"
            }
          }
        },
        "as_underdog": {
          "type": "object",
          "properties": {
            "w": {
              "type": "integer"
            },
            "l": {
              "type": "integer"
            }
          }
        },
        "upsets_caused": {
          "type": "integer"
        },
        "upsets_suffered": {
          "type": "integer"
        }
      }
    },
    "url": {
      "type": "string"
    },
    "attribution": {
      "type": "object",
      "properties": {
        "source": {
          "const": "Boxerbook"
        },
        "license": {
          "const": "ODbL"
        },
        "url": {
          "type": "string"
        }
      },
      "required": [
        "source",
        "license",
        "url"
      ]
    },
    "as_of": {
      "type": "string"
    },
    "other_matches": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "division": {
            "type": [
              "string",
              "null"
            ]
          },
          "record": {
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "slug",
          "name",
          "url"
        ]
      },
      "description": "other boxers matching the name"
    },
    "partial": {
      "type": "boolean",
      "description": "true when part of the data could not be read this time; retry in a minute for the full answer"
    }
  },
  "required": [
    "id",
    "slug",
    "name",
    "record",
    "url",
    "attribution",
    "as_of"
  ]
}
🟢next_fight(query)

A boxer's next scheduled bout (by name, slug or id): date, start_utc (card start in UTC), opponent, venue, broadcasters, Boxerbook forecast and market consensus when known; next_fight is null when none is on record (last_result is then the latest bout). Cite the url.

输入模式

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "a boxer's name, slug (giorgio-visioli) or Boxerbook id",
      "minLength": 1,
      "maxLength": 80
    }
  },
  "required": [
    "query"
  ]
}

输出模式

{
  "type": "object",
  "properties": {
    "boxer": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "slug": {
          "type": "string"
        }
      },
      "required": [
        "name"
      ]
    },
    "next_fight": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "bout_id": {
              "type": "integer"
            },
            "date": {
              "type": "string"
            },
            "start_utc": {
              "type": "string",
              "description": "ISO UTC start of the card, when known"
            },
            "status": {
              "type": "string"
            },
            "opponent": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "name": {
                  "type": "string"
                },
                "slug": {
                  "type": "string"
                }
              },
              "required": [
                "name"
              ]
            },
            "title_text": {
              "type": [
                "string",
                "null"
              ]
            },
            "scheduled_rounds": {
              "type": [
                "integer",
                "null"
              ]
            },
            "venue": {
              "type": [
                "string",
                "null"
              ]
            },
            "city": {
              "type": [
                "string",
                "null"
              ]
            },
            "country": {
              "type": [
                "string",
                "null"
              ]
            },
            "event": {
              "oneOf": [
                {
                  "type": "object",
                  "properties": {
                    "id": {
                      "type": "integer"
                    },
                    "date": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "venue": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "city": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "country": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "promoter": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "url": {
                      "type": "string"
                    }
                  }
                },
                {
                  "type": "null"
                }
              ]
            },
            "broadcasts": {
              "type": "array",
              "items": {
                "type": "object",
                "properties": {
                  "platform": {
                    "type": "string"
                  },
                  "region": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "url": {
                    "type": [
                      "string",
                      "null"
                    ]
                  }
                },
                "required": [
                  "platform"
                ]
              }
            },
            "forecast": {
              "type": "object",
              "properties": {
                "p_a": {
                  "type": "number",
                  "description": "Boxerbook model probability that side a wins"
                },
                "as_of": {
                  "type": "string"
                },
                "run_id": {
                  "type": [
                    "integer",
                    "null"
                  ]
                }
              },
              "required": [
                "p_a",
                "as_of"
              ]
            },
            "market": {
              "type": "object",
              "properties": {
                "favourite": {
                  "enum": [
                    "a",
                    "b"
                  ]
                },
                "p_a": {
                  "type": "number",
                  "description": "no-vig consensus probability of side a"
                },
                "books": {
                  "type": "integer"
                },
                "snapshot_at": {
                  "type": "string"
                },
                "via": {
                  "const": "The Odds API consensus"
                },
                "opening": {
                  "type": "object",
                  "properties": {
                    "p_a": {
                      "type": "number"
                    },
                    "snapshot_at": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "p_a",
                    "snapshot_at"
                  ],
                  "description": "the opening line (first live snapshot); /v1/bouts/{id} only"
                }
              },
              "required": [
                "favourite",
                "p_a",
                "books",
                "snapshot_at",
                "via"
              ]
            },
            "url": {
              "type": "string"
            }
          },
          "required": [
            "bout_id",
            "date",
            "opponent",
            "broadcasts",
            "url"
          ]
        },
        {
          "type": "null"
        }
      ]
    },
    "last_result": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "bout_id": {
              "type": "integer"
            },
            "date": {
              "type": "string"
            },
            "opponent": {
              "type": "object",
              "properties": {
                "id": {
                  "type": "integer"
                },
                "name": {
                  "type": "string"
                },
                "slug": {
                  "type": "string"
                }
              },
              "required": [
                "name"
              ]
            },
            "result": {
              "enum": [
                "W",
                "L",
                "D",
                "NC",
                null
              ]
            },
            "method": {
              "type": [
                "string",
                "null"
              ]
            },
            "round": {
              "type": [
                "integer",
                "null"
              ]
            },
            "url": {
              "type": "string"
            }
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "url": {
      "type": "string"
    },
    "attribution": {
      "type": "object",
      "properties": {
        "source": {
          "const": "Boxerbook"
        },
        "license": {
          "const": "ODbL"
        },
        "url": {
          "type": "string"
        }
      },
      "required": [
        "source",
        "license",
        "url"
      ]
    },
    "as_of": {
      "type": "string",
      "description": "ISO UTC time of this answer"
    },
    "partial": {
      "type": "boolean",
      "description": "true when part of the data could not be read this time; retry in a minute for the full answer"
    }
  },
  "required": [
    "boxer",
    "next_fight",
    "url",
    "attribution",
    "as_of"
  ]
}
🟢bout(id)

One bout in full by Boxerbook bout id: both boxers with records going in, status, result (winner, method, round, time), start_utc, venue, card, broadcasters, sources, Boxerbook forecast with its signals and the market consensus when known. Cite the url.

输入模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer",
      "minimum": 1,
      "description": "Boxerbook bout id (from a schedule, results, search or a /bouts/<id>/<slug> url)"
    }
  },
  "required": [
    "id"
  ]
}

输出模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "integer"
    },
    "date": {
      "type": "string"
    },
    "start_utc": {
      "type": "string"
    },
    "status": {
      "type": "string"
    },
    "confirmation": {
      "type": [
        "string",
        "null"
      ]
    },
    "provisional": {
      "type": "boolean"
    },
    "exhibition": {
      "type": "boolean"
    },
    "a": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "slug": {
          "type": "string"
        },
        "record": {
          "type": [
            "string",
            "null"
          ],
          "description": "W-L-D going into the bout"
        }
      },
      "required": [
        "name",
        "record"
      ]
    },
    "b": {
      "type": "object",
      "properties": {
        "id": {
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "slug": {
          "type": "string"
        },
        "record": {
          "type": [
            "string",
            "null"
          ],
          "description": "W-L-D going into the bout"
        }
      },
      "required": [
        "name",
        "record"
      ]
    },
    "winner": {
      "enum": [
        "a",
        "b",
        "draw",
        "nc",
        null
      ]
    },
    "method": {
      "type": [
        "string",
        "null"
      ]
    },
    "round": {
      "type": [
        "integer",
        "null"
      ]
    },
    "time": {
      "type": [
        "string",
        "null"
      ]
    },
    "scheduled_rounds": {
      "type": [
        "integer",
        "null"
      ]
    },
    "title_text": {
      "type": [
        "string",
        "null"
      ]
    },
    "venue": {
      "type": [
        "string",
        "null"
      ]
    },
    "city": {
      "type": [
        "string",
        "null"
      ]
    },
    "country": {
      "type": [
        "string",
        "null"
      ]
    },
    "event": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "id": {
              "type": "integer"
            },
            "date": {
              "type": [
                "string",
                "null"
              ]
            },
            "venue": {
              "type": [
                "string",
                "null"
              ]
            },
            "city": {
              "type": [
                "string",
                "null"
              ]
            },
            "country": {
              "type": [
                "string",
                "null"
              ]
            },
            "promoter": {
              "type": [
                "string",
                "null"
              ]
            },
            "url": {
              "type": "string"
            }
          }
        },
        {
          "type": "null"
        }
      ]
    },
    "broadcasts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "platform": {
            "type": "string"
          },
          "region": {
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "platform"
        ]
      }
    },
    "sources": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "url": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "name"
        ]
      }
    },
    "weighin": {
      "type": "object",
      "properties": {
        "a": {
          "type": "object",
          "properties": {
            "weight_lb": {
              "type": "number"
            },
            "missed": {
              "type": [
                "boolean",
                "null"
              ],
              "description": "true: missed weight (a press report); null: unknown"
            },
            "source": {
              "type": "string"
            }
          },
          "required": [
            "weight_lb",
            "missed",
            "source"
          ]
        },
        "b": {
          "type": "object",
          "properties": {
            "weight_lb": {
              "type": "number"
            },
            "missed": {
              "type": [
                "boolean",
                "null"
              ],
              "description": "true: missed weight (a press report); null: unknown"
            },
            "source": {
              "type": "string"
            }
          },
          "required": [
            "weight_lb",
            "missed",
            "source"
          ]
        }
      },
      "description": "the official weigh-in, per side when known: a commission sheet before the press"
    },
    "forecast": {
      "type": "object",
      "properties": {
        "p_a": {
          "type": "number",
          "description": "Boxerbook model probability that side a wins"
        },
        "as_of": {
          "type": "string"
        },
        "run_id": {
          "type": [
            "integer",
            "null"
          ]
        }
      },
      "required": [
        "p_a",
        "as_of"
      ]
    },
    "market": {
      "type": "object",
      "properties": {
        "favourite": {
          "enum": [
            "a",
            "b"
          ]
        },
        "p_a": {
          "type": "number",
          "description": "no-vig consensus probability of side a"
        },
        "books": {
          "type": "integer"
        },
        "snapshot_at": {
          "type": "string"
        },
        "via": {
          "const": "The Odds API consensus"
        },
        "opening": {
          "type": "object",
          "properties": {
            "p_a": {
              "type": "number"
            },
            "snapshot_at": {
              "type": "string"
            }
          },
          "required": [
            "p_a",
            "snapshot_at"
          ],
          "description": "the opening line (first live snapshot); /v1/bouts/{id} only"
        }
      },
      "required": [
        "favourite",
        "p_a",
        "books",
        "snapshot_at",
        "via"
      ]
    },
    "signals": {
      "type": "object",
      "description": "signals of the latest forecast: a and b per side (age, age_precision, record, layoff_days, last5, ko_rate, home, travel_km, mu_delta_12m, div_shift, listed_first, short_notice_days, weight_lb, missed_weight, amateur, height_cm, reach_cm, stance, ...) and bout (title, rounds, main, division, lead_days, replaced, weigh_diff_lb)"
    },
    "fight_week": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "side": {
            "enum": [
              "a",
              "b",
              "bout"
            ]
          },
          "category": {
            "enum": [
              "injury",
              "replacement",
              "weight",
              "camp",
              "layoff",
              "background"
            ]
          },
          "fact": {
            "type": "string",
            "description": "one sentence, read by a model from the video captions"
          },
          "quote": {
            "type": "string",
            "description": "the words as spoken (auto captions), 40 words at most"
          },
          "channel": {
            "type": [
              "string",
              "null"
            ]
          },
          "video_url": {
            "type": "string",
            "description": "the YouTube video at the moment of the quote"
          },
          "t": {
            "type": "integer",
            "description": "seconds into the video"
          }
        },
        "required": [
          "side",
          "category",
          "fact",
          "quote",
          "video_url",
          "t"
        ]
      },
      "description": "facts said in fight-week videos (press conference, weigh-in, face-off, open workout): only accepted ones, at most 24; no predictions or opinions"
    },
    "url": {
      "type": "string"
    },
    "attribution": {
      "type": "object",
      "properties": {
        "source": {
          "const": "Boxerbook"
        },
        "license": {
          "const": "ODbL"
        },
        "url": {
          "type": "string"
        }
      },
      "required": [
        "source",
        "license",
        "url"
      ]
    },
    "as_of": {
      "type": "string"
    },
    "partial": {
      "type": "boolean",
      "description": "true when part of the data could not be read this time; retry in a minute for the full answer"
    }
  },
  "required": [
    "id",
    "date",
    "status",
    "a",
    "b",
    "broadcasts",
    "sources",
    "fight_week",
    "url",
    "attribution",
    "as_of"
  ]
}
🟢where_to_watch(bout_id, event_id)

The broadcasters (platform, region, link) of a bout or of a whole card, with the card start time in UTC. Give bout_id or event_id. An empty list means none is on record yet. Cite the url.

输入模式

{
  "type": "object",
  "properties": {
    "bout_id": {
      "type": "integer",
      "minimum": 1,
      "description": "Boxerbook bout id"
    },
    "event_id": {
      "type": "integer",
      "minimum": 1,
      "description": "Boxerbook event (card) id"
    }
  }
}

输出模式

{
  "type": "object",
  "properties": {
    "kind": {
      "enum": [
        "bout",
        "event"
      ]
    },
    "id": {
      "type": "integer"
    },
    "title": {
      "type": "string"
    },
    "date": {
      "type": [
        "string",
        "null"
      ]
    },
    "start_utc": {
      "type": "string",
      "description": "ISO UTC start of the card, when known"
    },
    "status": {
      "type": [
        "string",
        "null"
      ]
    },
    "event_id": {
      "type": [
        "integer",
        "null"
      ]
    },
    "venue": {
      "type": [
        "string",
        "null"
      ]
    },
    "city": {
      "type": [
        "string",
        "null"
      ]
    },
    "country": {
      "type": [
        "string",
        "null"
      ]
    },
    "broadcasts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "platform": {
            "type": "string"
          },
          "region": {
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "type": [
              "string",
              "null"
            ]
          }
        },
        "required": [
          "platform"
        ]
      }
    },
    "bouts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "url"
        ]
      }
    },
    "note": {
      "type": "string"
    },
    "url": {
      "type": "string"
    },
    "attribution": {
      "type": "object",
      "properties": {
        "source": {
          "const": "Boxerbook"
        },
        "license": {
          "const": "ODbL"
        },
        "url": {
          "type": "string"
        }
      },
      "required": [
        "source",
        "license",
        "url"
      ]
    },
    "as_of": {
      "type": "string",
      "description": "ISO UTC time of this answer"
    },
    "partial": {
      "type": "boolean",
      "description": "true when part of the data could not be read this time; retry in a minute for the full answer"
    }
  },
  "required": [
    "kind",
    "id",
    "title",
    "broadcasts",
    "url",
    "attribution",
    "as_of"
  ]
}
🟢rankings(division, publisher)

The top 15 of a division: the Boxerbook rating (default) or the latest list of a publisher (WBC, WBA, IBF, WBO, The Ring, TBRB), with records. Division by code (hea, wel, w_fea) or name (heavyweight, women's flyweight). Cite the url.

输入模式

{
  "type": "object",
  "properties": {
    "division": {
      "type": "string",
      "description": "division code (hea, wel, w_fea) or name (heavyweight, women's featherweight)",
      "minLength": 1,
      "maxLength": 40
    },
    "publisher": {
      "type": "string",
      "enum": [
        "boxerbook",
        "wbc",
        "wba",
        "ibf",
        "wbo",
        "ring",
        "tbrb"
      ],
      "default": "boxerbook",
      "description": "boxerbook (the Boxerbook rating), wbc, wba, ibf, wbo, ring or tbrb"
    }
  },
  "required": [
    "division"
  ]
}

输出模式

{
  "type": "object",
  "properties": {
    "division": {
      "type": "object",
      "properties": {
        "code": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "sex": {
          "type": [
            "string",
            "null"
          ]
        },
        "limit_lbs": {
          "type": [
            "number",
            "null"
          ]
        }
      }
    },
    "publisher": {
      "enum": [
        "boxerbook",
        "wbc",
        "wba",
        "ibf",
        "wbo",
        "ring",
        "tbrb"
      ]
    },
    "list_date": {
      "type": [
        "string",
        "null"
      ]
    },
    "items": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "position": {
            "type": "integer"
          },
          "id": {
            "type": "integer"
          },
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "champion_flag": {
            "type": "string"
          },
          "mu": {
            "type": "number"
          },
          "rd": {
            "type": "number"
          },
          "record": {
            "type": "string"
          }
        },
        "required": [
          "position",
          "name"
        ]
      }
    },
    "url": {
      "type": "string"
    },
    "attribution": {
      "type": "object",
      "properties": {
        "source": {
          "const": "Boxerbook"
        },
        "license": {
          "const": "ODbL"
        },
        "url": {
          "type": "string"
        }
      },
      "required": [
        "source",
        "license",
        "url"
      ]
    },
    "as_of": {
      "type": "string"
    },
    "partial": {
      "type": "boolean",
      "description": "true when part of the data could not be read this time; retry in a minute for the full answer"
    }
  },
  "required": [
    "division",
    "publisher",
    "items",
    "attribution",
    "as_of"
  ]
}
🟢search_boxers(q)

Find boxers by name (at most 20), best match first: id, slug, name, country, division, record. Use this when a name is ambiguous or its spelling unsure, then call boxer or next_fight with the id. Cite the url.

输入模式

{
  "type": "object",
  "properties": {
    "q": {
      "type": "string",
      "description": "a name or part of it",
      "minLength": 2,
      "maxLength": 80
    }
  },
  "required": [
    "q"
  ]
}

输出模式

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "integer"
          },
          "slug": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "country": {
            "type": [
              "string",
              "null"
            ]
          },
          "division": {
            "type": [
              "string",
              "null"
            ]
          },
          "record": {
            "type": [
              "string",
              "null"
            ]
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "slug",
          "name",
          "url"
        ]
      }
    },
    "url": {
      "type": "string"
    },
    "attribution": {
      "type": "object",
      "properties": {
        "source": {
          "const": "Boxerbook"
        },
        "license": {
          "const": "ODbL"
        },
        "url": {
          "type": "string"
        }
      },
      "required": [
        "source",
        "license",
        "url"
      ]
    },
    "as_of": {
      "type": "string"
    },
    "partial": {
      "type": "boolean",
      "description": "true when part of the data could not be read this time; retry in a minute for the full answer"
    }
  },
  "required": [
    "results",
    "attribution",
    "as_of"
  ]
}
🟢search(query)

Search the whole catalog with one query: boxers by name, bouts by two surnames ("Inoue vs Nakatani"), their cards, and divisions ("heavyweight rankings"); an id such as bout:123 is looked up directly. Each hit has an id for fetch, a title and its boxerbook.com url; ChatGPT connectors and deep research, which call nothing but search and fetch, start here. No match returns an empty list. Cite the url.

输入模式

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "what to look for: a boxer, two boxers, a division",
      "minLength": 1,
      "maxLength": 200
    }
  },
  "required": [
    "query"
  ]
}

输出模式

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string"
    },
    "results": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "description": "pass to fetch: boxer:<id>, bout:<id>, event:<id> or rankings:<DIV>"
          },
          "title": {
            "type": "string"
          },
          "url": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "title",
          "url"
        ],
        "additionalProperties": false
      }
    },
    "url": {
      "type": "string"
    },
    "attribution": {
      "type": "object",
      "properties": {
        "source": {
          "const": "Boxerbook"
        },
        "license": {
          "const": "ODbL"
        },
        "url": {
          "type": "string"
        }
      },
      "required": [
        "source",
        "license",
        "url"
      ]
    },
    "as_of": {
      "type": "string",
      "description": "ISO UTC time of this answer"
    },
    "partial": {
      "type": "boolean",
      "description": "true when part of the data could not be read this time; retry in a minute for the full answer"
    }
  },
  "required": [
    "results",
    "attribution",
    "as_of"
  ]
}
🟢fetch(id)

The full document for an id returned by search: a boxer card, a bout (records, result, broadcasters, forecast, market, sources), a card with its bouts, or a division's rankings, as Markdown text with metadata. Pass the id unchanged; an unknown id returns an error. Cite the url.

输入模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "an id from search: boxer:<id>, bout:<id>, event:<id> or rankings:<DIV>",
      "minLength": 3,
      "maxLength": 120
    }
  },
  "required": [
    "id"
  ]
}

输出模式

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string"
    },
    "title": {
      "type": "string"
    },
    "text": {
      "type": "string",
      "description": "the document as Markdown"
    },
    "url": {
      "type": "string"
    },
    "metadata": {
      "type": "object",
      "additionalProperties": {
        "type": [
          "string",
          "number",
          "boolean",
          "null"
        ]
      }
    },
    "attribution": {
      "type": "object",
      "properties": {
        "source": {
          "const": "Boxerbook"
        },
        "license": {
          "const": "ODbL"
        },
        "url": {
          "type": "string"
        }
      },
      "required": [
        "source",
        "license",
        "url"
      ]
    },
    "as_of": {
      "type": "string",
      "description": "ISO UTC time of this answer"
    },
    "partial": {
      "type": "boolean",
      "description": "true when part of the data could not be read this time; retry in a minute for the full answer"
    }
  },
  "required": [
    "id",
    "title",
    "text",
    "url",
    "metadata",
    "attribution",
    "as_of"
  ]
}

社区

评价此服务器

证据

最近观测

已验证未记录版本10 个工具