LeaderboardBack to leaderboard — loading return destination
Opening report…
Loading report overview
M
MCP server
server.example.com/mcp
Tools and resources for your MCP client, with a public quality report and detailed checks.
Protocol
MCP 2025-11-25
Server version
1.0.0
Website
server.example.com
Supports
Tools · Resources
Overall score
90 /100
How is this score calculated?
Server metadata
Loading server metadata
Reviewed90/100
Discoverability
Loading discoverability
Reviewed90/100
Protocol
Loading protocol
Reviewed90/100
Tools
Loading tools
Reviewed90/100
MCP Apps
Loading mcp apps
Reviewed90/100
Tool documentation quality
Loading tool documentation quality
Reviewed90/100
LeaderboardBack to leaderboard — loading return destination
S
StatMuse
api.statmuse.com/mcp
Sports stats and information from StatMuse AI: scores, schedules, standings, box scores, player stats, odds, injuries, fantasy projections and news for the NBA, NFL, MLB, NHL, WNBA, CFB and soccer.
Sports stats and information from StatMuse AI: scores, schedules, standings, box scores, player stats, odds, injuries, fantasy projections and news for the NBA, NFL, MLB, NHL, WNBA, CFB and soccer.
StatMuse provides sports statistics and information for the NBA, NFL, MLB, NHL, WNBA, college football (CFB), and soccer (FC). Use these tools for questions about sports stats, players, teams, games, schedules, standings, injuries, fantasy production, matchups, or sports news.
- Resolve names to IDs with search_player and search_team before calling other tools.
- Call get_stats_guide for a league before its first get_stats query; it documents the stat keys, filter values, groups, and examples get_stats accepts.
- For questions about the current season or recent events, call get_season_briefing first for today's date, the current season, and the latest games.
- If a tool errors, returns something its description did not lead you to expect, or you cannot work out how to call it, or you need a capability these tools lack, call submit_feedback at that moment.
Discoverability
0/6 passed0 of 6 passed0/100
Client listings and public setup information.
mcp.json or server-card.json
Either mcp.json or an MCP Server Card declaring this endpoint passes.
The public page could not be checked because of a network error, timeout, or inspection limit.
How to fix: On each tool, declare annotations.readOnlyHint, annotations.destructiveHint, and annotations.openWorldHint as booleans. The policy review separately assesses whether their values match the tool's actual behavior.
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Search StatMuse for players by full name (e.g. 'LeBron James'). Returns player IDs needed for other tools. When resolving several players, pass all names as one array rather than calling once per player. Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
league
The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
name
Full player name(s) to search for (1-25 per call), e.g. 'LeBron James' or ['LeBron James', 'Stephen Curry']
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations25/100
Declare destructiveHint, idempotentHint, openWorldHint based on the tool’s actual behavior.
{
"readOnlyHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "search_player",
"title": "Player Search",
"description": "Search StatMuse for players by full name (e.g. 'LeBron James'). Returns player IDs needed for other tools. When resolving several players, pass all names as one array rather than calling once per player. Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"league",
"name"
],
"properties": {
"name": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
},
"maxItems": 25,
"minItems": 1
}
],
"description": "Full player name(s) to search for (1-25 per call), e.g. 'LeBron James' or ['LeBron James', 'Stephen Curry']"
},
"league": {
"enum": [
"nba",
"mlb",
"wnba",
"nhl",
"fc",
"nfl",
"cfb"
],
"type": "string",
"description": "The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL)."
}
}
},
"annotations": {
"readOnlyHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description91/100
Resolve teams to the StatMuse team IDs other tools need. Search by abbreviation (e.g. 'GSW') or team name/mascot ('Golden State', 'Warriors'). Returns all matching teams, current teams first. When resolving several teams, pass all queries as one array rather than calling once per team. Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
league
The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
query
Team abbreviation, name, or mascot to search for — e.g. 'GSW', 'Golden State', or 'Warriors'. Pass an array for batch lookups (1-25 per call), e.g. ['Lakers', 'Celtics'].
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations25/100
Declare destructiveHint, idempotentHint, openWorldHint based on the tool’s actual behavior.
{
"readOnlyHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "search_team",
"title": "Team Search",
"description": "Resolve teams to the StatMuse team IDs other tools need. Search by abbreviation (e.g. 'GSW') or team name/mascot ('Golden State', 'Warriors'). Returns all matching teams, current teams first. When resolving several teams, pass all queries as one array rather than calling once per team. Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"league",
"query"
],
"properties": {
"query": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
},
"maxItems": 25,
"minItems": 1
}
],
"description": "Team abbreviation, name, or mascot to search for — e.g. 'GSW', 'Golden State', or 'Warriors'. Pass an array for batch lookups (1-25 per call), e.g. ['Lakers', 'Celtics']."
},
"league": {
"enum": [
"nba",
"mlb",
"wnba",
"nhl",
"fc",
"nfl",
"cfb"
],
"type": "string",
"description": "The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL)."
}
}
},
"annotations": {
"readOnlyHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description97/100
Get games for a league from StatMuse — a team's schedule or a league's slate over a date range. Two mutually-exclusive modes: (1) team schedule — pass team_id (from search_team), optionally with season for a past season; (2) date range — pass start_date (optionally with end_date, spanning at most 14 days total; 40 for CFB) for every game in the league across that span. Dates are US Eastern (America/New_York) calendar game-days — pass the date the user names; do not timezone-convert it. Returns completed, in-progress, and upcoming games with scores, records, status, and postseason context — not box scores or lineups; pass the returned game IDs to get_game_details for those. Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.
The description explains the capability, when to use it, and what to expect.
Inputs80/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
league
The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
team_id
Numeric team ID from search_team. Returns that team's games for the current season (or `season` if given). Cannot be combined with start_date/end_date.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
season
Only valid with team_id — a past season instead of the current one. Use YYYY-YY for NBA/NHL/FC (e.g. '2025-26') or YYYY for MLB/WNBA/NFL/CFB (e.g. '2025').
Clear enough to supply this argument.
start_date
First game date (US Eastern), YYYY-MM-DD. Starts date-range mode; cannot be combined with team_id.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
end_date
Last game date (US Eastern), YYYY-MM-DD. Optional; defaults to start_date. The start_date–end_date span is at most 14 days total (40 for CFB).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations25/100
Declare destructiveHint, idempotentHint, openWorldHint based on the tool’s actual behavior.
{
"readOnlyHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_games",
"title": "Games",
"description": "Get games for a league from StatMuse — a team's schedule or a league's slate over a date range. Two mutually-exclusive modes: (1) team schedule — pass team_id (from search_team), optionally with season for a past season; (2) date range — pass start_date (optionally with end_date, spanning at most 14 days total; 40 for CFB) for every game in the league across that span. Dates are US Eastern (America/New_York) calendar game-days — pass the date the user names; do not timezone-convert it. Returns completed, in-progress, and upcoming games with scores, records, status, and postseason context — not box scores or lineups; pass the returned game IDs to get_game_details for those. Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"league"
],
"properties": {
"league": {
"enum": [
"nba",
"mlb",
"wnba",
"nhl",
"fc",
"nfl",
"cfb"
],
"type": "string",
"description": "The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL)."
},
"season": {
"type": "string",
"description": "Only valid with team_id — a past season instead of the current one. Use YYYY-YY for NBA/NHL/FC (e.g. '2025-26') or YYYY for MLB/WNBA/NFL/CFB (e.g. '2025')."
},
"team_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Numeric team ID from search_team. Returns that team's games for the current season (or `season` if given). Cannot be combined with start_date/end_date."
},
"end_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "Last game date (US Eastern), YYYY-MM-DD. Optional; defaults to start_date. The start_date–end_date span is at most 14 days total (40 for CFB)."
},
"start_date": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$",
"description": "First game date (US Eastern), YYYY-MM-DD. Starts date-range mode; cannot be combined with team_id."
}
}
},
"annotations": {
"readOnlyHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
StatMuse game-level detail for one or more games. When you need several games, pass all their IDs in one call rather than calling once per game. Find game IDs via get_games or get_stats. Does not include play-by-play. Each ID in game_ids costs 1 credit, an unknown or repeated ID included.
Contents per game vary by game state:
- Scheduled: ET start time plus any schedule_note (timeTbd / ifNecessary / flexSchedule), announced starting lineups when available (MLB batting orders and probable pitchers; NBA/WNBA/FC starters), venue, weather, betting odds when supplied (NBA, MLB, WNBA, NHL, NFL, FC).
- In progress: live box score (team + player stat tables, line score), remaining timeouts / bonus (NBA, WNBA) or used timeouts (NFL, CFB), venue, weather.
- Completed: final box score (team + player stat tables, line score), team records, NHL three stars, venue, weather.
Venue and weather are included whenever supplied: venue name/location plus roof type and surface; temperature in Fahrenheit (`temp`), wind in mph, condition, humidityPercentage, and cloudCoveragePercentage. When available, `odds` may include spreads, totals, moneylines, and opening lines, depending on the sport. Each odds datum is `{value, display}`.
Stat tables are columnar: each of `stats.home.team`, `stats.home.players`, `stats.away.team`, `stats.away.players` is `{columns, rows}`, and home/away share the same `columns` per table so the sides align. Column keys are stat IDs (e.g. `Points`, `Passing-Yards`, `TimeOnIce`); cells are pre-formatted strings or null.
Response shape: `{games: [{ok:true, game} | {ok:false, game_id, error}, ...], hint?}`. The array is in request order — `games[i]` aligns with `game_ids[i]`. Inspect each slot's `ok` flag: a failed slot means that specific game couldn't be fetched — do not confuse it with missing fields inside an `ok:true` game.
Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.
The description explains the capability, when to use it, and what to expect.
Inputs38/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
league
The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
game_ids
Array of numeric game IDs (1-10) from get_games or get_stats. All IDs must share `league`; make separate calls for different leagues. Results come back in request order, with each slot either `{ok:true, game}` or `{ok:false, game_id, error}`.
Resolve the mismatch between this description and its schema constraints.
Annotations25/100
Declare destructiveHint, idempotentHint, openWorldHint based on the tool’s actual behavior.
{
"readOnlyHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_game_details",
"title": "Game Details",
"description": "StatMuse game-level detail for one or more games. When you need several games, pass all their IDs in one call rather than calling once per game. Find game IDs via get_games or get_stats. Does not include play-by-play. Each ID in game_ids costs 1 credit, an unknown or repeated ID included.\n\nContents per game vary by game state:\n- Scheduled: ET start time plus any schedule_note (timeTbd / ifNecessary / flexSchedule), announced starting lineups when available (MLB batting orders and probable pitchers; NBA/WNBA/FC starters), venue, weather, betting odds when supplied (NBA, MLB, WNBA, NHL, NFL, FC).\n- In progress: live box score (team + player stat tables, line score), remaining timeouts / bonus (NBA, WNBA) or used timeouts (NFL, CFB), venue, weather.\n- Completed: final box score (team + player stat tables, line score), team records, NHL three stars, venue, weather.\n\nVenue and weather are included whenever supplied: venue name/location plus roof type and surface; temperature in Fahrenheit (`temp`), wind in mph, condition, humidityPercentage, and cloudCoveragePercentage. When available, `odds` may include spreads, totals, moneylines, and opening lines, depending on the sport. Each odds datum is `{value, display}`.\n\nStat tables are columnar: each of `stats.home.team`, `stats.home.players`, `stats.away.team`, `stats.away.players` is `{columns, rows}`, and home/away share the same `columns` per table so the sides align. Column keys are stat IDs (e.g. `Points`, `Passing-Yards`, `TimeOnIce`); cells are pre-formatted strings or null.\n\nResponse shape: `{games: [{ok:true, game} | {ok:false, game_id, error}, ...], hint?}`. The array is in request order — `games[i]` aligns with `game_ids[i]`. Inspect each slot's `ok` flag: a failed slot means that specific game couldn't be fetched — do not confuse it with missing fields inside an `ok:true` game.\n\nSupported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"league",
"game_ids"
],
"properties": {
"league": {
"enum": [
"nba",
"mlb",
"wnba",
"nhl",
"fc",
"nfl",
"cfb"
],
"type": "string",
"description": "The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL)."
},
"game_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 9007199254740991,
"exclusiveMinimum": 0
},
"maxItems": 10,
"minItems": 1,
"description": "Array of numeric game IDs (1-10) from get_games or get_stats. All IDs must share `league`; make separate calls for different leagues. Results come back in request order, with each slot either `{ok:true, game}` or `{ok:false, game_id, error}`."
}
}
},
"annotations": {
"readOnlyHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description95/100
Execute a structured StatMuse stats query. Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.
IMPORTANT: Call get_stats_guide for the target league first — it contains all stat keys, filters, groups, and query examples. The guide is loaded into system context and persists for the conversation.
## Parameters
- groups (required): Array of group objects, e.g. [{"type": "player"}, {"type": "seasonYear"}]
- stats (required): Array of stat key strings from the guide
- filters (optional): Array of filter objects from the guide
- having (optional): Post-aggregation filters, e.g. {"statKey": "GamesPlayed", "operator": ">=", "value": 50}
- sort (optional): {"type": "stat", "statKey": "<key>", "direction": "descending"} or {"type": "chron", "direction": "ascending"}
- limit (optional): Max rows (default 25, max 500)
## Cost
A query costs 1 credit per 100 rows of its limit, rounded up, however many rows come back: the default limit of 25 costs 1 credit. Set the limit to the rows the answer needs. Any limit up to 100 costs 1 credit.
## Response
{ "columns": ["player", "season", "Points", "FieldGoalPercentage", ...], "rows": [["Name", "2024-25", 847, "47.5%", ...], ["Rookie", "2024-25", 120, null, ...], ...] }
Each row is a positional array aligned with columns[]. Stat cells come back as already-formatted strings (percentages as "47.5%", batting averages as ".325", signed values as "+12") — pass them through to the user verbatim. A stat a row lacks is null at its position (see the second row above); a stat key no row has is dropped from columns[] entirely, meaning it is unavailable for that grouping, not zero. Column order and set can differ between calls — always read columns[] from the response you're interpreting, not a prior one.
An MLB answer can also carry notices: plain sentences about the data. The MLB stats guide says which ones to tell the user.
## Critical
A stat filter ({"type": "stat", ...} in the filters array) applies BEFORE grouping. having applies AFTER. Use a stat filter for game-level thresholds like "games with 30+ points".
For percentage stats (FieldGoalPercentage, WinPercentage, SavePercentage, etc.), filter/having values use the 0-1 scale: a 50% threshold is value: 0.5. Values greater than 1 are auto-rescaled (50 → 0.5), so either scale works.
The description explains the capability, when to use it, and what to expect.
Inputs46/100
5 of 7 inputs have descriptions. Add descriptions to the missing inputs, including where to obtain IDs and how to supply values.
league
The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
groups › items › type
Not provided
Missing description. Explain what this value means and how to supply it.
stats
Array of stat key strings
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
filters › items › type
Not provided
Missing description. Explain what this value means and how to supply it.
having
Post-aggregation filters on stat values
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
limit
Maximum number of result rows (default 25, max 500)
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations25/100
Declare destructiveHint, idempotentHint, openWorldHint based on the tool’s actual behavior.
{
"readOnlyHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_stats",
"title": "Stats Query",
"description": "Execute a structured StatMuse stats query. Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.\n\nIMPORTANT: Call get_stats_guide for the target league first — it contains all stat keys, filters, groups, and query examples. The guide is loaded into system context and persists for the conversation.\n\n## Parameters\n\n- groups (required): Array of group objects, e.g. [{\"type\": \"player\"}, {\"type\": \"seasonYear\"}]\n- stats (required): Array of stat key strings from the guide\n- filters (optional): Array of filter objects from the guide\n- having (optional): Post-aggregation filters, e.g. {\"statKey\": \"GamesPlayed\", \"operator\": \">=\", \"value\": 50}\n- sort (optional): {\"type\": \"stat\", \"statKey\": \"<key>\", \"direction\": \"descending\"} or {\"type\": \"chron\", \"direction\": \"ascending\"}\n- limit (optional): Max rows (default 25, max 500)\n\n## Cost\n\nA query costs 1 credit per 100 rows of its limit, rounded up, however many rows come back: the default limit of 25 costs 1 credit. Set the limit to the rows the answer needs. Any limit up to 100 costs 1 credit.\n\n## Response\n\n{ \"columns\": [\"player\", \"season\", \"Points\", \"FieldGoalPercentage\", ...], \"rows\": [[\"Name\", \"2024-25\", 847, \"47.5%\", ...], [\"Rookie\", \"2024-25\", 120, null, ...], ...] }\n\nEach row is a positional array aligned with columns[]. Stat cells come back as already-formatted strings (percentages as \"47.5%\", batting averages as \".325\", signed values as \"+12\") — pass them through to the user verbatim. A stat a row lacks is null at its position (see the second row above); a stat key no row has is dropped from columns[] entirely, meaning it is unavailable for that grouping, not zero. Column order and set can differ between calls — always read columns[] from the response you're interpreting, not a prior one.\n\nAn MLB answer can also carry notices: plain sentences about the data. The MLB stats guide says which ones to tell the user.\n\n## Critical\n\nA stat filter ({\"type\": \"stat\", ...} in the filters array) applies BEFORE grouping. having applies AFTER. Use a stat filter for game-level thresholds like \"games with 30+ points\".\n\nFor percentage stats (FieldGoalPercentage, WinPercentage, SavePercentage, etc.), filter/having values use the 0-1 scale: a 50% threshold is value: 0.5. Values greater than 1 are auto-rescaled (50 → 0.5), so either scale works.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"league",
"groups",
"stats"
],
"properties": {
"sort": {
"type": "object",
"description": "Sort specification: {\"type\": \"stat\", \"statKey\": \"<statKey>\", \"direction\": \"descending\"} or {\"type\": \"chron\", \"direction\": \"ascending\"}",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"limit": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Maximum number of result rows (default 25, max 500)"
},
"stats": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of stat key strings"
},
"groups": {
"type": "array",
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
}
},
"additionalProperties": {}
},
"description": "Array of group objects defining how results are aggregated"
},
"having": {
"type": "array",
"items": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {}
},
"description": "Post-aggregation filters on stat values"
},
"league": {
"enum": [
"nba",
"mlb",
"wnba",
"nhl",
"fc",
"nfl",
"cfb"
],
"type": "string",
"description": "The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL)."
},
"filters": {
"type": "array",
"items": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string"
}
},
"additionalProperties": {}
},
"default": [],
"description": "Array of filter objects narrowing the query"
}
}
},
"annotations": {
"readOnlyHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description83/100
Get league-specific documentation for the StatMuse get_stats tool including available stat keys, filter values, query examples, and team reference tables. Call this before your first get_stats query for a league. Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.
A topic extends one league's guide with a family of stats. Read the league's guide first, then call again with the topic for the questions it names:
- pitch_tracking (MLB): pitch-level metrics from 2020 on: velocity, spin, movement, extension, exit velocity, launch angle, barrels, hard-hit rate, whiff, chase and zone rates, pitch types, arsenals and pitch logs.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
league
The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
topic
A topic of the league's guide. Omit it for the league's guide itself.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations25/100
Declare destructiveHint, idempotentHint, openWorldHint based on the tool’s actual behavior.
{
"readOnlyHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_stats_guide",
"title": "Stats Guide",
"description": "Get league-specific documentation for the StatMuse get_stats tool including available stat keys, filter values, query examples, and team reference tables. Call this before your first get_stats query for a league. Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.\n\nA topic extends one league's guide with a family of stats. Read the league's guide first, then call again with the topic for the questions it names:\n- pitch_tracking (MLB): pitch-level metrics from 2020 on: velocity, spin, movement, extension, exit velocity, launch angle, barrels, hard-hit rate, whiff, chase and zone rates, pitch types, arsenals and pitch logs.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"league"
],
"properties": {
"topic": {
"enum": [
"pitch_tracking"
],
"type": "string",
"description": "A topic of the league's guide. Omit it for the league's guide itself."
},
"league": {
"enum": [
"nba",
"mlb",
"wnba",
"nhl",
"fc",
"nfl",
"cfb"
],
"type": "string",
"description": "The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL)."
}
}
},
"annotations": {
"readOnlyHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
Get StatMuse league standings — win/loss records, ranks, games behind, and clinched status — for the current season by default, a past one via season, or a single team via team_id.
Response is columnar: `{season, columns, rows}` — each row is a positional array aligned with columns[]. Column keys are camelCase and differ by league: NBA has conference/division ranks and games behind; MLB adds wildcard games behind; NHL has points/overtimeLosses/goalDiff/pointPct (no win%); NFL/CFB include ties; CFB folds pollster ranks into one `polls` string (e.g. "AP: #3, CFP: #4") and has no clinched column.
FC returns `{season, competitions}` instead — league-phase tables keyed by competition code (epl, lal, bun, lig, ser, ucl), each `{name, table: {columns, rows}}`. Knockout-round detail is not included; use get_games for cup fixtures and results.
Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.
The description explains the capability, when to use it, and what to expect.
Inputs92/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
league
The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
season
A past season instead of the current one. Use YYYY-YY for NBA/NHL/FC (e.g. '2025-26') or YYYY for MLB/WNBA/NFL/CFB (e.g. '2025').
Clear enough to supply this argument.
team_id
Numeric team ID from search_team. Filters the standings to that single team.
Clear enough to supply this argument.
Annotations25/100
Declare destructiveHint, idempotentHint, openWorldHint based on the tool’s actual behavior.
{
"readOnlyHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_standings",
"title": "Standings",
"description": "Get StatMuse league standings — win/loss records, ranks, games behind, and clinched status — for the current season by default, a past one via season, or a single team via team_id.\n\nResponse is columnar: `{season, columns, rows}` — each row is a positional array aligned with columns[]. Column keys are camelCase and differ by league: NBA has conference/division ranks and games behind; MLB adds wildcard games behind; NHL has points/overtimeLosses/goalDiff/pointPct (no win%); NFL/CFB include ties; CFB folds pollster ranks into one `polls` string (e.g. \"AP: #3, CFP: #4\") and has no clinched column.\n\nFC returns `{season, competitions}` instead — league-phase tables keyed by competition code (epl, lal, bun, lig, ser, ucl), each `{name, table: {columns, rows}}`. Knockout-round detail is not included; use get_games for cup fixtures and results.\n\nSupported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"league"
],
"properties": {
"league": {
"enum": [
"nba",
"mlb",
"wnba",
"nhl",
"fc",
"nfl",
"cfb"
],
"type": "string",
"description": "The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL)."
},
"season": {
"type": "string",
"description": "A past season instead of the current one. Use YYYY-YY for NBA/NHL/FC (e.g. '2025-26') or YYYY for MLB/WNBA/NFL/CFB (e.g. '2025')."
},
"team_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Numeric team ID from search_team. Filters the standings to that single team."
}
}
},
"annotations": {
"readOnlyHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
List recent StatMuse news articles, league-wide by default or scoped to one player or one team (pass at most one of player_id/team_id). Returns `{articles: [{article_id, created, title, summary, byline, credit, statmuse_article_url}]}`, most recent first. Every article is from the Associated Press: `summary` is StatMuse's short digest of it and may be null, `credit` names AP, and `byline` names the writer as AP filed it, or is null. The full article is on statmuse.com at `statmuse_article_url`, for an agent that can open web pages or a user who wants to read it. A reply that draws on an article can credit AP and the writer and link to it. Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.
The description explains the capability, when to use it, and what to expect.
Inputs88/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
league
The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (soccer).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
player_id
Numeric player ID from search_player. Scopes the listing to one player's coverage. Mutually exclusive with team_id.
Clear enough to supply this argument.
team_id
Numeric team ID from search_team. Scopes the listing to one team's coverage. Mutually exclusive with player_id.
Clear enough to supply this argument.
limit
Maximum number of articles to return, most recent first. Defaults to 15, max 50.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations25/100
Declare destructiveHint, idempotentHint, openWorldHint based on the tool’s actual behavior.
{
"readOnlyHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_news",
"title": "News",
"description": "List recent StatMuse news articles, league-wide by default or scoped to one player or one team (pass at most one of player_id/team_id). Returns `{articles: [{article_id, created, title, summary, byline, credit, statmuse_article_url}]}`, most recent first. Every article is from the Associated Press: `summary` is StatMuse's short digest of it and may be null, `credit` names AP, and `byline` names the writer as AP filed it, or is null. The full article is on statmuse.com at `statmuse_article_url`, for an agent that can open web pages or a user who wants to read it. A reply that draws on an article can credit AP and the writer and link to it. Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"league"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 50,
"minimum": 1,
"description": "Maximum number of articles to return, most recent first. Defaults to 15, max 50."
},
"league": {
"enum": [
"nba",
"mlb",
"wnba",
"nhl",
"fc",
"nfl",
"cfb"
],
"type": "string",
"description": "The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (soccer)."
},
"team_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Numeric team ID from search_team. Scopes the listing to one team's coverage. Mutually exclusive with player_id."
},
"player_id": {
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991,
"description": "Numeric player ID from search_player. Scopes the listing to one player's coverage. Mutually exclusive with team_id."
}
}
},
"annotations": {
"readOnlyHint": true
}
}
Name the specific action and subject instead of using a generic label such as ‘manage’ or ‘tool’.
Description98/100
Fetch full StatMuse article bodies by article_id (from get_news). When you need several articles, pass all their IDs in one call rather than calling once per article; results return in request order. Unknown IDs are silently omitted from the response — compare against your request to detect misses (an all-unknown batch errors instead). Returns `{articles: [{article_id, title, content, created}]}`; `content` is plain text and may be null. Use only after a get_news summary suggests a story is worth reading in full. Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
league
The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (soccer).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
article_ids
Array of 1-10 article_ids from get_news, fetched in one batched call.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations25/100
Declare destructiveHint, idempotentHint, openWorldHint based on the tool’s actual behavior.
{
"readOnlyHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_article",
"title": "Article",
"description": "Fetch full StatMuse article bodies by article_id (from get_news). When you need several articles, pass all their IDs in one call rather than calling once per article; results return in request order. Unknown IDs are silently omitted from the response — compare against your request to detect misses (an all-unknown batch errors instead). Returns `{articles: [{article_id, title, content, created}]}`; `content` is plain text and may be null. Use only after a get_news summary suggests a story is worth reading in full. Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"league",
"article_ids"
],
"properties": {
"league": {
"enum": [
"nba",
"mlb",
"wnba",
"nhl",
"fc",
"nfl",
"cfb"
],
"type": "string",
"description": "The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (soccer)."
},
"article_ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 10,
"minItems": 1,
"description": "Array of 1-10 article_ids from get_news, fetched in one batched call."
}
}
},
"annotations": {
"readOnlyHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description94/100
Detailed StatMuse player cards — biography, draft, career awards, and recent news — for one or more players. When you need several players, pass all their IDs in one call rather than calling once per player. Find player IDs via search_player. Does not include game or season statistics — use get_stats for numbers.
Each card covers position, physical and biographical details, current team, draft, career awards, and up to 5 recent news articles (each with its summary, AP credit, byline and a statmuse_article_url to the full article), plus a statmuse_profile_url. Available fields vary by league, and any key with no value is omitted — absence means StatMuse has nothing on record for that field, not an error. Units: height and weight are feet-inches and pounds, except FC, which uses cm and kg and adds nationality (FIFA allegiance, which can differ from birthplace) and preferred_foot.
Response shape: `{players: [{ok:true, player} | {ok:false, player_id, error}, ...]}`. The array is in request order — `players[i]` aligns with `player_ids[i]`. Inspect each slot's `ok` flag: a failed slot means that specific player couldn't be fetched; an unknown ID reads `{ok:false, error:'Player not found'}`.
Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
league
The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
player_ids
Array of numeric player IDs (1-10) from search_player. All IDs must share `league`; make separate calls for different leagues. Results come back in request order, with each slot either `{ok:true, player}` or `{ok:false, player_id, error}`.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations25/100
Declare destructiveHint, idempotentHint, openWorldHint based on the tool’s actual behavior.
{
"readOnlyHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_player_detail",
"title": "Player Detail",
"description": "Detailed StatMuse player cards — biography, draft, career awards, and recent news — for one or more players. When you need several players, pass all their IDs in one call rather than calling once per player. Find player IDs via search_player. Does not include game or season statistics — use get_stats for numbers.\n\nEach card covers position, physical and biographical details, current team, draft, career awards, and up to 5 recent news articles (each with its summary, AP credit, byline and a statmuse_article_url to the full article), plus a statmuse_profile_url. Available fields vary by league, and any key with no value is omitted — absence means StatMuse has nothing on record for that field, not an error. Units: height and weight are feet-inches and pounds, except FC, which uses cm and kg and adds nationality (FIFA allegiance, which can differ from birthplace) and preferred_foot.\n\nResponse shape: `{players: [{ok:true, player} | {ok:false, player_id, error}, ...]}`. The array is in request order — `players[i]` aligns with `player_ids[i]`. Inspect each slot's `ok` flag: a failed slot means that specific player couldn't be fetched; an unknown ID reads `{ok:false, error:'Player not found'}`.\n\nSupported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"league",
"player_ids"
],
"properties": {
"league": {
"enum": [
"nba",
"mlb",
"wnba",
"nhl",
"fc",
"nfl",
"cfb"
],
"type": "string",
"description": "The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL)."
},
"player_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2147483647,
"exclusiveMinimum": 0
},
"maxItems": 10,
"minItems": 1,
"description": "Array of numeric player IDs (1-10) from search_player. All IDs must share `league`; make separate calls for different leagues. Results come back in request order, with each slot either `{ok:true, player}` or `{ok:false, player_id, error}`."
}
}
},
"annotations": {
"readOnlyHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description99/100
StatMuse's current injury report for a league — every listed player and their injury status. Returns the whole league by default, or pass team_ids (from search_team) to scope the report to specific teams. NFL is the exception: it has no league-wide report, so at least one team_id is REQUIRED. To cover several teams, pass all their IDs in one call rather than one per team.
Response is columnar — `{columns, rows}`, where each row is a positional array whose values align with columns[] by index; look each value up by its column name, since the column set and order differ by league. Every league except NFL carries player, team, status, and a description; NFL is game- and week-oriented (game and practice status, injury issues) with no description column. An empty rows[] means nobody is currently listed — a valid answer, not an error.
This is a current-status table only — for season or game stats use get_stats, and for biography, career, or recent news use get_player_detail. Supported leagues: NBA, MLB, WNBA, NHL, NFL (no injury report for CFB or FC).
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
league
The league to query. Supported: NBA, MLB, WNBA, NHL, NFL. CFB and FC have no injury report.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
team_ids
Numeric team IDs from search_team (not player IDs). Omit for a league-wide report. REQUIRED for NFL (no league-wide mode); optional elsewhere to scope the report to those teams.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations25/100
Declare destructiveHint, idempotentHint, openWorldHint based on the tool’s actual behavior.
{
"readOnlyHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_player_injuries",
"title": "Injury Report",
"description": "StatMuse's current injury report for a league — every listed player and their injury status. Returns the whole league by default, or pass team_ids (from search_team) to scope the report to specific teams. NFL is the exception: it has no league-wide report, so at least one team_id is REQUIRED. To cover several teams, pass all their IDs in one call rather than one per team.\n\nResponse is columnar — `{columns, rows}`, where each row is a positional array whose values align with columns[] by index; look each value up by its column name, since the column set and order differ by league. Every league except NFL carries player, team, status, and a description; NFL is game- and week-oriented (game and practice status, injury issues) with no description column. An empty rows[] means nobody is currently listed — a valid answer, not an error.\n\nThis is a current-status table only — for season or game stats use get_stats, and for biography, career, or recent news use get_player_detail. Supported leagues: NBA, MLB, WNBA, NHL, NFL (no injury report for CFB or FC).",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"league"
],
"properties": {
"league": {
"enum": [
"mlb",
"nba",
"wnba",
"nhl",
"nfl"
],
"type": "string",
"description": "The league to query. Supported: NBA, MLB, WNBA, NHL, NFL. CFB and FC have no injury report."
},
"team_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2147483647,
"exclusiveMinimum": 0
},
"maxItems": 40,
"description": "Numeric team IDs from search_team (not player IDs). Omit for a league-wide report. REQUIRED for NFL (no league-wide mode); optional elsewhere to scope the report to those teams."
}
}
},
"annotations": {
"readOnlyHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description96/100
StatMuse play-by-play for a single game, for answering questions about how that game unfolded. One game per call; not batchable. Pass a single game_id (from get_games or get_stats).
Two output depths via detail, independent of the filters below: "curated" (default) is a lean recap — scoring events plus a small notable set (ejections, major penalties, pulled goalies, drive summaries) and score/period markers, with routine events and pitch-by-pitch dropped; "full" returns every event in the game. A "curated" call costs 1 credit and a "full" call costs 20 credits, whatever the filters. Ask for "full" only when the answer needs every event.
Filters combine by AND: period restricts to one period given as a league number — inning (MLB), quarter (NBA/WNBA), period (NHL), or half (NFL/CFB); for FC, 1=first half, 2=second half, 3=extra time, 4=penalty shootout. scoring keeps only scoring events. team_id keeps only events a team is involved in (numeric team ID from search_team; must be one of the two teams in the game).
Each league keeps its native structure (MLB innings→halves→at-bats, football drives + plays + scoring, NBA/WNBA and NHL flat event lists, FC events + shots). Players and teams appear once in top-level players and teams maps; events carry bare ids that resolve against those maps. Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC. For a game-level box score use get_game_details; for season or game stat totals use get_stats.
The description explains the capability, when to use it, and what to expect.
Inputs79/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
league
The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
game_id
Numeric game ID from get_games or get_stats. One game per call — this tool is not batchable.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
detail
Output depth: "curated" (default) is a lean recap; "full" returns every event in the game. Independent of the period/scoring/team_id filters.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
period
Restrict to one period as a league number: inning (MLB), quarter (NBA/WNBA), period (NHL), half (NFL/CFB). FC: 1=first half, 2=second half, 3=extra time, 4=penalty shootout. Omit for the whole game.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
scoring
Keep only scoring events (goals, made baskets, scoring plays, runs).
Clear enough to supply this argument.
team_id
Keep only events involving this team (numeric team ID from search_team). Must be one of the game's two teams.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations25/100
Declare destructiveHint, idempotentHint, openWorldHint based on the tool’s actual behavior.
{
"readOnlyHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_game_plays",
"title": "Play-by-Play",
"description": "StatMuse play-by-play for a single game, for answering questions about how that game unfolded. One game per call; not batchable. Pass a single game_id (from get_games or get_stats).\n\nTwo output depths via detail, independent of the filters below: \"curated\" (default) is a lean recap — scoring events plus a small notable set (ejections, major penalties, pulled goalies, drive summaries) and score/period markers, with routine events and pitch-by-pitch dropped; \"full\" returns every event in the game. A \"curated\" call costs 1 credit and a \"full\" call costs 20 credits, whatever the filters. Ask for \"full\" only when the answer needs every event.\n\nFilters combine by AND: period restricts to one period given as a league number — inning (MLB), quarter (NBA/WNBA), period (NHL), or half (NFL/CFB); for FC, 1=first half, 2=second half, 3=extra time, 4=penalty shootout. scoring keeps only scoring events. team_id keeps only events a team is involved in (numeric team ID from search_team; must be one of the two teams in the game).\n\nEach league keeps its native structure (MLB innings→halves→at-bats, football drives + plays + scoring, NBA/WNBA and NHL flat event lists, FC events + shots). Players and teams appear once in top-level players and teams maps; events carry bare ids that resolve against those maps. Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC. For a game-level box score use get_game_details; for season or game stat totals use get_stats.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"league",
"game_id"
],
"properties": {
"detail": {
"enum": [
"curated",
"full"
],
"type": "string",
"default": "curated",
"description": "Output depth: \"curated\" (default) is a lean recap; \"full\" returns every event in the game. Independent of the period/scoring/team_id filters."
},
"league": {
"enum": [
"nba",
"mlb",
"wnba",
"nhl",
"fc",
"nfl",
"cfb"
],
"type": "string",
"description": "The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL)."
},
"period": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Restrict to one period as a league number: inning (MLB), quarter (NBA/WNBA), period (NHL), half (NFL/CFB). FC: 1=first half, 2=second half, 3=extra time, 4=penalty shootout. Omit for the whole game.",
"exclusiveMinimum": 0
},
"game_id": {
"type": "integer",
"maximum": 2147483647,
"description": "Numeric game ID from get_games or get_stats. One game per call — this tool is not batchable.",
"exclusiveMinimum": 0
},
"scoring": {
"type": "boolean",
"description": "Keep only scoring events (goals, made baskets, scoring plays, runs)."
},
"team_id": {
"type": "integer",
"maximum": 2147483647,
"description": "Keep only events involving this team (numeric team ID from search_team). Must be one of the game's two teams.",
"exclusiveMinimum": 0
}
}
},
"annotations": {
"readOnlyHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
A team's roster for one season, from StatMuse — every player with jersey number, position, height, weight, and age. Pass a team_id (from search_team) and the season.
Output is columnar: `{team: {id, name, abbreviation}, season, columns, rows}` — each row is a positional array aligned with columns[]. Read each value by its column name, since the column set differs by league; column names also carry their units (e.g. height_inches vs height_centimeters). Positions are the sport's usual abbreviations (PG, QB, SS, GK, …). For FC, nationality is FIFA sporting allegiance, which may differ from birthplace.
season is REQUIRED here, unlike other tools — pass the current season for the latest roster (YYYY-YY for NBA/NHL/FC, e.g. '2025-26'; YYYY for MLB/WNBA/NFL/CFB, e.g. '2025'). A team's roster for an upcoming season may not be posted yet; if a season comes back with no roster, use the most recent completed season.
This is the roster only — for a player's biography, career, draft, and awards use get_player_detail; for stats use get_stats. Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.
The description explains the capability, when to use it, and what to expect.
Inputs83/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
league
The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
team_id
Numeric team ID from search_team.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
season
Required. The season: YYYY-YY for NBA/NHL/FC (e.g. '2025-26') or YYYY for MLB/WNBA/NFL/CFB (e.g. '2025'). Pass the current season for the latest roster.
Clear enough to supply this argument.
Annotations25/100
Declare destructiveHint, idempotentHint, openWorldHint based on the tool’s actual behavior.
{
"readOnlyHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_team_roster",
"title": "Team Roster",
"description": "A team's roster for one season, from StatMuse — every player with jersey number, position, height, weight, and age. Pass a team_id (from search_team) and the season.\n\nOutput is columnar: `{team: {id, name, abbreviation}, season, columns, rows}` — each row is a positional array aligned with columns[]. Read each value by its column name, since the column set differs by league; column names also carry their units (e.g. height_inches vs height_centimeters). Positions are the sport's usual abbreviations (PG, QB, SS, GK, …). For FC, nationality is FIFA sporting allegiance, which may differ from birthplace.\n\nseason is REQUIRED here, unlike other tools — pass the current season for the latest roster (YYYY-YY for NBA/NHL/FC, e.g. '2025-26'; YYYY for MLB/WNBA/NFL/CFB, e.g. '2025'). A team's roster for an upcoming season may not be posted yet; if a season comes back with no roster, use the most recent completed season.\n\nThis is the roster only — for a player's biography, career, draft, and awards use get_player_detail; for stats use get_stats. Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"league",
"team_id",
"season"
],
"properties": {
"league": {
"enum": [
"nba",
"mlb",
"wnba",
"nhl",
"fc",
"nfl",
"cfb"
],
"type": "string",
"description": "The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL)."
},
"season": {
"type": "string",
"description": "Required. The season: YYYY-YY for NBA/NHL/FC (e.g. '2025-26') or YYYY for MLB/WNBA/NFL/CFB (e.g. '2025'). Pass the current season for the latest roster."
},
"team_id": {
"type": "integer",
"maximum": 2147483647,
"description": "Numeric team ID from search_team.",
"exclusiveMinimum": 0
}
}
},
"annotations": {
"readOnlyHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description97/100
Call this FIRST for any prompt about the current season, recent events, or present-day players and teams — StatMuse's snapshot of where a league stands right now, so you are grounded before you reason further.
Returns one JSON envelope: `league`, `season` (the current season), `as_of` (today's date, US Eastern), `games_window` {start, end}, `next_game`, and three sections: `games` (the slate from yesterday through tomorrow ET — ±5 days for NFL/CFB — as get_games returns it, including per-game live/playoff/postseason context), `standings` (condensed per-league tables — identity, record, the league's rank, clinched; read columns[]; no win % or games-behind, and CFB is trimmed to poll-ranked teams — use get_standings for the full table), and `news` (the 10 most recent articles as get_news returns them).
`next_game` is {date, season_type, checked_through} — the earliest scheduled game from `as_of` forward. A null date means nothing is scheduled through `checked_through`: an off-season, an extended break, or a next season whose schedule isn't published yet — it never by itself means the season is over. An empty `games` list likewise means no games in the window, not an error.
Go deeper with the dedicated tools: get_standings (full or past standings), get_news (more coverage, or one player's or team's), get_games (schedules and other dates). Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.
The description explains the capability, when to use it, and what to expect.
Inputs75/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
league
The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations25/100
Declare destructiveHint, idempotentHint, openWorldHint based on the tool’s actual behavior.
{
"readOnlyHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_season_briefing",
"title": "Season Briefing",
"description": "Call this FIRST for any prompt about the current season, recent events, or present-day players and teams — StatMuse's snapshot of where a league stands right now, so you are grounded before you reason further.\n\nReturns one JSON envelope: `league`, `season` (the current season), `as_of` (today's date, US Eastern), `games_window` {start, end}, `next_game`, and three sections: `games` (the slate from yesterday through tomorrow ET — ±5 days for NFL/CFB — as get_games returns it, including per-game live/playoff/postseason context), `standings` (condensed per-league tables — identity, record, the league's rank, clinched; read columns[]; no win % or games-behind, and CFB is trimmed to poll-ranked teams — use get_standings for the full table), and `news` (the 10 most recent articles as get_news returns them).\n\n`next_game` is {date, season_type, checked_through} — the earliest scheduled game from `as_of` forward. A null date means nothing is scheduled through `checked_through`: an off-season, an extended break, or a next season whose schedule isn't published yet — it never by itself means the season is over. An empty `games` list likewise means no games in the window, not an error.\n\nGo deeper with the dedicated tools: get_standings (full or past standings), get_news (more coverage, or one player's or team's), get_games (schedules and other dates). Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"league"
],
"properties": {
"league": {
"enum": [
"nba",
"mlb",
"wnba",
"nhl",
"fc",
"nfl",
"cfb"
],
"type": "string",
"description": "The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL)."
}
}
},
"annotations": {
"readOnlyHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description99/100
Official StatMuse player bust images and team logos, each with its brand colors, for rendering visuals. Batch tool: pass every player and/or team you need in ONE call rather than calling per entity. Find IDs via search_player and search_team.
Players resolve to a bust image — current-day by default; pass team_id and/or season on an item for an era-specific bust (the player in that team's uniform, or from that season). Teams resolve to the franchise's current logo by default, or that season's logo when season is given (covers historical rebrands and relocations). Every image carries background_color and foreground_color — the brand hex pair the image is designed to render on.
Response: `{players: [...], teams: [...]}`, each array aligned with your request order. Each slot is `{ok:true, player_id|team_id, image_url, background_color, foreground_color}` or `{ok:false, player_id|team_id, error}` — a failed slot means that one lookup missed, not the whole call; inspect each slot's ok flag. Player slots also carry `image_type`: 'bust' is the player's own likeness; 'silhouette' is generic placeholder art (a team or league fallback) — never treat a silhouette as depicting the player, even when its URL contains a name.
Imagery only — no stats, biographies, or rosters (use get_stats, get_player_detail, get_team_roster for those). Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.
The description explains the capability, when to use it, and what to expect.
Inputs91/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
league
The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL).
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
players › items › player_id
Numeric player ID from search_player.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
players › items › team_id
Numeric team ID from search_team. Selects the bust from the player's time on that team.
Clear enough to supply this argument.
players › items › season
Selects the bust from that season instead of today's. Use YYYY-YY for NBA/NHL/FC (e.g. '2015-16') or YYYY for MLB/WNBA/NFL/CFB (e.g. '2015').
Clear enough to supply this argument.
teams › items › team_id
Numeric team ID from search_team.
Clear enough to supply this argument.
teams › items › season
That season's logo instead of the current franchise logo. Use YYYY-YY for NBA/NHL/FC (e.g. '2015-16') or YYYY for MLB/WNBA/NFL/CFB (e.g. '2015').
Clear enough to supply this argument.
Annotations25/100
Declare destructiveHint, idempotentHint, openWorldHint based on the tool’s actual behavior.
{
"readOnlyHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_images",
"title": "Images",
"description": "Official StatMuse player bust images and team logos, each with its brand colors, for rendering visuals. Batch tool: pass every player and/or team you need in ONE call rather than calling per entity. Find IDs via search_player and search_team.\n\nPlayers resolve to a bust image — current-day by default; pass team_id and/or season on an item for an era-specific bust (the player in that team's uniform, or from that season). Teams resolve to the franchise's current logo by default, or that season's logo when season is given (covers historical rebrands and relocations). Every image carries background_color and foreground_color — the brand hex pair the image is designed to render on.\n\nResponse: `{players: [...], teams: [...]}`, each array aligned with your request order. Each slot is `{ok:true, player_id|team_id, image_url, background_color, foreground_color}` or `{ok:false, player_id|team_id, error}` — a failed slot means that one lookup missed, not the whole call; inspect each slot's ok flag. Player slots also carry `image_type`: 'bust' is the player's own likeness; 'silhouette' is generic placeholder art (a team or league fallback) — never treat a silhouette as depicting the player, even when its URL contains a name.\n\nImagery only — no stats, biographies, or rosters (use get_stats, get_player_detail, get_team_roster for those). Supported leagues: NBA, MLB, WNBA, NHL, NFL, CFB, FC.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"league"
],
"properties": {
"teams": {
"type": "array",
"items": {
"type": "object",
"required": [
"team_id"
],
"properties": {
"season": {
"type": "string",
"description": "That season's logo instead of the current franchise logo. Use YYYY-YY for NBA/NHL/FC (e.g. '2015-16') or YYYY for MLB/WNBA/NFL/CFB (e.g. '2015')."
},
"team_id": {
"type": "integer",
"maximum": 2147483647,
"description": "Numeric team ID from search_team.",
"exclusiveMinimum": 0
}
}
},
"maxItems": 10,
"minItems": 1,
"description": "Team logo lookups (1-10). Pass players and/or teams — at least one item overall."
},
"league": {
"enum": [
"nba",
"mlb",
"wnba",
"nhl",
"fc",
"nfl",
"cfb"
],
"type": "string",
"description": "The league to query. Supported: NBA, MLB, WNBA, NHL, NFL, CFB (college football), FC (Premier League, La Liga, Bundesliga, Serie A, Ligue 1, UCL)."
},
"players": {
"type": "array",
"items": {
"type": "object",
"required": [
"player_id"
],
"properties": {
"season": {
"type": "string",
"description": "Selects the bust from that season instead of today's. Use YYYY-YY for NBA/NHL/FC (e.g. '2015-16') or YYYY for MLB/WNBA/NFL/CFB (e.g. '2015')."
},
"team_id": {
"type": "integer",
"maximum": 2147483647,
"description": "Numeric team ID from search_team. Selects the bust from the player's time on that team.",
"exclusiveMinimum": 0
},
"player_id": {
"type": "integer",
"maximum": 2147483647,
"description": "Numeric player ID from search_player.",
"exclusiveMinimum": 0
}
}
},
"maxItems": 25,
"minItems": 1,
"description": "Player bust lookups (1-25). Batch every player you need into one call."
}
}
},
"annotations": {
"readOnlyHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description98/100
StatMuse NFL fantasy projections via ESPN. ESPN supplies projected statistics; StatMuse calculates points using fixed standard, half-PPR and PPR (default) scoring (4 points per passing TD, -2 per interception). K/D/ST scoring may differ from your league.
Pass player_ids and/or team_ids for lookups (25 combined maximum); team_ids mean D/ST, not the team's players. Find IDs via search_player/search_team. Without IDs, returns a leaderboard ordered by selected-format points: 25 rows by default, maximum 100. Optional positions filters support QB, RB, WR, TE, K and DST; use RB/WR/TE together for FLEX. Positions and limit are leaderboard-only.
Choose a required window: week with week_number (1-18), this_week (Tuesday–Monday, Eastern Time), or season (entire-season before week 1, stored rest-of-season during the regular season). Only the loaded season is available. Rest-of-season inclusion of the current week is unspecified. Weekly projections include completed games and may exist for bye weeks. Use get_games and get_player_injuries for lineup context; projections are forecasts, not actual results.
detail=summary (default) returns identity, fantasy position, current team and selected-format points; stats adds selected projected statistics. Response uses columns/rows with shared source, timeframe and scoring metadata. Numeric values are rounded to at most four decimals; leaderboard ordering uses unrounded points. Lookup rows preserve requested player order followed by team order, including duplicates. Inspect status: ok, not_found, no_projection or upstream_error. Empty results are normal; unresolved metadata is null. No data-freshness timestamp is available.
The description explains the capability, when to use it, and what to expect.
Inputs81/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
league
The league to query. NFL only.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
window
Required projection timeframe for the loaded NFL season.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
week_number
Required only for window=week; forbidden for other windows.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
scoring_system
Fixed scoring format; defaults to PPR. Applies to both query modes.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
detail
summary: identity and points; stats: adds selected projected statistics.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
player_ids
Player IDs from search_player. Pass player_ids and/or team_ids for lookup mode; 25 combined maximum.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
team_ids
Team IDs from search_team for D/ST projections. These do not select the team's players.
Clear enough to supply this argument.
positions
Leaderboard only. Omit for all six positions; RB, WR and TE together select FLEX.
Clear enough to supply this argument.
limit
Leaderboard only. Maximum rows returned; default 25, maximum 100.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
Annotations25/100
Declare destructiveHint, idempotentHint, openWorldHint based on the tool’s actual behavior.
{
"readOnlyHint": true
}
Output schema0/100
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "get_projections",
"title": "Fantasy Projections",
"description": "StatMuse NFL fantasy projections via ESPN. ESPN supplies projected statistics; StatMuse calculates points using fixed standard, half-PPR and PPR (default) scoring (4 points per passing TD, -2 per interception). K/D/ST scoring may differ from your league.\n\nPass player_ids and/or team_ids for lookups (25 combined maximum); team_ids mean D/ST, not the team's players. Find IDs via search_player/search_team. Without IDs, returns a leaderboard ordered by selected-format points: 25 rows by default, maximum 100. Optional positions filters support QB, RB, WR, TE, K and DST; use RB/WR/TE together for FLEX. Positions and limit are leaderboard-only.\n\nChoose a required window: week with week_number (1-18), this_week (Tuesday–Monday, Eastern Time), or season (entire-season before week 1, stored rest-of-season during the regular season). Only the loaded season is available. Rest-of-season inclusion of the current week is unspecified. Weekly projections include completed games and may exist for bye weeks. Use get_games and get_player_injuries for lineup context; projections are forecasts, not actual results.\n\ndetail=summary (default) returns identity, fantasy position, current team and selected-format points; stats adds selected projected statistics. Response uses columns/rows with shared source, timeframe and scoring metadata. Numeric values are rounded to at most four decimals; leaderboard ordering uses unrounded points. Lookup rows preserve requested player order followed by team order, including duplicates. Inspect status: ok, not_found, no_projection or upstream_error. Empty results are normal; unresolved metadata is null. No data-freshness timestamp is available.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"league",
"window"
],
"properties": {
"limit": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Leaderboard only. Maximum rows returned; default 25, maximum 100."
},
"detail": {
"enum": [
"summary",
"stats"
],
"type": "string",
"default": "summary",
"description": "summary: identity and points; stats: adds selected projected statistics."
},
"league": {
"enum": [
"nfl"
],
"type": "string",
"description": "The league to query. NFL only."
},
"window": {
"enum": [
"season",
"this_week",
"week"
],
"type": "string",
"description": "Required projection timeframe for the loaded NFL season."
},
"team_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2147483647,
"exclusiveMinimum": 0
},
"maxItems": 25,
"minItems": 1,
"description": "Team IDs from search_team for D/ST projections. These do not select the team's players."
},
"positions": {
"type": "array",
"items": {
"enum": [
"QB",
"RB",
"WR",
"TE",
"K",
"DST"
],
"type": "string"
},
"maxItems": 6,
"minItems": 1,
"description": "Leaderboard only. Omit for all six positions; RB, WR and TE together select FLEX."
},
"player_ids": {
"type": "array",
"items": {
"type": "integer",
"maximum": 2147483647,
"exclusiveMinimum": 0
},
"maxItems": 25,
"minItems": 1,
"description": "Player IDs from search_player. Pass player_ids and/or team_ids for lookup mode; 25 combined maximum."
},
"week_number": {
"type": "integer",
"maximum": 18,
"minimum": 1,
"description": "Required only for window=week; forbidden for other windows."
},
"scoring_system": {
"enum": [
"standard",
"half_ppr",
"ppr"
],
"type": "string",
"default": "ppr",
"description": "Fixed scoring format; defaults to PPR. Applies to both query modes."
}
}
},
"annotations": {
"readOnlyHint": true
}
}
The title clearly communicates the tool’s action and subject. Keep it concise.
Description87/100
Report friction with the StatMuse tools to the team that builds them. Use it for problems with these tools themselves, in one of five categories:
- tool_error: a tool call failed or returned an error you did not expect.
- unexpected_response: a response did not match what the tool's description promised, including a malformed or empty response.
- unclear_description: a tool's description or argument documentation was unclear, misleading, or not enough to act on.
- missing_capability: you needed a tool, argument, or piece of information these tools do not offer (name the tool you wish existed in `tool`).
- other: friction that fits none of the above.
A disagreement between the numbers these tools return and another source is not feedback: do not submit it.
Submit at the moment you hit the problem, not at the end of the task. Do not include personal details about the user.
The description explains the capability, when to use it, and what to expect.
Inputs95/100
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
category
The kind of friction: tool_error, unexpected_response, unclear_description, missing_capability, or other.
Remove validation rules already expressed in this field’s schema; describe its meaning and usage instead.
tool
The tool the feedback is about, or the name of a tool you wish existed.
Clear enough to supply this argument.
summary
One line stating the problem.
Clear enough to supply this argument.
details
What you were trying to do, what you tried, and where you got stuck.
Clear enough to supply this argument.
reported_by
'agent' for your own observation, 'user' when relaying something the person said.
Clear enough to supply this argument.
attempted_arguments
The arguments you sent to the tool, rendered however you choose.
No output schema is declared. Add one for structured results so clients can interpret returned fields.
Not declared
Original tool metadata
{
"name": "submit_feedback",
"title": "Feedback",
"description": "Report friction with the StatMuse tools to the team that builds them. Use it for problems with these tools themselves, in one of five categories:\n- tool_error: a tool call failed or returned an error you did not expect.\n- unexpected_response: a response did not match what the tool's description promised, including a malformed or empty response.\n- unclear_description: a tool's description or argument documentation was unclear, misleading, or not enough to act on.\n- missing_capability: you needed a tool, argument, or piece of information these tools do not offer (name the tool you wish existed in `tool`).\n- other: friction that fits none of the above.\n\nA disagreement between the numbers these tools return and another source is not feedback: do not submit it.\n\nSubmit at the moment you hit the problem, not at the end of the task. Do not include personal details about the user.",
"inputSchema": {
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"category",
"summary",
"details"
],
"properties": {
"tool": {
"type": "string",
"maxLength": 64,
"description": "The tool the feedback is about, or the name of a tool you wish existed."
},
"details": {
"type": "string",
"maxLength": 2000,
"minLength": 1,
"description": "What you were trying to do, what you tried, and where you got stuck."
},
"summary": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "One line stating the problem."
},
"category": {
"enum": [
"tool_error",
"unexpected_response",
"unclear_description",
"missing_capability",
"other"
],
"type": "string",
"description": "The kind of friction: tool_error, unexpected_response, unclear_description, missing_capability, or other."
},
"reported_by": {
"enum": [
"agent",
"user"
],
"type": "string",
"default": "agent",
"description": "'agent' for your own observation, 'user' when relaying something the person said."
},
"attempted_arguments": {
"type": "string",
"maxLength": 1000,
"description": "The arguments you sent to the tool, rendered however you choose."
}
}
},
"annotations": {
"readOnlyHint": false,
"openWorldHint": false,
"idempotentHint": false,
"destructiveHint": false
}
}
Loading score analytics…
Put your MCP to the test
A few tasks worth trying with this server, chosen from its reviewed tools. These have not been run.
01Season BriefingCall this FIRST for any prompt about the current season, recent events, or present-day players and teams — StatMuse's snapshot of where a league stands right…
02StandingsGet StatMuse league standings — win/loss records, ranks, games behind, and clinched status — for the current season by default, a past one via season, or a s…
03Player SearchSearch StatMuse for players by full name (e.g.
04Team SearchResolve teams to the StatMuse team IDs other tools need.
05NewsList recent StatMuse news articles, league-wide by default or scoped to one player or one team (pass at most one of player_id/team_id).
Want to run these tasks against your MCP server with us?
StatMuse setup, tools, quality score, publishing readiness, and alternatives.
How do I add StatMuse to Claude, ChatGPT, or Cursor?
Add StatMuse to Claude, ChatGPT, or Cursor by connecting its remote MCP URL in each client's MCP settings. In Claude, add a custom connector. In ChatGPT, add an MCP app. In Cursor, add an MCP server under Settings. The MCP URL is https://api.statmuse.com/mcp.
Is StatMuse MCP ready for ChatGPT and Claude?
As of November 13, 2026, StatMuse scores 90/100 on Manufact's MCP publishing checklist. The scan does not yet meet ChatGPT publishing checks and meets Claude publishing checks. Passing these checks does not guarantee marketplace approval.
How clear is StatMuse's MCP tool documentation?
As of November 13, 2026, StatMuse scores 72/100 in Manufact's review of tool titles, descriptions, input and output schemas, and behavior annotations. The review covers 17 of 17 discovered tools. The quality score measures documentation clarity; runtime behavior and marketplace readiness require separate checks.
What are the best alternatives to StatMuse?
As of November 13, 2026, alternatives to StatMuse in data-analytics on the Manufact MCP leaderboard include Polygraph, Neon, ClickHouse Cloud MCP Server, Crash Round Lab, and Ploti.
How can StatMuse improve its MCP documentation?
get_stats is the lowest-scoring reviewed tool at 61/100. No output schema is declared. Add one for structured results so clients can interpret returned fields. Open its review for feedback and a copyable fix prompt, then rerun the documentation review after updating your tool metadata.
Not your MCP?
Review any public or OAuth MCP server for protocol compatibility, tool documentation, and ChatGPT and Claude publishing readiness. No account required.