Skip to main content
Glama

Server Details

Public statistics from Bettrails for eSoccer (virtual football), League of Legends, Dota 2, CS2, VALORANT and NBA 2K: eSoccer head-to-heads and player profiles, search across Bettrails, any public page (today's matches, standings, Worlds 2026, teams, players, records) and alert links before a match. Read-only, no account needed. Statistics only, no odds or tips.

Ownership verified
Status
Healthy
Uptime
99.9% over 22 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A4.1/5.0

Scored across 5 tools

Disambiguation4/5

The tools are mostly distinct: alert_link is an action, esoccer_head_to_head and esoccer_player target specific stats, search is for discovery, and read_page is a generic reader. However, read_page overlaps with the esoccer_* tools since it can also read eSoccer player and head-to-head pages, creating some potential for misselection.

Naming Consistency3/5

All tool names use snake_case, but there is no consistent verb_noun pattern: alert_link and esoccer_* are noun phrases, read_page is verb_noun, and search is a bare verb. The mixed conventions are readable but not predictable.

Tool Count5/5

Five tools is well within the typical 3-15 range for a focused server. Each tool has a clear role: alert creation, two specialized stats lookups, generic page reading, and search, so the count feels appropriate.

Completeness4/5

The surface covers core workflows: finding pages via search, reading any page, getting detailed eSoccer stats, and setting up alerts for eSoccer, basketball, and esports. However, there are no dedicated tools for esports or basketball stats, relying on read_page, which is a minor gap but not a dead end.

Available Tools

5 tools
esoccer_head_to_headeSoccer head-to-headA
Read-onlyIdempotent
Inspect

Head-to-head record between two eSoccer (virtual football, EA FC) players: who wins more, draws, average goals per duel compared with their league, how many duels ended with 3, 4 or 5+ goals, how often both players scored, goals per player, most common score, current streak, the latest duels (with the clubs each one used) and their next scheduled duel. Answers questions like "who usually wins between X and Y", "X vs Y history", "cara a cara", "h2h", "how many goals in X vs Y", "do both usually score", "how did the last X vs Y end", "and in the last month?", "and when X plays with Real Madrid?". Filters: period, last_n (only the latest N duels) and clubs (club1/club2, or clubs_of_last_duel=true to keep only duels with the same clubs as their latest meeting). By default it uses the same window as the Bettrails page: the last 6 months when that leaves at least 10 duels, otherwise the full record. Statistics only: no odds, no betting advice.

NameRequiredDescriptionDefault
club1NoOnly duels where player1 used this club (partial name OK, e.g. "City").
club2NoOnly duels where player2 used this club.
last_nNoOnly the latest N duels (applied after the period).
leagueNoLeague. If omitted, the league where they have met most is used. gt = GTLeagues; adriatic = Adriatic League; valhalla = Valhalla League; valkyrie = Valkyrie League; ggleague = GG League; esportsbattle = EsportsBattle; erivals = eRivals; cyberlivearena = Cyber Live Arena; volta = EsportsBattle Volta.
periodNoTime window. auto (default) = like the Bettrails page; all = full record.
player1YesFirst player (nickname as on Bettrails, case does not matter).
player2YesSecond player.
languageNoLanguage of the bettrails.com links returned (normally the language of the conversation). Default: es.
clubs_of_last_duelNoOnly duels with the same clubs both used in their latest meeting.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already establish a safe, idempotent, non-destructive read (readOnlyHint, idempotentHint, destructiveHint=false), so the bar is lower. The description still adds real context beyond that: the default window resolution rule (last 6 months when it leaves >=10 duels, otherwise full record), the semantics of last_n being applied after period, and the scope limit 'statistics only: no odds, no betting advice'. Return format and pagination are not described, keeping it out of the top band.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose and triggers are front-loaded, which is good, but the middle is a long comma-spliced enumeration of every computed statistic that reads more like a spec dump than selection guidance. It is defensible for a data-heavy tool, yet several clauses do not earn their place for the select-and-invoke decision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must carry return-value burden, and it largely does by listing the statistics returned and the default time-window behavior. It omits how results are structured (e.g. the bettrails.com links implied by the language param), leaving a small gap for a 9-parameter, no-output-schema tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3 and the schema already documents every parameter. The description adds value by explaining filter interactions the schema does not spell out as a set: the clubs filter (club1/club2 or clubs_of_last_duel=true keeping only duels with the latest meeting's clubs) and the fact that period/last_n compose. It does not add syntax beyond the schema, so 4 rather than 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the exact resource (head-to-head record between two eSoccer players) and enumerates the concrete outputs it computes (win/draw splits, goal averages vs league, goal distribution, BTTS, streaks, latest and next duels). This is specific enough that an agent can separate it from esoccer_player (single-player) and search without opening either schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It supplies explicit trigger phrases the tool is meant to answer ('who usually wins between X and Y', 'h2h', 'how many goals in X vs Y', 'and in the last month?'), which is strong context for selection. It stops short of naming alternatives or stating when NOT to use it (e.g. vs esoccer_player for single-player questions), so it does not reach the top band.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

esoccer_playereSoccer player profileA
Read-onlyIdempotent
Inspect

Profile of an eSoccer (virtual football, EA FC) player: ELO rating and position in the league ranking, win rate, draws, goals scored and conceded per match, goals per match compared with the league, how many matches had 3, 4 or 5+ goals, current run of matches with 3+ goals (or 2 or fewer), recent form, latest matches with clubs, most frequent opponents and next scheduled match. Answers questions like "how is X playing", "X stats", "is X in form", "how many goals does X score", "who does X play most", "when does X play next". Same window as the Bettrails page: last 6 months when there are at least 15 matches, otherwise the whole career. May include a free sample of member data (active streaks). Statistics only: no odds, no betting advice.

NameRequiredDescriptionDefault
leagueNoLeague. If omitted, the league where the player has played most. gt = GTLeagues; adriatic = Adriatic League; valhalla = Valhalla League; valkyrie = Valkyrie League; ggleague = GG League; esportsbattle = EsportsBattle; erivals = eRivals; cyberlivearena = Cyber Live Arena; volta = EsportsBattle Volta.
playerYesPlayer nickname as on Bettrails (case does not matter).
languageNoLanguage of the bettrails.com links returned (normally the language of the conversation). Default: es.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful context beyond that: the data-window rule (last 6 months when at least 15 matches exist, otherwise full career), the disclosure that a free sample of member data may be included, and the explicit "statistics only, no odds, no betting advice" scope limit. It does not cover pagination or auth needs, so not a 5.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The core identity sentence is front-loaded and dense with information, and the intent examples and scope disclaimer each earn their place. The long comma-separated metric list is a little run-on, but nothing is clearly redundant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description must carry the return-value burden, and it does: it enumerates the returned statistics in detail, states the lookback window, and flags the member-data sample. An agent has everything needed to call it and interpret the result.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%: the league enum values are individually expanded, player nickname format is given, and the language default is stated, all in the schema itself. The description adds no further parameter meaning beyond restating the same Bettrails data window. Baseline 3 is appropriate when the schema does the heavy lifting.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete resource (an eSoccer player profile) and enumerates the exact metrics returned (ELO, league position, win rate, goals per match, form, opponents, next match), so the agent knows precisely what comes back. It never names or excludes the closely-related sibling esoccer_head_to_head, so sibling differentiation is left to inference. Clear but not fully disambiguated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The quoted example intents ("how is X playing", "is X in form", "who does X play most", "when does X play next") give strong, concrete signals for when to reach for this tool. There is no explicit when-not guidance and no pointer to esoccer_head_to_head for the head-to-head case, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

read_pageRead a Bettrails pageA
Read-onlyIdempotent
Inspect

Read any public page of bettrails.com as clean text: eSoccer players and head-to-heads, today's matches and results (/hoy, /resultados), records, rankings (/jugadores), and the esports and basketball sections: /lol, /dota, /cs2, /valorant, /basket (hubs, leagues, today, teams, players, matches with preview or result, tournaments, champions, heroes, agents, maps, countries, records). Covers these topics in text and tables; the links on each page (shown as [/path]) can be read too. Useful starting points: /hoy (eSoccer today), /lol/hoy, /dota/hoy, /cs2/hoy, /valorant/hoy, /basket/hoy, /lol/worlds, /jugadores (eSoccer ELO ranking), /records. Pages of a specific player, team, champion or tournament can be found with search. Content is statistics only (no odds, no betting).

NameRequiredDescriptionDefault
pathYesPage path or full bettrails.com URL, e.g. "/valorant/hoy" or "/basket/ggl/jugador/archer".
languageNoLanguage of the bettrails.com links returned (normally the language of the conversation). Default: es.

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish this as a safe, idempotent, non-open-world read. The description goes further by disclosing the return shape ('clean text', 'text and tables'), that embedded links surface as [/path] and are themselves readable, and that content is statistics-only with no odds/betting. This is genuine behavioral context beyond the annotations, though pagination or rate-limit behavior is not mentioned.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action before enumerating sections and example paths. The dense mid-sentence path list is long but each cluster carries navigational value for a path-driven tool, so it is defensibly sized rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of describing returns and does so adequately ('clean text', 'text and tables', links as [/path]). Combined with the annotations, an agent has enough to invoke it correctly; only return-size/pagination details are absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds real meaning for the path parameter by mapping the site's taxonomy (hubs, leagues, today, teams, players, etc.) across each section, which helps the agent choose valid paths. It slightly duplicates the schema's example paths and does not describe the language enum beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Read any public page of bettrails.com as clean text') and enumerates the exact site sections that are covered. It also implicitly differentiates from the sibling search tool by noting that specific player/team/tournament pages must be found via search. An agent can tell this is a page-fetching tool distinct from esoccer_player/alert_link without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete starting-point paths (/hoy, /lol/hoy, /jugadores, /records) that show how and contextually why to call it, and routes one case to a named alternative ('Pages of a specific player... can be found with search'). It lacks explicit when-not-to-use exclusions or guidance on preferring the specialized esoccer_head_to_head/esoccer_player tools over reading a page.

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.

  1. 5 tool updates
    • First observedalert_link
    • First observedesoccer_head_to_head
    • First observedesoccer_player
    • First observedread_page
    • First observedsearch

Publisher details

Operator
Bettrails · Publisher source
Operator website
https://bettrails.com
Vendor relationship
First-party
Trust center
Not available
Restrictions
Not applicable

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Live 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.
    11
    30 PyPI
    MIT
  • A
    license
    B
    quality
    C
    maintenance
    Provides AI agents with live, grounded sports data including model probabilities, track records, and European soccer and tennis arbitrage opportunities, so they answer from real numbers instead of stale guesses.
    13
    17 npm
    1
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables MCP clients and agents to query synthetic football match state, key moments, win probability, and player profiles, and to verify claims and on-screen overlay numbers against match state.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources