SportsAPIs.dev
Server Details
Find and compare sports odds and data APIs, and read the SportsAPIs.dev review of each one.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-06-18
- URL
TDQS
Scored across 3 tools
Each tool targets a distinct query shape: multi-provider comparison (compare), filter-based discovery (find), and single-provider lookup (get_details). There is mild overlap since all three surface the same feature/pricing facts, but the descriptions explicitly bound each case (2-4 named providers vs. one named provider vs. filter search) and warn against misuse.
All three follow a clean verb_noun snake_case pattern (compare_sports_apis, find_sports_apis, get_sports_api_details) with consistent verb-first style. No case mixing or stylistic drift.
Three tools is on the thin side but appropriate for a narrow directory/comparison service where discovery, comparison, and detail lookup are the only core jobs. Each tool clearly earns its place with no filler.
The surface covers the main workflow: find candidates, compare shortlisted providers, and inspect one in depth. The only real gap is no way to browse or list the full directory (e.g., list all providers or categories), which agents could otherwise rely on.
Available Tools
3 toolscompare_sports_apisCompare sports APIs side by sideARead-onlyInspect
Use this when a developer names two to four sports odds or sports data API providers and wants them compared, for example "The-Odds-API vs OddsPapi" or "SportsGamesOdds or SportsData.io for player props". Returns a side-by-side table of researched feature support (pregame, live, Bet365, Pinnacle, closing odds, futures, same game parlay, deeplinks, settlement, stats, schedules, WebSocket, MCP server, esports), pricing scale, free tier, sports mentioned in our reviews, the differences between them, and the SportsAPIs.dev review URL for each. Providers must be in the SportsAPIs.dev directory. Do not use this to compare betting odds or sportsbook prices for a game.
| Name | Required | Description | Default |
|---|---|---|---|
| providers | Yes | Two to four provider names as developers write them, for example ["The-Odds-API", "OddsPapi", "SportsGamesOdds"]. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| providers | Yes | |
| differences | Yes | |
| shared_confirmed | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, non-destructive, closed-world, so the safety profile is covered. The description adds real behavioral context beyond that: it enumerates the exact dimensions compared (pregame, live, Bet365, Pinnacle, closing odds, futures, same game parlay, deeplinks, settlement, stats, schedules, WebSocket, MCP server, esports), notes pricing/free tier and sports reviews, and states the provider-directory constraint. It could be stronger by noting the comparison is based on 'researched' support (source/timeliness caveats), but for a read-only comparison tool this is rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the trigger condition ('Use this when...') and then flows naturally into outputs, constraints, and the exclusion. The long feature enumeration is dense but earns its place by telling the agent what the comparison will contain. Just slightly over-detailed for a single-sentence core, but every clause is informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read-only comparison tool, the description covers trigger conditions, scope, output contents, prerequisites, and an explicit anti-use case. It correctly leaves the output schema to describe the table structure while still summarizing the comparison dimensions, so an agent can call it confidently without consulting siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single parameter is fully documented in the schema, including the 2-4 count constraint and example values. The description reinforces the input shape with the same examples but adds no syntax, formatting, or naming requirements beyond what the schema already states. Baseline 3 is appropriate when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb (compare) and resources (2-4 sports odds/data API providers), with concrete examples of the phrasing that should trigger it. It clearly distinguishes itself from find_sports_apis and get_sports_api_details by describing a side-by-side multi-provider comparison rather than lookup or detail retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly names when to use it (developer names two to four providers and wants comparison), provides example utterances, states the prerequisite (providers must be in the SportsAPIs.dev directory), and gives an explicit exclusion: 'Do not use this to compare betting odds or sportsbook prices for a game.' This is a textbook when/when-not/context definition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_sports_apisFind sports data and odds APIsARead-onlyInspect
Use this when a developer asks which sports odds API, sports data API, sportsbook odds feed, live odds API, esports odds API, player props API, or free sports API to use for an app, model, or odds comparison tool. Filters the providers researched by SportsAPIs.dev by sport, required features (live odds, WebSocket streaming, Bet365 or Pinnacle odds, historical odds, player props, stats, live scores, MCP server), free tier, price tier and region. Returns a ranked short list with a one-line reason and the SportsAPIs.dev review URL for each provider. Ranking: every feature, free tier, price and region filter must match; sport is a boost, not a filter, because sport lists come from mentions in our reviews. Featured partners of SportsAPIs.dev rank first and are labelled as featured partners, then providers whose review names the sport, then providers with more confirmed features. Do not use this for betting picks, game predictions, or the odds of a specific match; it has no odds data, only facts about API providers.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | "odds" for odds and betting-market APIs, "data" for scores, stats and schedules APIs with no odds. Default "any". | |
| limit | No | How many providers to return. Default 5. | |
| needs | No | Features the API must have. Every listed need must be confirmed for a provider to appear. | |
| sport | No | Sport or league the developer needs, for example "NFL", "soccer", "tennis", "esports", "college football". Boosts providers whose review names that sport; it does not exclude the rest. | |
| region | No | Bookmaker focus: "usa" for US sportsbooks and Bookmaker.eu feeds, "international" for European and Asian books including Pinnacle feeds. Default "any". | |
| free_tier | No | true = only providers with a confirmed free tier or free plan. | |
| max_price_tier | No | Highest acceptable entry price tier on a 1 to 5 scale (1 = about $20/mo, 5 = $1000+/mo). Example: 2 keeps providers whose cheapest paid plan is tier 2 or lower. |
Output Schema
| Name | Required | Description |
|---|---|---|
| notes | No | |
| results | Yes | |
| directory_url | Yes | |
| total_matches | Yes | |
| filters_applied | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered. The description still adds real behavioral value beyond them — the ranking algorithm, the fact that sport is a boost not a filter, and that featured partners rank first — which is notable disclosure of commercial bias. It stops short of covering latency/rate limits, but that absence matters little for a static directory lookup, so this sits at an adequate-with-added-context level.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is front-loaded with the use trigger and the ranking/return behavior follows logically. It is dense — the opening list of API flavors reads as a keyword dump and could be trimmed — but no sentence is truly wasted given the informational payload.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
An output schema exists, so return values need no further explanation, and the description already sketches the return shape. For a zero-required-parameter, read-only discovery tool, all an agent needs to select and call it correctly is present, including the routing exclusions.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3 regardless. The description nonetheless adds meaning the schema lacks — the ranking semantics ('every feature, free tier, price and region filter must match; sport is a boost, not a filter') explain how the inputs actually affect results, which is more than the per-parameter descriptions convey.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb+resource (find sports odds/data APIs) and pins the exact question it answers — 'which odds API to use for an app, model, or odds comparison tool.' Combined with the stated output (a ranked short list with reason and review URL), an agent can distinguish it from compare_sports_apis and get_sports_api_details even though siblings aren't named.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit when-to-use trigger ('Use this when a developer asks which...') and an explicit when-not-to-use ('Do not use this for betting picks, game predictions, or the odds of a specific match'). The condition that routes away from this tool is spelled out, leaving little to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sports_api_detailsGet the SportsAPIs.dev review of one providerARead-onlyInspect
Use this when a developer asks about one specific sports odds or sports data API by name, for example "Is The-Odds-API free?", "Does OddsPapi have a WebSocket?", "OddsJam API pricing", or "Sportradar API review". Returns everything the SportsAPIs.dev review page records: feature support, pricing tiers from our review, free tier, sports mentioned, strengths, the full review text, FAQs, alternatives in the directory, and the review URL. The provider must be in the SportsAPIs.dev directory. Do not use this for a sportsbook, a league, or a betting question.
| Name | Required | Description | Default |
|---|---|---|---|
| provider | Yes | Provider name or slug, for example "OddsPapi", "the odds api", "sportsdata-io". |
Output Schema
| Name | Required | Description |
|---|---|---|
| faqs | No | |
| name | Yes | |
| features | Yes | |
| review_url | Yes | |
| alternatives | No | |
| provider_url | Yes | |
| pricing_summary | No | |
| review_sections | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true and destructiveHint=false, so safety is covered; the description adds real value beyond that by disclosing the directory-membership prerequisite and enumerating the returned fields (feature support, pricing tiers, free tier, strengths, review text, FAQs, alternatives, review URL). No output format or pagination caveats, but for a single-record read this is solid.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the use case and disambiguation before the longer enumeration of returned fields. The four example queries are slightly more than needed, but each illustrates a distinct query shape and the whole thing stays free of filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter read tool with an output schema, the description is complete: it states the trigger, the precondition, the exclusion criteria, and the scope of returned content. An agent has everything needed to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter and schema description coverage is 100%, with the schema itself supplying name-or-slug format and examples ('OddsPapi', 'the odds api', 'sportsdata-io'). The description repeats the by-name idea without adding syntax or normalization guidance beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb+resource ('Get the SportsAPIs.dev review of one provider') and scopes it to a single provider by name, which implicitly separates it from find_sports_apis (discovery) and compare_sports_apis (multi-provider comparison). The concrete example queries make the target resource unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides rich when-to-use signal via example user phrasings and an explicit when-not clause ('Do not use this for a sportsbook, a league, or a betting question'), plus the precondition that the provider must be in the directory. It stops short of naming the sibling tools as the alternatives for discovery/comparison, which keeps it from a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
3 tool updates
- First observed
compare_sports_apis - First observed
find_sports_apis - First observed
get_sports_api_details
Related MCP Connectors
Sports odds, player props and source coverage for AI assistants. Connect with your own API key.
Live odds, cross-book +EV and graded player-prop results across 37 books. Hosted endpoint included.
The Odds API MCP — sportsbook odds across 70+ books, 30+ leagues
Sports data across 8 sports under one canonical schema — scores, stats, standings, Elo, odds
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProps-first sports odds API with a hosted MCP server. Live odds and player props (moneyline, spreads, totals) across US sportsbooks, normalized to JSON. Tools: get_odds, get_props, get_events, get_books. API-key auth, free tier.MIT No Attribution

sportapi-mcpofficial
AlicenseAqualityBmaintenanceLive and prematch sports odds, scores, live statistics and match search from SportAPI (football, basketball, tennis, esports and more). Works with demo data without an API key.11MIT- FlicenseNot gradedqualityDmaintenanceProvides comprehensive sports intelligence including live scores, standings, schedules, betting odds, news, highlights, and more via SSE transport.-

Odds-API MCP Serverofficial
AlicenseAqualityAmaintenanceEnables AI assistants to access sports betting odds data from 265+ bookmakers across 34 sports, including events, odds, historical data, arbitrage, and value bets.2589 npm2MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.