diff --git a/docs/nike_mcp.md b/docs/nike_mcp.md new file mode 100644 index 0000000..6107a7d --- /dev/null +++ b/docs/nike_mcp.md @@ -0,0 +1,177 @@ +# Nike MCP Tools + +Nike exposes a [Model Context Protocol](https://modelcontextprotocol.io/) server over HTTP Streamable transport at `/mcp/`. All tools are read-only and pull live football (soccer) data from [TheSportsDB](https://www.thesportsdb.com/). + +## Connecting + +| Setting | Value | +|---------|-------| +| Transport | HTTP Streamable | +| Endpoint | `http://:/mcp/` | +| Default port | `8000` | + +## Tools + +### `get_team_info` + +Get a team's profile: stadium, capacity, location, founded year, colors, and a short description. + +**Parameters** + +| Name | Type | Default | Description | +|------|------|---------|-------------| +| `team_name` | string | `"Toronto FC"` | Team name — e.g. `"Arsenal"`, `"TFC"` | + +**Example** +``` +get_team_info("Arsenal") +``` + +--- + +### `get_roster` + +Get the current squad for a team, grouped by position (Goalkeepers → Defenders → Midfielders → Attackers). + +**Parameters** + +| Name | Type | Default | Description | +|------|------|---------|-------------| +| `team_name` | string | `"Toronto FC"` | Team name | + +**Notes** +- Requires a premium TheSportsDB key for live V2 squad data. +- Falls back to the locally cached roster when no premium key is configured. + +--- + +### `get_player_info` + +Get a player's profile: position, nationality, date of birth, current team, and status. + +**Parameters** + +| Name | Type | Default | Description | +|------|------|---------|-------------| +| `player_name` | string | _(required)_ | Player name | + +**Notes** +- With a premium key, also returns height, weight, squad number, and a biography. + +--- + +### `get_fixtures` + +Get recent results and upcoming matches for a team. + +**Parameters** + +| Name | Type | Default | Description | +|------|------|---------|-------------| +| `team_name` | string | `"Toronto FC"` | Team name | +| `status` | string | `"all"` | `"all"`, `"upcoming"`, or `"past"` | + +--- + +### `get_standings` + +Get the league table with points, goal difference, and current form. + +**Parameters** + +| Name | Type | Default | Description | +|------|------|---------|-------------| +| `league` | string | `"American Major League Soccer"` | League name (see aliases below) | +| `season` | string | `"2026"` | Season — `"2026"` for MLS, `"2025-2026"` for European leagues | + +**Supported league aliases** + +| Alias | League | +|-------|--------| +| `MLS`, `Major League Soccer`, `American Major League Soccer` | MLS (ID 4346) | +| `EPL`, `Premier League`, `English Premier League` | Premier League (ID 4328) | + +For other leagues, pass the full league name and Nike will attempt to resolve it automatically. + +--- + +### `get_match_result` + +Get the result of a match for a team on a specific date. + +**Parameters** + +| Name | Type | Default | Description | +|------|------|---------|-------------| +| `team_name` | string | _(required)_ | Team name | +| `match_date` | string | _(required)_ | Date in `YYYY-MM-DD` format | + +**Example** +``` +get_match_result("Toronto FC", "2026-03-09") +``` + +Returns the score, venue, referee, attendance, and match status. + +--- + +### `get_match_detail` + +Get deep detail for a specific match: full statistics, starting lineups, substitutes, and a minute-by-minute timeline (goals, cards, substitutions). + +**Parameters** + +| Name | Type | Default | Description | +|------|------|---------|-------------| +| `event_id` | integer | _(required)_ | TheSportsDB event ID | + +**Notes** +- Requires a premium TheSportsDB key — returns an error message otherwise. +- Obtain `event_id` from `get_fixtures` or `get_match_result` first. + +**Typical workflow** +``` +# Step 1 — find the event ID +get_fixtures("Toronto FC", "past") + +# Step 2 — get the full detail +get_match_detail(1896543) +``` + +--- + +### `get_livescores` + +Get current live soccer scores worldwide, grouped by league. + +**Parameters**: none + +**Notes** +- Requires a premium TheSportsDB key — returns an error message otherwise. + +--- + +## Prompt + +### `football_analyst` + +Primes the assistant with football analyst context: a description of the Nike platform, the list of followed teams, and a summary of available tools. + +Use this prompt at the start of a session to get role-appropriate behaviour without having to describe the tools manually. + +--- + +## Premium vs. free tier + +Some tools require a premium [TheSportsDB](https://www.thesportsdb.com/api.php) API key (set via `SPORTSDB_KEY` environment variable). The free key is `3`. + +| Tool | Free tier | Premium required | +|------|-----------|-----------------| +| `get_team_info` | ✓ | | +| `get_roster` | Cached data only | Live V2 squad | +| `get_player_info` | Basic profile | Height, weight, number, bio | +| `get_fixtures` | ✓ | | +| `get_standings` | ✓ | | +| `get_match_result` | ✓ | | +| `get_match_detail` | — | ✓ (required) | +| `get_livescores` | — | ✓ (required) |