vbl-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| PORT | No | HTTP listen port | 3000 |
| MCP_API_KEYS | No | Comma-separated API keys to protect the MCP endpoint. Each key can be optionally labeled: label:key,label2:key2 | |
| MCP_TRANSPORT | No | Set to http to force HTTP mode |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_clubsA | List all Basketball Vlaanderen clubs (organizations). Optionally filter by a search string (matched against name, city, region and stam number). Returns guid, naam (name), plaats (city), regioNaam (region) and stamNr for each club. Use the guid with the get_club* tools. |
| get_clubA | Get details of one club by its GUID (e.g. BVBL1004): teams and the poules (competitions/series) each team plays in, website, address, venues (accomms) and board members (bestuur). Team GUIDs and poule GUIDs returned here can be used with get_team, get_team_matches and get_poule_matches. |
| get_club_membersA | List the registered members (players, coaches, officials) of a club. Can be a large list; use the search parameter to filter by name. Returns relGuid, name, first name, birth date, gender and category. |
| get_club_matchesA | List all matches (played and upcoming) of every team of a club, across all its competitions. Each match has home/away team, date, time, venue, poule and result (uitslag, empty if not played yet; gespeeld = J means played). |
| get_teamA | Get details of one team by its team GUID (e.g. 'BVBL1004HSE 2' — note team GUIDs contain spaces, pass them exactly as returned by get_club). Includes the official standings of every poule the team plays in, the player roster (spelers) and the staff list (tvlijst, e.g. coaches). |
| get_team_matchesA | List all matches (played and upcoming) of one team across all its competitions. Each match includes date, time, venue, opponent, poule and result. |
| get_poule_matchesA | List all matches of a poule (competition/series), e.g. the full calendar and results of 'Top Division Men 1'. Poule GUIDs come from get_club (e.g. BVBL26279180NAHSE11A). |
| get_poule_standingsA | Get the official standings (rangschikking/klassement) of a poule. Returns teams ranked with games played (wedAant), competition points (wedPunt), wins/losses and points scored/conceded. Falls back to standings computed from played matches if the official ranking is not exposed for this poule. |
| get_matchA | Get full details of one match by its match GUID (e.g. BVBL26279180NAHSE11AAB, as returned by the *matches tools). Includes teams, venue, officials and planning status. Set include_history to true to also get the raw rescheduling history. |
| get_match_lineupA | Get the digital scoresheet participants (players and coaches of both teams, with jersey numbers) of a match. Only available once the digital match form exists — returns null for matches without DWF data (e.g. far in the future or past seasons). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Each tool targets a distinct entity or scope: clubs, club sub-resources, teams, poules, individual matches, and lineups. Even though three tools list matches, their scope is clearly differentiated as club-wide, team-specific, or poule-specific.
Tool names consistently follow a get_/list_ + resource pattern, with hierarchical names like get_club_members, get_team_matches, and get_poule_standings. The single use of list_clubs instead of get_clubs is a conventional exception, not an inconsistency.
Ten tools is a well-scoped size for a read-only basketball federation API. Each tool provides a meaningful slice of data without redundant overlap, covering clubs, teams, matches, standings, and match details.
The tool surface covers the complete read workflow from discovering clubs down to individual match lineups. Missing operations like create/update are not gaps for this read-only domain, and optional depth such as rescheduling history and DWF lineups is available.