io.github.lacausecrypto/sports-hub
NPM · MCP-SPORTS-HUB · SCANNED SEP 20
41 sports API providers, 396 tools: scores, stats, odds, esports, chess, motorsport & more.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 31 of 95 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency45
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Clear OSI-approved license (MIT).Pass
- Actively maintained (last published 87 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability89
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Tool/resource definitions use about 11924 tokens (~71/item across 167 items; 165 tools + 2 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management90
- Stability observed for 27 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 165 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 166 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
How do I install the io.github.lacausecrypto/sports-hub MCP server?
io.github.lacausecrypto/sports-hub runs locally as an npm package, launched with npx -y mcp-sports-hub. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · mcp-sports-hub
claude mcp add lacausecrypto-sports-hub -- npx -y mcp-sports-hub
{
"mcpServers": {
"lacausecrypto-sports-hub": {
"command": "npx",
"args": [
"-y",
"mcp-sports-hub"
]
}
}
} {
"servers": {
"lacausecrypto-sports-hub": {
"command": "npx",
"args": [
"-y",
"mcp-sports-hub"
]
}
}
} codex mcp add lacausecrypto-sports-hub -- npx -y mcp-sports-hub
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"lacausecrypto-sports-hub": {
"type": "local",
"command": [
"npx",
"-y",
"mcp-sports-hub"
],
"enabled": true
}
}
} openclaw mcp add lacausecrypto-sports-hub --command npx --arg -y --arg mcp-sports-hub
mcp_servers:
lacausecrypto-sports-hub:
command: "npx"
args: ["-y", "mcp-sports-hub"] {
"McpServers": {
"lacausecrypto-sports-hub": {
"Transport": "stdio",
"Command": "npx",
"Arguments": [
"-y",
"mcp-sports-hub"
]
}
}
} assistant mcp add lacausecrypto-sports-hub -t stdio -c npx -a -y mcp-sports-hub
{
"mcpServers": {
"lacausecrypto-sports-hub": {
"command": "npx",
"args": [
"-y",
"mcp-sports-hub"
]
}
}
} Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 19 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.
- 17 Sept 26 −2
- Security disclosure: unverified → fail ▼ functional
- Stability: pass → 0.80 functional
- 16 Sept 26 0
- Stability: 0.97 → pass security
- Security disclosure: fail → unverified ▼ functional
- 15 Sept 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 93 to 97. That category is still filling its 30-day observation window: 28 days of observed history at the previous scan, 29 at this one. The score rises as the window fills, whether or not the server changes.
- 12 Sept 26 +1
- Security disclosure: unverified → fail ▼ functional
- 10 Sept 26 −2
- Security disclosure: fail → unverified ▼ functional
- Stability: pass → 0.80 functional
- 9 Sept 26 0
- Stability: 0.97 → pass security
- 8 Sept 26 +1
- Security disclosure: unverified → fail ▼ functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 20 Sept 2026 · Analysed npm/mcp-sports-hub@1.3.0
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 95 packages
| Packages resolved | 95 |
|---|---|
| Stale | 31 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
lichess_get_user lichess: Get user ~47
Get a Lichess user's public profile, including per-variant ratings, played games, and account flags.
| Name | Type | Req | Description |
|---|---|---|---|
| username | string | yes | Lichess username (case-insensitive) |
No output schema declared.
No examples provided.
lichess_get_users_status lichess: Get users status ~59
Get realtime online + streaming status for up to 100 Lichess users in a single call.
| Name | Type | Req | Description |
|---|---|---|---|
| ids | string | yes | Comma-separated usernames (max 100), e.g. "thibault,DrDrunkenstein" |
No output schema declared.
No examples provided.
mlb_get_divisions mlb: Get divisions ~25
List all MLB divisions with their IDs, names, and associated leagues.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
mlb_get_game mlb: Get game ~43
Get detailed game data from the live feed including plays, box score, and line score.
| Name | Type | Req | Description |
|---|---|---|---|
| game_pk | number | yes | The unique game ID (gamePk) |
No output schema declared.
No examples provided.
mlb_get_game_boxscore mlb: Get game boxscore ~44
Get the box score for a game with full batting and pitching stats for both teams.
| Name | Type | Req | Description |
|---|---|---|---|
| game_pk | number | yes | The unique game ID (gamePk) |
No output schema declared.
No examples provided.
mlb_get_game_linescore mlb: Get game linescore ~43
Get the line score (inning-by-inning scoring summary) for a game.
| Name | Type | Req | Description |
|---|---|---|---|
| game_pk | number | yes | The unique game ID (gamePk) |
No output schema declared.
No examples provided.
mlb_get_game_play_by_play mlb: Get game play by play ~45
Get play-by-play data for a specific game including all at-bats and pitches.
| Name | Type | Req | Description |
|---|---|---|---|
| game_pk | number | yes | The unique game ID (gamePk) |
No output schema declared.
No examples provided.
mlb_get_league_leaders mlb: Get league leaders ~106
Get league stat leaders for categories like home runs, batting average, ERA, strikeouts, etc.
| Name | Type | Req | Description |
|---|---|---|---|
| leaderCategories | string | yes | Stat category: "homeRuns", "battingAverage", "earnedRunAverage", "strikeouts", "wins", "saves", "stolenBases", etc. |
| season | string | – | Season year (e.g. 2024) |
| sportId | number | – | Sport ID (1=MLB) |
No output schema declared.
No examples provided.
mlb_get_player mlb: Get player ~63
Get detailed player information including bio, position, and optionally hydrated stats.
| Name | Type | Req | Description |
|---|---|---|---|
| hydrate | string | – | Hydration string, e.g. "stats(group=[hitting],type=[season])" to include stats |
| player_id | number | yes | Player ID |
No output schema declared.
No examples provided.
mlb_get_player_stats mlb: Get player stats ~101
Get detailed statistics for a player by stat type and group.
| Name | Type | Req | Description |
|---|---|---|---|
| group | string | yes | Stat group: "hitting", "pitching", "fielding" |
| player_id | number | yes | Player ID |
| season | string | – | Season year (e.g. 2024) |
| stats_type | string | yes | Stat type: "season", "career", "gameLog", "yearByYear", "seasonAdvanced", etc. |
No output schema declared.
No examples provided.
mlb_get_schedule mlb: Get schedule ~131
Get the MLB game schedule for a date or date range. Returns games with scores, status, and teams.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | Single date in YYYY-MM-DD format (e.g. 2024-04-15) |
| endDate | string | – | Range end date YYYY-MM-DD |
| sportId | number | – | Sport ID (1=MLB, 11=AAA, 12=AA, 13=A, 14=A-short) |
| startDate | string | – | Range start date YYYY-MM-DD |
| teamId | number | – | Filter by team ID |
No output schema declared.
No examples provided.
mlb_get_standings mlb: Get standings ~99
Get league standings with win/loss records, division ranks, and streaks.
| Name | Type | Req | Description |
|---|---|---|---|
| leagueId | string | – | League ID(s), comma-separated (103=AL, 104=NL). Defaults to both. |
| season | string | – | Season year (e.g. 2024). Defaults to current season. |
| standingsTypes | string | – | Standings type: regularSeason, wildCard, divisionLeaders, etc. |
No output schema declared.
No examples provided.
mlb_get_team_roster mlb: Get team roster ~72
Get a team's roster with player names, positions, jersey numbers, and status.
| Name | Type | Req | Description |
|---|---|---|---|
| rosterType | string | – | Roster type: active, fullSeason, 40Man, depthChart, etc. |
| season | string | – | Season year |
| team_id | number | yes | Team ID |
No output schema declared.
No examples provided.
mlb_get_teams mlb: Get teams ~51
List MLB teams with their IDs, names, venues, divisions, and leagues.
| Name | Type | Req | Description |
|---|---|---|---|
| season | string | – | Season year |
| sportId | number | – | Sport ID (1=MLB) |
No output schema declared.
No examples provided.
mlb_search_players mlb: Search players ~57
Search for players by name. Returns matching players with their IDs, teams, and positions.
| Name | Type | Req | Description |
|---|---|---|---|
| names | string | yes | Player name(s) to search for |
| sportId | number | – | Sport ID (1=MLB) |
No output schema declared.
No examples provided.
motogp_get_categories motogp: Get categories ~75
List the racing categories (MotoGP, Moto2, Moto3, MotoE) for a season, with their UUIDs. Use a seasonUuid from motogp_get_seasons; the returned categoryUuid feeds sessions and standings.
| Name | Type | Req | Description |
|---|---|---|---|
| season_uuid | string | yes | Season UUID from motogp_get_seasons |
No output schema declared.
No examples provided.
motogp_get_events motogp: Get events ~70
List the events (Grands Prix) in a season with circuit, country and dates. Each event's UUID feeds motogp_get_sessions.
| Name | Type | Req | Description |
|---|---|---|---|
| is_finished | boolean | – | Filter to finished events only |
| season_uuid | string | yes | Season UUID from motogp_get_seasons |
No output schema declared.
No examples provided.
motogp_get_riders motogp: Get riders ~51
List MotoGP riders with their profile data (name, number, country, team). Optionally filter by category UUID.
| Name | Type | Req | Description |
|---|---|---|---|
| category_uuid | string | – | Category UUID to filter riders (optional) |
No output schema declared.
No examples provided.
motogp_get_seasons motogp: Get seasons ~49
List MotoGP seasons with their UUIDs and year. The `id` (seasonUuid) feeds the categories/events/standings tools. `current:true` marks the live season.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
motogp_get_session_classification motogp: Get session classification ~78
Get the full classification (results) of a session: rider, team, constructor, time/gap and points. Use a session id from motogp_get_sessions.
| Name | Type | Req | Description |
|---|---|---|---|
| session_id | string | yes | Session id from motogp_get_sessions |
| test | boolean | – | Set true for test sessions (default false) |
No output schema declared.
No examples provided.
motogp_get_sessions motogp: Get sessions ~92
List the sessions (practice, qualifying, race, etc.) for an event and category. Pass eventUuid from motogp_get_events and categoryUuid from motogp_get_categories. Each session id feeds motogp_get_session_classification.
| Name | Type | Req | Description |
|---|---|---|---|
| category_uuid | string | yes | Category UUID from motogp_get_categories |
| event_uuid | string | yes | Event UUID from motogp_get_events |
No output schema declared.
No examples provided.
motogp_get_standings motogp: Get standings ~72
Get the championship standings for a season and category (riders' or constructors' points table). Pass seasonUuid and categoryUuid.
| Name | Type | Req | Description |
|---|---|---|---|
| category_uuid | string | yes | Category UUID from motogp_get_categories |
| season_uuid | string | yes | Season UUID from motogp_get_seasons |
No output schema declared.
No examples provided.
nascar_get_lap_times nascar: Get lap times ~86
Get per-driver lap times and speeds for a specific race. Use the race_id from nascar_get_schedule.
| Name | Type | Req | Description |
|---|---|---|---|
| race_id | integer | yes | Race id from nascar_get_schedule |
| series_id | integer | yes | Series id: 1 = Cup, 2 = Xfinity, 3 = Craftsman Truck |
| year | integer | yes | Season year |
No output schema declared.
No examples provided.
nascar_get_live nascar: Get live ~57
Get the live race feed: current lap, flag state, laps to go, leader and per-vehicle running order. When no race is live, fields are in an idle state (flag_state 9, race_id -1).
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
nascar_get_schedule nascar: Get schedule ~78
Get the NASCAR race schedule for a season and series, including track, dates, winners and stage info for completed races.
| Name | Type | Req | Description |
|---|---|---|---|
| series_id | integer | yes | Series id: 1 = Cup, 2 = Xfinity, 3 = Craftsman Truck |
| year | integer | yes | Season year (e.g. 2026) |
No output schema declared.
No examples provided.
ncaa_get_game ncaa: Get game ~60
Get detailed information about a specific NCAA game, including play-by-play, box score, and stats.
| Name | Type | Req | Description |
|---|---|---|---|
| game_id | string | yes | NCAA game ID |
| sport | string | yes | Sport name, e.g. "football", "basketball" |
No output schema declared.
No examples provided.
ncaa_get_news ncaa: Get news ~46
Get the latest NCAA news, optionally filtered by sport.
| Name | Type | Req | Description |
|---|---|---|---|
| sport | string | – | Sport name, e.g. "football", "basketball". Omit for all sports. |
No output schema declared.
No examples provided.
ncaa_get_rankings ncaa: Get rankings ~115
Get NCAA rankings/polls (AP, Coaches, CFP, etc.) for a sport.
| Name | Type | Req | Description |
|---|---|---|---|
| division | string | – | Division code, e.g. "fbs", "d1" |
| poll | string | – | Poll name, e.g. "ap", "coaches", "cfp" |
| sport | string | yes | Sport name, e.g. "football", "basketball" |
| week | string | – | Week number |
| year | string | – | Year (e.g. 2024) |
No output schema declared.
No examples provided.
ncaa_get_schedule ncaa: Get schedule ~64
Get a team's NCAA schedule for a season.
| Name | Type | Req | Description |
|---|---|---|---|
| sport | string | yes | Sport name, e.g. "football", "basketball" |
| team_id | string | yes | NCAA team ID |
| year | string | – | Year (e.g. 2024) |
No output schema declared.
No examples provided.
ncaa_get_scoreboard ncaa: Get scoreboard ~127
Get the NCAA scoreboard for a sport and division. Returns games with scores, status, and basic info.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | Date in YYYY/MM/DD format (e.g. 2024/01/15). Defaults to today. |
| division | string | yes | Division code, e.g. "fbs", "fcs", "d1", "d2", "d3" |
| sport | string | yes | Sport name, e.g. "football", "basketball", "baseball", "soccer", "hockey", "lacrosse" |
No output schema declared.
No examples provided.
ncaa_get_standings ncaa: Get standings ~81
Get NCAA standings for a sport and division, optionally for a specific year.
| Name | Type | Req | Description |
|---|---|---|---|
| division | string | – | Division code, e.g. "fbs", "d1" |
| sport | string | yes | Sport name, e.g. "football", "basketball" |
| year | string | – | Year (e.g. 2024) |
No output schema declared.
No examples provided.
ncaa_get_stats ncaa: Get stats ~93
Get player or team statistics for an NCAA sport/division.
| Name | Type | Req | Description |
|---|---|---|---|
| division | string | yes | Division code, e.g. "fbs", "d1" |
| sport | string | yes | Sport name, e.g. "football", "basketball" |
| stat_type | string | – | Stat type: "individual" or "team" |
| year | string | – | Year (e.g. 2024) |
No output schema declared.
No examples provided.
ncaa_get_teams ncaa: Get teams ~75
Get NCAA teams in a division, optionally filtered by conference.
| Name | Type | Req | Description |
|---|---|---|---|
| conference_id | string | – | Conference ID to filter by |
| division | string | yes | Division code, e.g. "fbs", "d1" |
| sport | string | yes | Sport name, e.g. "football", "basketball" |
No output schema declared.
No examples provided.
nhl_get_draft nhl: Get draft ~21
Get the current NHL draft rankings and prospect information.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
nhl_get_game_boxscore nhl: Get game boxscore ~55
Get the box score for a specific NHL game. Includes goals, assists, shots, saves, and other stats.
| Name | Type | Req | Description |
|---|---|---|---|
| game_id | integer | yes | NHL game ID (e.g. 2023020001) |
No output schema declared.
No examples provided.
nhl_get_game_landing nhl: Get game landing ~55
Get the game landing page data for an NHL game. Includes summary, three stars, scoring plays, and more.
| Name | Type | Req | Description |
|---|---|---|---|
| game_id | integer | yes | NHL game ID (e.g. 2023020001) |
No output schema declared.
No examples provided.
nhl_get_game_play_by_play nhl: Get game play by play ~60
Get the full play-by-play feed for an NHL game. Contains every event (shots, goals, penalties, faceoffs, etc.).
| Name | Type | Req | Description |
|---|---|---|---|
| game_id | integer | yes | NHL game ID (e.g. 2023020001) |
No output schema declared.
No examples provided.
nhl_get_player nhl: Get player ~52
Get detailed information about an NHL player -- bio, career stats, current season stats, awards.
| Name | Type | Req | Description |
|---|---|---|---|
| player_id | integer | yes | NHL player ID (e.g. 8478402 for Connor McDavid) |
No output schema declared.
No examples provided.
nhl_get_player_game_log nhl: Get player game log ~93
Get the game-by-game stats log for an NHL player in a given season.
| Name | Type | Req | Description |
|---|---|---|---|
| game_type | integer | – | Game type: 2 = regular season (default), 3 = playoffs |
| player_id | integer | yes | NHL player ID (e.g. 8478402) |
| season | string | – | Season identifier, e.g. "20232024" (defaults to current season) |
No output schema declared.
No examples provided.
nhl_get_schedule nhl: Get schedule ~48
Get the NHL schedule for a given date. Returns all games, start times, teams, and venues.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | Date in YYYY-MM-DD format (defaults to today) |
No output schema declared.
No examples provided.
nhl_get_scores nhl: Get scores ~20
Get live and final scores for today's NHL games.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
nhl_get_standings nhl: Get standings ~58
Get NHL standings. Optionally filter by date or season.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | – | Date in YYYY-MM-DD format (defaults to today) |
| season | string | – | Season identifier, e.g. "20232024" |
No output schema declared.
No examples provided.
nhl_get_stat_leaders nhl: Get stat leaders ~89
Get the NHL stat leaders for a given category (points, goals, assists, wins, etc.).
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | – | Stat category: "points", "goals", "assists", "plusMinus", "gaa", "savePctg", etc. (defaults to "points") |
| season | string | – | Season identifier, e.g. "20232024" |
No output schema declared.
No examples provided.
nhl_get_team_roster nhl: Get team roster ~85
Get the roster for an NHL team. Returns forwards, defensemen, and goalies with jersey numbers and positions.
| Name | Type | Req | Description |
|---|---|---|---|
| season | string | – | Season identifier, e.g. "20232024" (defaults to current season) |
| team_abbrev | string | yes | Three-letter team abbreviation (e.g. "TOR", "MTL", "BOS") |
No output schema declared.
No examples provided.
nhl_get_team_schedule nhl: Get team schedule ~64
Get the monthly schedule for an NHL team.
| Name | Type | Req | Description |
|---|---|---|---|
| month | string | – | Month in YYYY-MM format (defaults to current month) |
| team_abbrev | string | yes | Three-letter team abbreviation (e.g. "TOR", "MTL", "BOS") |
No output schema declared.
No examples provided.
nhl_get_team_stats nhl: Get team stats ~60
Get current-season stats for an NHL team (goals, shots, power play, penalty kill, etc.).
| Name | Type | Req | Description |
|---|---|---|---|
| team_abbrev | string | yes | Three-letter team abbreviation (e.g. "TOR", "MTL", "BOS") |
No output schema declared.
No examples provided.
opendota_get_hero_stats opendota: Get hero stats ~31
Get hero stats / current meta: per-bracket pick and win counts for every hero.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
opendota_get_heroes opendota: Get heroes ~29
List all Dota 2 heroes with id, name, primary attribute and roles.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
opendota_get_match opendota: Get match ~59
Get full detail for a Dota 2 match: players, heroes, K/D/A, items, gold/xp, objectives.
| Name | Type | Req | Description |
|---|---|---|---|
| match_id | integer | yes | Match id (e.g. from opendota_get_pro_matches) |
No output schema declared.
No examples provided.
opendota_get_player opendota: Get player ~51
Get a player's profile and aggregate stats by Steam32 account id (rank, MMR estimate, profile).
| Name | Type | Req | Description |
|---|---|---|---|
| account_id | integer | yes | Steam32 account id (from opendota_search_players) |
No output schema declared.
No examples provided.
What is the io.github.lacausecrypto/sports-hub MCP server?
io.github.lacausecrypto/sports-hub is an MCP server listed in the public MCP registry as io.github.lacausecrypto/sports-hub. 41 sports API providers, 396 tools: scores, stats, odds, esports, chess, motorsport & more. This page covers its npm package (mcp-sports-hub).
Is the io.github.lacausecrypto/sports-hub MCP server safe to use?
io.github.lacausecrypto/sports-hub scores 85 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the io.github.lacausecrypto/sports-hub MCP server expose?
io.github.lacausecrypto/sports-hub exposes 165 tools: espn_get_scoreboard, espn_get_standings, espn_get_teams, espn_get_team_details, espn_get_team_roster, and 160 more. Their descriptions and schemas cost roughly 11,870 tokens of context every time the server is loaded.
Is the io.github.lacausecrypto/sports-hub MCP server still maintained?
io.github.lacausecrypto/sports-hub is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What licence is the io.github.lacausecrypto/sports-hub MCP server under?
io.github.lacausecrypto/sports-hub declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.