BirdieAPI
PGA Tour data from 2001: leaderboards, holes, courses, ratings, par-3/4/5 splits, major winner odds.
我該用這個嗎
品質與安全性
根據工具定義與協定合規性的自動化分析。
上下文成本
這是每次將伺服器的工具載入模型上下文時所消耗的約略 token 數量。數量越高,可用於其他工作的注意力就越少。
安裝
一鍵安裝
將以下內容加入你的 `claude_desktop_config.json` 檔案:
{
"mcpServers": {
"birdieapi": {
"url": "https://mcp.birdieapi.com/mcp"
}
}
}遠端端點
https://mcp.birdieapi.com/mcpstreamable-http它能做什麼
工具清單
工具(14)
🟢list_tournaments(season, status, major, limit, offset, ...)
Use to find tournaments. Lists a season's tournaments (ascending) or the latest ones (descending) with dates, status, purse, whether it is a major, the winner and winning score, field size and the courses. Filter by season, status and major. Costs 1 credit.
輸入結構描述
{
"type": "object",
"properties": {
"season": {
"description": "Season year, e.g. 2025.",
"type": [
"string",
"number"
]
},
"status": {
"description": "Only upcoming, in-progress or completed tournaments.",
"type": "string",
"enum": [
"scheduled",
"live",
"final"
]
},
"major": {
"description": "Only the majors.",
"type": "boolean"
},
"limit": {
"description": "Max tournaments (default 60).",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "Page offset; use next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"league": {
"description": "League. Defaults to golf. One of: golf, lpga, liv, dpwt, kornferry.",
"type": "string",
"enum": [
"golf",
"lpga",
"liv",
"dpwt",
"kornferry"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"tournaments": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"count": {
"type": "number"
},
"next_offset": {
"type": [
"number",
"null"
]
}
},
"required": [
"tournaments",
"count"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_schedule(days, league)
Use for what is on now and next: tournaments in play or starting in the next N days (default 30), with the courses and the defending champion. Costs 1 credit.
輸入結構描述
{
"type": "object",
"properties": {
"days": {
"description": "Days ahead (default 30, max 365).",
"type": "integer",
"minimum": 1,
"maximum": 365
},
"league": {
"description": "League. Defaults to golf. One of: golf, lpga, liv, dpwt, kornferry.",
"type": "string",
"enum": [
"golf",
"lpga",
"liv",
"dpwt",
"kornferry"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"days": {
"type": "number"
},
"tournaments": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"count": {
"type": "number"
}
},
"required": [
"days",
"tournaments",
"count"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_leaderboard(tournament_id, limit, league)
Use for a tournament's results: every player in the field in finishing order with position (T5), status (cut, wd, dq), score to par, total strokes, each round's score and strokes versus the field, earnings and season points, plus any playoff. Costs 2 credits.
輸入結構描述
{
"type": "object",
"properties": {
"tournament_id": {
"type": "string",
"description": "Tournament id from list_tournaments or get_schedule."
},
"limit": {
"description": "Max players (default the whole field).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"league": {
"description": "League. Defaults to golf. One of: golf, lpga, liv, dpwt, kornferry.",
"type": "string",
"enum": [
"golf",
"lpga",
"liv",
"dpwt",
"kornferry"
]
}
},
"required": [
"tournament_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"tournament": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"players": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"count": {
"type": "number"
}
},
"required": [
"tournament",
"players",
"count"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_course(tournament_id, course_id, league)
Use for a course as it was set up for a tournament: par and yards per hole, and how each hole played (scoring average, to par, birdie and bogey rates, difficulty rank) from every round on it. For a tournament on more than one course pass course_id. Costs 2 credits.
輸入結構描述
{
"type": "object",
"properties": {
"tournament_id": {
"type": "string",
"description": "Tournament id from list_tournaments."
},
"course_id": {
"description": "Course id, for tournaments played on more than one course (list_tournaments lists them).",
"type": "string"
},
"league": {
"description": "League. Defaults to golf. One of: golf, lpga, liv, dpwt, kornferry.",
"type": "string",
"enum": [
"golf",
"lpga",
"liv",
"dpwt",
"kornferry"
]
}
},
"required": [
"tournament_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"tournament": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"course": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"other_courses": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"rounds": {
"type": "number"
},
"scoring_average": {
"type": [
"number",
"null"
]
},
"holes": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"note": {
"type": "string"
}
},
"required": [
"tournament",
"course",
"other_courses",
"rounds",
"scoring_average",
"holes"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢search_players(query, limit, league)
Use to find a player's id by name (accents optional). Returns country, tournaments played, wins and the seasons played. Costs 1 credit.
輸入結構描述
{
"type": "object",
"properties": {
"query": {
"type": "string",
"minLength": 2,
"description": "Part of the player's name, e.g. 'scheffler'."
},
"limit": {
"description": "Max players (default 20).",
"type": "integer",
"minimum": 1,
"maximum": 100
},
"league": {
"description": "League. Defaults to golf. One of: golf, lpga, liv, dpwt, kornferry.",
"type": "string",
"enum": [
"golf",
"lpga",
"liv",
"dpwt",
"kornferry"
]
}
},
"required": [
"query"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"players": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"count": {
"type": "number"
}
},
"required": [
"players",
"count"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_player(player_id, league)
Use for a player's overview: profile, career totals (starts, wins, top tens, cuts, money, scoring average, strokes versus the field), our current rating, a line per season and the last ten results. Costs 5 credits.
輸入結構描述
{
"type": "object",
"properties": {
"player_id": {
"type": "string",
"description": "Player id from search_players or get_leaderboard."
},
"league": {
"description": "League. Defaults to golf. One of: golf, lpga, liv, dpwt, kornferry.",
"type": "string",
"enum": [
"golf",
"lpga",
"liv",
"dpwt",
"kornferry"
]
}
},
"required": [
"player_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"player": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"career": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"rating": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"seasons": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"recent_results": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
}
},
"required": [
"player",
"career",
"rating",
"seasons",
"recent_results"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_player_results(player_id, season, limit, offset, league)
Use for a player's tournament-by-tournament record: finish, score, earnings and each round with the field's average and strokes versus the field (raw and field-strength adjusted). Newest first; filter by season. Costs 5 credits.
輸入結構描述
{
"type": "object",
"properties": {
"player_id": {
"type": "string",
"description": "Player id from search_players."
},
"season": {
"description": "Season year, e.g. 2025.",
"type": [
"string",
"number"
]
},
"limit": {
"description": "Max tournaments (default 50).",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"offset": {
"description": "Page offset; use next_offset.",
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"league": {
"description": "League. Defaults to golf. One of: golf, lpga, liv, dpwt, kornferry.",
"type": "string",
"enum": [
"golf",
"lpga",
"liv",
"dpwt",
"kornferry"
]
}
},
"required": [
"player_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"player_id": {
"type": "string"
},
"results": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"count": {
"type": "number"
},
"next_offset": {
"type": [
"number",
"null"
]
}
},
"required": [
"player_id",
"results",
"count"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_player_stats(player_id, season, league)
Use for a player's season in numbers: results (starts, wins, top tens, cuts, money), scoring average and strokes versus the field, hole scoring from every hole played (birdies and bogeys per round, par 3/4/5 averages) and, for the PGA Tour and Korn Ferry Tour, strokes versus the field by hole type (sg_par3, sg_par4, sg_par5; score-based, not shot data) and, where ESPN keeps them, driving distance and accuracy, greens in regulation and putts per green. Costs 5 credits.
輸入結構描述
{
"type": "object",
"properties": {
"player_id": {
"type": "string",
"description": "Player id from search_players."
},
"season": {
"description": "Season year, e.g. 2025.",
"type": [
"string",
"number"
]
},
"league": {
"description": "League. Defaults to golf. One of: golf, lpga, liv, dpwt, kornferry.",
"type": "string",
"enum": [
"golf",
"lpga",
"liv",
"dpwt",
"kornferry"
]
}
},
"required": [
"player_id",
"season"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"player": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"season": {
"type": "number"
},
"results": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"hole_scoring": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"ball_striking": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"espn_season": {
"anyOf": [
{
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
{
"type": "null"
}
]
},
"note": {
"type": "string"
}
},
"required": [
"player",
"season",
"results",
"hole_scoring",
"ball_striking",
"espn_season"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_scorecard(tournament_id, player_id, league)
Use for one player's tournament hole by hole: every round's strokes on each hole with par, yards and the result (birdie, bogey), the course played, out and in, and strokes versus the field. Costs 2 credits.
輸入結構描述
{
"type": "object",
"properties": {
"tournament_id": {
"type": "string",
"description": "Tournament id from list_tournaments."
},
"player_id": {
"type": "string",
"description": "Player id from get_leaderboard or search_players."
},
"league": {
"description": "League. Defaults to golf. One of: golf, kornferry.",
"type": "string",
"enum": [
"golf",
"kornferry"
]
}
},
"required": [
"tournament_id",
"player_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"result": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"rounds": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"note": {
"type": "string"
}
},
"required": [
"result",
"rounds"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_course_history(player_id, tournament_id, course_id, league)
Use for course or event form: a player's record at one tournament across every year (pass any edition's tournament_id) or at one course across every tournament played there (course_id), with finishes, rounds and strokes versus the field, and a summary. Costs 5 credits.
輸入結構描述
{
"type": "object",
"properties": {
"player_id": {
"type": "string",
"description": "Player id from search_players."
},
"tournament_id": {
"description": "Any year's id of the tournament; every edition is returned.",
"type": "string"
},
"course_id": {
"description": "A course id (list_tournaments lists each tournament's courses).",
"type": "string"
},
"league": {
"description": "League. Defaults to golf. One of: golf, lpga, liv, dpwt, kornferry.",
"type": "string",
"enum": [
"golf",
"lpga",
"liv",
"dpwt",
"kornferry"
]
}
},
"required": [
"player_id"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"player": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"course": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"tournament": {
"type": "string"
},
"summary": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"rounds": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"editions": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"count": {
"type": "number"
}
},
"required": [
"player",
"summary",
"count"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_head_to_head(player_a, player_b, season, league)
Use to compare two players: every tournament both played with each one's finish, who finished ahead (making the cut beats missing it), round-by-round strokes on the same course, and a summary. Filter by season. Costs 5 credits.
輸入結構描述
{
"type": "object",
"properties": {
"player_a": {
"type": "string",
"description": "First player id."
},
"player_b": {
"type": "string",
"description": "Second player id."
},
"season": {
"description": "Season year, e.g. 2025.",
"type": [
"string",
"number"
]
},
"league": {
"description": "League. Defaults to golf. One of: golf, lpga, liv, dpwt, kornferry.",
"type": "string",
"enum": [
"golf",
"lpga",
"liv",
"dpwt",
"kornferry"
]
}
},
"required": [
"player_a",
"player_b"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"player_a": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"player_b": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"summary": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"meetings": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"count": {
"type": "number"
}
},
"required": [
"player_a",
"player_b",
"summary",
"meetings",
"count"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_ratings(limit, as_of, min_rounds, league)
Use for who is playing best: our strokes-versus-field rating for every player active in the past year, best first. A rating of 2.0 means two strokes a round better than an average player in the same fields, adjusted for field strength and weighted toward recent rounds. Pass as_of for the ratings on a past date. Costs 2 credits.
輸入結構描述
{
"type": "object",
"properties": {
"limit": {
"description": "Max players (default 50).",
"type": "integer",
"minimum": 1,
"maximum": 500
},
"as_of": {
"description": "A date (YYYY-MM-DD): the ratings as they stood then. Default the latest.",
"type": "string"
},
"min_rounds": {
"description": "Minimum decay-weighted rounds behind a rating (default 20).",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"league": {
"description": "League. Defaults to golf. One of: golf, lpga, liv, dpwt, kornferry.",
"type": "string",
"enum": [
"golf",
"lpga",
"liv",
"dpwt",
"kornferry"
]
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"as_of": {
"type": [
"string",
"null"
]
},
"min_rounds": {
"type": "number"
},
"ratings": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"count": {
"type": "number"
},
"method": {
"type": "string"
}
},
"required": [
"as_of",
"ratings",
"count",
"method"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_leaders(stat, season, min, limit, league)
Use for a season's leaders in one stat, with each player's sample. Stats from rounds and holes: scoring_average, vs_field, adj_vs_field, birdies_per_round, bogey_avoidance, par3_average, par4_average, par5_average, and sg_par3, sg_par4, sg_par5 (strokes versus the field on par 3, 4 or 5 holes, field-strength adjusted; PGA Tour and Korn Ferry Tour only, score-based, not shot data). From results: earnings, cup_points, wins, top_tens. From ESPN's tournament lines (PGA Tour from 2011): driving_distance, driving_accuracy, greens_in_regulation, putts_per_gir. Costs 5 credits.
輸入結構描述
{
"type": "object",
"properties": {
"stat": {
"type": "string",
"enum": [
"scoring_average",
"adj_vs_field",
"vs_field",
"birdies_per_round",
"bogey_avoidance",
"par3_average",
"par4_average",
"par5_average",
"sg_par3",
"sg_par4",
"sg_par5",
"earnings",
"cup_points",
"wins",
"top_tens",
"driving_distance",
"driving_accuracy",
"greens_in_regulation",
"putts_per_gir"
],
"description": "The stat to rank."
},
"season": {
"description": "Season year, e.g. 2025.",
"type": [
"string",
"number"
]
},
"min": {
"description": "Minimum sample: rounds (default 40), starts (1) or tournaments with a stat line (8).",
"type": "integer",
"minimum": 1,
"maximum": 9007199254740991
},
"limit": {
"description": "Max players (default 25).",
"type": "integer",
"minimum": 1,
"maximum": 200
},
"league": {
"description": "League. Defaults to golf. One of: golf, lpga, liv, dpwt, kornferry.",
"type": "string",
"enum": [
"golf",
"lpga",
"liv",
"dpwt",
"kornferry"
]
}
},
"required": [
"stat",
"season"
],
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"stat": {
"type": "string"
},
"label": {
"type": "string"
},
"season": {
"type": "number"
},
"minimum": {
"type": "number"
},
"minimum_of": {
"type": "string"
},
"leaders": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"count": {
"type": "number"
},
"note": {
"type": "string"
}
},
"required": [
"stat",
"label",
"season",
"minimum",
"minimum_of",
"leaders",
"count"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}🟢get_winner_odds(tournament_id, season, major, player_id, bookmaker, ...)
Use for the pre-tournament winner prices of the four men's majors by sportsbook, and how they moved: for each golfer and book the opening price (the first snapshot) and the latest price before the first round, with the implied probability, from The Odds API (the archive for every major from 2021 plus the 2020 U.S. Open, then refreshed daily while a major's market is open, every six hours in tournament week). For past majors the latest price can be up to a week before the first tee time; round, matchup and finishing-position markets are not held. Pass tournament_id, or season (all four majors), or player_id (one golfer across the majors). Costs 5 credits.
輸入結構描述
{
"type": "object",
"properties": {
"tournament_id": {
"description": "A major's tournament id from list_tournaments (major: true).",
"type": "string"
},
"season": {
"description": "ESPN's season year, e.g. 2025: all four majors of that season (the 2020 U.S. Open and the November 2020 Masters are season 2021).",
"type": [
"string",
"number"
]
},
"major": {
"description": "Only this major (with season, or alone for every year).",
"type": "string",
"enum": [
"masters",
"pga_championship",
"us_open",
"the_open"
]
},
"player_id": {
"description": "Player id from search_players: this golfer across the majors he was priced for.",
"type": "string"
},
"bookmaker": {
"description": "Bookmaker key, e.g. draftkings, fanduel, betmgm, bovada, betonlineag, espnbet, pinnacle, mybookieag.",
"type": "string"
},
"limit": {
"description": "Golfers per tournament, favourites first (default 20, max 200). Ignored with player_id.",
"type": "integer",
"minimum": 1,
"maximum": 200
}
},
"$schema": "http://json-schema.org/draft-07/schema#"
}輸出結構描述
{
"type": "object",
"properties": {
"tournaments": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
}
},
"count": {
"type": "number"
},
"note": {
"type": "string"
}
},
"required": [
"tournaments",
"count"
],
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false
}社群
證據