skipodds
Server Details
Win probabilities for 13 sports: NFL, NBA, soccer, tennis, golf, cricket. No API key, no signup.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.7/5 across 5 of 5 tools scored.
Each tool targets a distinct resource and action: fixture current state vs. movement, fixture listing vs. tournament/outright listings, and golf tournaments vs. soccer tournaments are explicitly separated. The descriptions cross-reference each other to prevent confusion.
All tool names follow a consistent verb_noun pattern: get_fixture, get_fixture_movement, list_fixtures, list_golf_tournaments, list_tournament_outrights. The naming is predictable and clearly hierarchical.
Five tools cover the server's purpose without bloat. The scope is focused on reading odds data, and each tool earns its place: current fixture, fixture movement, fixture list, and the two outright market lists.
The surface covers the full read-only workflow: discover fixtures, inspect current odds, examine movement, and access tournament outrights for the sports that have them. No major gaps are apparent, and the descriptions explicitly note unsupported sports to avoid dead ends.
Available Tools
5 toolsget_fixtureGet one fixtureARead-onlyInspect
One fixture in full: fair probability and fair odds for every outcome, how many bookmakers were surveyed, and when the consensus last updated. Use when you already have a fixture id; call list_fixtures first if you do not. Use get_fixture_movement instead when you need how the price CHANGED rather than where it stands now. Read-only. An id that is unknown or has rolled off the board returns a fixture_not_found error rather than an empty fixture, and a low bookmaker count means a thin market rather than a failure.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Fixture id, exactly as returned by list_fixtures. An opaque string — never construct, guess, or derive one from team names or dates; ids are not stable across sports namespaces. | |
| sport | No | Which sport to query. Omit entirely for soccer, which is the default; every other sport must be named explicitly. Note "football" means American football and "rugby" covers union. |
Output Schema
| Name | Required | Description |
|---|---|---|
| id | No | |
| status | No | |
| skipodds | No | De-vigged probabilities for this market. Keys vary by sport: home/draw/away for team sports, p1/p2 for tennis and fights, players[] for golf. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and openWorldHint annotations, the description adds concrete behavioral expectations: unknown or rolled-off ids produce a fixture_not_found error rather than an empty fixture, and a low bookmaker count means a thin market rather than failure. This equips the agent with edge-case handling.
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?
Three sentences, each with a distinct role: what the tool returns, when to use it (and when not), and edge-case behavior. Every sentence earns its place with no redundancy or 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-fixture retrieval with a rich output schema, the description covers purpose, usage preconditions, alternatives, and error semantics. It is complete enough for an agent to select and invoke the tool correctly without additional context.
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?
The input schema already provides 100% parameter coverage, including id provenance and sport enum semantics, so the description correctly doesn't repeat those details. The description does not add further param-specific meaning, which is acceptable given the schema's completeness.
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 clearly identifies the tool's function: retrieving a single fixture in full with fair probability, fair odds, bookmaker count, and consensus update time. It distinguishes itself from siblings by naming get_fixture_movement for price changes and list_fixtures for obtaining ids.
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 states when to use: when you already have a fixture id, and directs those without one to call list_fixtures first. It also names the alternative tool for price changes (get_fixture_movement), providing a clear when-not-to-use rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fixture_movementFixture line movementARead-onlyInspect
Time series of how one fixture's fair probabilities moved — timestamped consensus snapshots, oldest first. Use to spot line movement, steam or drift, and to answer "has this shortened since yesterday". Use get_fixture instead for the current price alone. Read-only. An unknown id returns a fixture_not_found error; a series with only one or two snapshots means the fixture was surveyed recently, not that the request failed.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | Fixture id, exactly as returned by list_fixtures. Opaque — do not construct or guess one. | |
| hours | No | How far back to look, in hours. Defaults to 24. Capped at 72 on free and paid tiers below Scale, 336 on Scale; a larger value is clamped rather than rejected. | |
| sport | No | Which sport to query. Omit entirely for soccer, which is the default; every other sport must be named explicitly. Note "football" means American football and "rugby" covers union. |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | No | Probabilities at the latest capture. |
| from | No | Probabilities at the earliest capture in the window. |
| delta_pct | No | Signed change in PERCENTAGE POINTS, not percent. |
| span_hours | No | Hours actually covered, which can be less than requested. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and openWorldHint annotations, the description discloses concrete behavioral traits: results are ordered oldest first, unknown ids yield a fixture_not_found error, and a series of only one or two snapshots is a normal early-survey case (not a failure). These additions are highly useful for interpreting tool behavior and avoiding false error conclusions.
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?
The description is three sentences, each earning its place: the first defines the resource, the second gives usage and the alternative, and the third clarifies error handling and edge-case interpretation. It is front-loaded, efficient, and 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?
Given the tool has an output schema (so return values need not be explained), annotations, and a moderate parameter count, the description is remarkably complete. It covers purpose, usage, alternatives, error behavior, and how to interpret small result sets, leaving no obvious gaps for an AI agent to select and invoke 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?
Schema description coverage is 100%, so the baseline is 3. The description adds context like 'fair probabilities' but does not provide new parameter-level semantics for id, hours, or sport that the schema does not already cover. It neither compensates nor falls short, so the baseline is appropriate.
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 opens with a precise, specific verb+resource statement: 'Time series of how one fixture's fair probabilities moved — timestamped consensus snapshots, oldest first.' This clearly distinguishes it from siblings like get_fixture (current price alone) and list_fixtures, which is the explicit alternative given.
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?
The description states when to use it: 'Use to spot line movement, steam or drift, and to answer "has this shortened since yesterday".' It also explicitly names the alternative: 'Use get_fixture instead for the current price alone.' This provides clear contextual guidance and an exclusion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_fixturesList fixturesARead-onlyInspect
Upcoming and recent fixtures with fair win probabilities: every surveyed bookmaker price averaged and stripped of its margin (de-vigged), so probabilities sum to exactly 100%. 13 sports, 69+ bookmakers. START HERE — the fixture ids returned are what get_fixture and get_fixture_movement require. Use get_fixture instead when you already hold an id, and list_tournament_outrights for who-wins-the-competition rather than individual matches. "recent" means a kickoff within the last 6 hours for soccer and tennis, 8 hours for basketball, baseball, hockey, American football, MMA and boxing, and 12 hours for cricket and rugby; anything older has rolled off the board. Outright/tournament-winner markets exist for soccer and golf only — every other sport is fixture-level. Read-only. Returns an empty list, not an error, when nothing is scheduled in range.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum fixtures to return. Defaults to 10; raise it to widen the window rather than calling repeatedly. | |
| sport | No | Which sport to query. Omit entirely for soccer, which is the default; every other sport must be named explicitly. Note "football" means American football and "rugby" covers union. | |
| competition | No | Restrict to one soccer competition by slug, e.g. "premier-league-2026". Soccer only — ignored for other sports. Slugs appear on the fixtures this tool returns, so call once without it to discover them. |
Output Schema
| Name | Required | Description |
|---|---|---|
| source | No | |
| fixtures | Yes | One entry per fixture. Empty when nothing is scheduled in range — not an error. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint=true annotation, the description adds rich behavioral context: probabilities are de-vigged to sum to 100%, "recent" has specific kickoff windows per sport, outright markets are limited to soccer and golf, and the tool returns an empty list rather than an error when nothing is scheduled. No contradiction with annotations.
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?
The description is dense but every sentence serves a purpose: core function, coverage scope, usage priority, sibling guidance, time windows, market exceptions, and empty-list behavior. It is front-loaded with the most important information and avoids fluff.
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?
The description covers all key aspects: what the tool returns (fixtures with probabilities), how to use the returned IDs, when to use alternatives, what "recent" means, sport coverage, outright-market limitations, and empty-list behavior. This is complete for the tool's complexity even with an output schema present.
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?
The input schema already provides thorough descriptions for all three parameters (limit, sport, competition), achieving 100% coverage. The description does not add significant parameter-specific meaning beyond what the schema already states, so the baseline score of 3 is appropriate.
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 opens with a specific verb+resource: "Upcoming and recent fixtures with fair win probabilities" and explains the de-vigging process. It clearly distinguishes itself from siblings by stating "START HERE" and explicitly naming get_fixture and list_tournament_outrights as alternatives for different use cases.
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?
The description explicitly states when to use this tool vs alternatives: "Use get_fixture instead when you already hold an id, and list_tournament_outrights for who-wins-the-competition rather than individual matches." It also clarifies the "recent" window per sport, giving concrete context for when data is available.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_golf_tournamentsGolf tournamentsARead-onlyInspect
Golf outright-winner probabilities, normalised across the priced field. Call with NO arguments to list the tournaments currently priced together with their tournament_key values; call again passing tournament_key to get that one tournament with its full player field. GOLF ONLY — use list_tournament_outrights for soccer competitions. Read-only. Between tournaments the no-argument call returns an empty list, which means nothing is currently priced rather than an error; an unrecognised tournament_key returns a tournament_not_found error.
| Name | Required | Description | Default |
|---|---|---|---|
| tournament_key | No | Identifies one tournament, taken verbatim from a no-argument call to this same tool. Omit it to get the list. This is NOT an API key — credentials go in the Authorization header. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and openWorldHint annotations, the description discloses important behavioral nuances: the empty-list semantics between tournaments, the tournament_not_found error for unrecognized keys, and the normalization across the priced field. This significantly helps the agent anticipate edge cases.
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?
The description is well-structured and front-loaded with the core purpose, followed by usage instructions and edge cases. While it is a bit lengthy, each sentence contributes meaningful information. The 'Read-only' sentence is redundant with the readOnlyHint annotation, but this is a minor deduction.
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?
The description is complete for this tool's complexity: it covers the two call patterns, error behavior, and the distinction from the sibling soccer tool. Since an output schema exists, the description does not need to explain return values, and it fully leverages the schema and annotations.
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?
The schema already covers the parameter with 100% coverage, but the description adds essential context: the value must be taken verbatim from a no-argument call to the same tool, omitting it lists tournaments, and it explicitly clarifies this is not an API key. This goes beyond the schema's basic 'Identifies one tournament' description.
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 clearly states the tool lists golf outright-winner probabilities and can retrieve a specific tournament by key. It specifies the verb 'list' and distinguishes from sibling list_tournament_outrights by explicitly stating 'GOLF ONLY' and naming the alternative for soccer.
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 explicit when-to-use guidance: call with no arguments to list tournaments, call with tournament_key to get a single tournament. It also names the alternative tool for soccer competitions and clarifies that an empty list means no tournaments are priced rather than an error.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tournament_outrightsTournament winner probabilitiesARead-onlyInspect
Outright winner probabilities for a soccer competition, normalised across the teams that can still win — eliminated teams are dropped, so the field sums to 100% of the live market. Use for "who wins the league/cup"; use list_fixtures for individual matches. SOCCER ONLY — call list_golf_tournaments for golf. The other eleven sports have no outright market in this API at all, so for them list_fixtures is the only option; say so rather than retrying with a sport argument. Read-only. An unrecognised competition slug returns an empty field rather than an error.
| Name | Required | Description | Default |
|---|---|---|---|
| competition | No | Competition slug, e.g. "premier-league-2026". Omit to get every competition currently priced, which is also how you discover valid slugs. |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnlyHint and openWorldHint, the description adds key behaviors: normalization across live teams, elimination of already-eliminated teams, field summing to 100%, and empty field on unrecognised competition slug. This enriches transparency without contradicting annotations.
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?
The description is dense yet efficient, covering purpose, use cases, alternatives, sport exclusions, read-only status, and error handling in a single paragraph. Every clause adds value with no repetition or 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?
Given the tool's complexity and available schema/annotations, the description fully covers purpose, usage guidance, alternatives, limitations (soccer only, no outright markets for other sports), and edge-case behavior (empty field). Output schema exists, so return-values need no extra elaboration.
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% for the single parameter, so the schema already explains the 'competition' slug and omission behavior. The description does not add meaning beyond the schema (e.g., no format details or examples), though it mentions empty-field behavior separately.
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 clearly states the tool provides outright winner probabilities for soccer competitions, with specific scope ('SOCCER ONLY') and normalization details. It distinguishes from list_fixtures for individual matches, making the purpose 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?
Explicitly says when to use ('who wins the league/cup'), names alternatives (list_fixtures for matches, list_golf_tournaments for golf), and instructs the agent to inform users that other sports lack outright markets rather than retrying. This covers when/when-not and alternatives comprehensively.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user or an account that owns the GitHub organization, then choose Claim with GitHub.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseAqualityCmaintenanceProvides AI assistants with sports model win probabilities and fair odds across nine sports without requiring an API key.360MIT
- AlicenseNot gradedqualityAmaintenanceEnables plain-language cricket analytics for MCP clients, including calibrated win probability, ball-by-ball match archives, career and matchup records, venue and phase stats, and live scores, all without an API key.BSD 3-Clause
- AlicenseAqualityCmaintenanceSchedules, scores, odds, splits & explainable AI bet confidence — 8+ sports, free instant key.163MIT
- AlicenseAqualityAmaintenanceReal-time tennis data for ATP, WTA, Challenger and ITF: live scores, player rankings, match-winner odds, and model win-probability. 12 read-only tools; a tier-gated endpoint returns a plain-English explanation of which plan it needs rather than a bare 403. Requires a paid API key.24110162MIT