Weekend Goals
Server Details
Football fixtures, venues and the cheapest ticket prices held by Weekend Goals.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 5 tools
Each tool has a distinct entry point: city/country search, geo-radius search, single-match details, team fixtures, and venue fixtures. The only real overlap is find_matches vs find_matches_near, which both do location-based discovery and could be misselected when an agent has a city name but not coordinates. Descriptions clarify the distinction (exactly one of city or country vs lat/long point), keeping confusion low.
All names are consistent snake_case, which is good, but the conventions mix: find_matches and find_matches_near are verb-first, while match_details, team_next_fixtures, and venue_upcoming_matches are noun-first phrases. The pattern is readable and the resource is always evident, but it is not a single predictable verb_noun scheme.
Five tools is well-scoped for a niche football-ticket discovery server, with each tool covering a genuinely different discovery axis (location, geo point, team, venue, single match). Nothing feels padded or redundant.
The surface covers the core lifecycle of finding matches and inspecting prices/details via multiple access paths. Minor gaps exist: there is no way to discover a team or venue without already knowing its name, and no competition- or date-only browsing without a location. These are workaroundable but hint at dead ends for exploratory queries.
Available Tools
5 toolsfind_matchesFind football matchesARead-onlyIdempotentInspect
Upcoming football matches in a city or a country between two dates, with the cheapest ticket price we hold. Accepts exactly one of city or country. Supports filters for budget, men's or women's football, senior, reserve or youth sides, and top competitions. url is the match's page on weekendgoals.com, listing every seller and price we hold.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Last day, YYYY-MM-DD, any date ahead. 7 days after the first unless given, and at most 31 days after it. | |
| city | No | A city, for example Lisbon. Omit when naming a country. | |
| from | No | First day, YYYY-MM-DD. Today unless given. | |
| limit | No | How many matches to return, 20 unless given, at most 50. | |
| squad | No | senior, reserve or youth: which side plays. Leaves out competitions classified otherwise. | |
| gender | No | men or women: who plays. Leaves out competitions classified the other way. | |
| country | No | A country, for example Portugal. Omit when naming a city. | |
| currency | No | The currency to show prices in: the one the user wrote their budget in or uses where they are. When absent, maxPrice's currency, else USD. | |
| maxPrice | No | Keep only matches whose cheapest ticket costs at most this. The budget is compared with every ticket at today's exchange rate; a match priced only in a currency with no rate is kept and marked priceNotConverted, and a match with no price is left out. | |
| topRanksOnly | No | True to keep only the matches of the highest-ranked competitions found, for example the top division rather than the lower leagues. Friendlies are left out. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description only needs to add context. It does: the mutual-exclusion rule on city/country is not expressed anywhere in the schema, and the meaning of `url` (the match page listing every seller and price) is genuinely new information.
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?
Two sentences, purpose front-loaded, every clause adding distinct information (scope, exclusivity constraint, filter set, url meaning). No filler or restatement of the title.
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?
With 10 parameters, a nested maxPrice object and no output schema, the description covers the routing constraint and the key returned fields (cheapest price, url). It stops short of describing the rest of the response shape or pagination/limit behavior, though the schema supplies the defaults.
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%, including defaults, ranges, enum meanings and the maxPrice comparison rules, so the schema carries nearly all parameter semantics. The description only adds the city/country exclusivity constraint and a high-level list of available filters, which the schema already documents in detail.
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-like resource ('Upcoming football matches') plus scope (city or country, between two dates) and the payload highlight (cheapest ticket price we hold). This implicitly separates it from find_matches_near (proximity-based) and team_next_fixtures, but no sibling is named explicitly.
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 rule 'accepts exactly one of city or country' gives a concrete usage constraint, but there is no explicit when-to-use versus find_matches_near, team_next_fixtures or venue_upcoming_matches. The agent must infer routing from the location wording alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_matches_nearFind football matches near a placeARead-onlyIdempotentInspect
Upcoming football matches within a distance of a point, given as latitude and longitude, between two dates, with the cheapest ticket price we hold. Supports locations outside named cities and the same budget, men's or women's, squad and top-competitions filters as find_matches. url is the match's page on weekendgoals.com, listing every seller and price we hold.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | Last day, YYYY-MM-DD, any date ahead. 7 days after the first unless given, and at most 31 days after it. | |
| from | No | First day, YYYY-MM-DD. Today unless given. | |
| limit | No | How many matches to return, 20 unless given, at most 50. | |
| squad | No | senior, reserve or youth: which side plays. Leaves out competitions classified otherwise. | |
| gender | No | men or women: who plays. Leaves out competitions classified the other way. | |
| currency | No | The currency to show prices in: the one the user wrote their budget in or uses where they are. When absent, maxPrice's currency, else USD. | |
| latitude | Yes | Latitude of the point to search around, for example 38.72. | |
| maxPrice | No | Keep only matches whose cheapest ticket costs at most this. The budget is compared with every ticket at today's exchange rate; a match priced only in a currency with no rate is kept and marked priceNotConverted, and a match with no price is left out. | |
| radiusKm | No | How far from the point to look, in kilometres: 50 unless given, at most 200. | |
| longitude | Yes | Longitude of the point to search around, for example -9.14. | |
| topRanksOnly | No | True to keep only the matches of the highest-ranked competitions found, for example the top division rather than the lower leagues. Friendlies are left out. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds genuinely useful behavior beyond that: prices reflect 'the cheapest ticket price we hold' and `url` points at a weekendgoals.com page listing every seller and price. It does not cover result ordering, pagination, or what happens when no matches fall in the radius, which matters since there is no output schema.
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 tight clauses: what it returns, where it applies and which filters carry over, then the meaning of the returned `url`. Nothing is repeated from the schema and the geo/date/price framing is front-loaded.
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 an 11-parameter tool with a nested object and no output schema, the description covers the domain (radius search, date window, budget filtering) and explains one returned field. Small gaps remain around result ordering and empty-result behavior, but the parameter-level defaults and constraints are fully documented in the schema.
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%, including defaults, bounds and the maxPrice conversion rules, so the schema does the heavy lifting. The description only adds a cross-reference that the budget/gender/squad/top-competition filters behave as in find_matches, which slightly clarifies semantics but adds no syntax or format detail.
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 and resource ('Upcoming football matches') plus the two defining constraints of the tool: a lat/long radius and a date range. It explicitly differentiates from the sibling by stating it 'Supports locations outside named cities', so an agent can tell this apart from find_matches without reading either schema.
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 clear selection context by framing this as the tool for places that aren't named cities and by stating the filter set is identical to find_matches. It stops short of an explicit exclusion such as 'if you have a city name, use find_matches instead', so the reverse routing decision is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
match_detailsMatch detailsARead-onlyIdempotentInspect
One match: kickoff, teams, competition, the cheapest price we hold at each ticket seller, the venue and any available travel directions. url is the match's page on weekendgoals.com, listing every seller and price we hold.
| Name | Required | Description | Default |
|---|---|---|---|
| matchId | Yes | The matchId another tool returned. | |
| currency | No | The currency to show prices in: the one the user wrote their budget in or uses where they are. When absent, maxPrice's currency, else USD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the description's job is to add context, and it does: it discloses the pricing semantics (cheapest price per seller, i.e., not every price) and clarifies that `url` points to a page listing all sellers and prices. It does not mention behavior on an unknown matchId or how currency affects the returned prices, which keeps it short of 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, both front-loaded with the payload contents and then the `url` clarification; no filler, no restatement of the title, and the most useful disambiguation (cheapest-per-seller vs. all prices) comes last as a targeted note.
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?
With no output schema, the description carries the burden of describing return values and does so field by field, including the meaning of `url`. What remains uncovered is edge behavior (unknown matchId, empty travel directions) and how `currency` changes output, which is a modest gap for a simple two-parameter read tool.
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 both `matchId` and `currency` are already documented, including the fallback chain for currency. The description adds nothing about either parameter, so the baseline of 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?
"One match: kickoff, teams, competition, the cheapest price we hold at each ticket seller, the venue and any available travel directions" states the resource (a single match) and enumerates exactly what it returns, which makes it clearly the detail view rather than a search. It never names the sibling list tools (find_matches, find_matches_near), so the differentiation is inferred from "one match" rather than stated.
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?
There is no when-to-use or when-not guidance in the description; nothing tells the agent to call this after a search returns a matchId or to prefer find_matches for browsing. The only workflow hint, "The matchId another tool returned," lives in the schema, not the description.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
team_next_fixturesA team's next fixturesBRead-onlyIdempotentInspect
A team's upcoming fixtures, home and away. url is the match's page on weekendgoals.com, listing every seller and price we hold.
| Name | Required | Description | Default |
|---|---|---|---|
| team | Yes | The team's name, for example Benfica. A name not found may be known as written in its own country, for example Bayern München, with any suffix such as U19. | |
| limit | No | How many matches to return, 20 unless given, at most 50. | |
| currency | No | The currency to show prices in: the one the user wrote their budget in or uses where they are. When absent, maxPrice's currency, else USD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, so the safety profile needs no restating. The description adds genuine context beyond that by explaining that `url` points to a weekendgoals.com match page listing every seller and price held, which tells the agent the result is shopping-oriented. It does not describe ordering, pagination behavior, or what a fixture entry otherwise contains.
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?
Two short sentences with no filler, and the core purpose is front-loaded. The second sentence jumps straight into a return field without transition, which is slightly abrupt but costs no clarity.
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?
With no output schema, the description carries more burden for explaining the return shape, yet it only documents one field (`url`). For a simple read-only list tool with fully documented parameters and complete annotations, that is adequate but leaves the agent guessing at the structure of each fixture (date, opponent, competition).
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%, and the parameter docs are rich — team-name fallback guidance, limit default of 20 with a 50 cap, and currency fallback rules. The description adds nothing about team, limit, or currency, so the baseline of 3 applies since the schema does all 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-and-resource combination: a team's upcoming fixtures, explicitly scoped to home and away. An agent can tell it is team-scoped rather than venue-scoped (venue_upcoming_matches) or a general search (find_matches), but the description never names those siblings to make the distinction explicit.
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?
There is no when-to-use, when-not-to-use, or alternative-routing guidance at all. The scope note 'home and away' implies this covers all competitions for a team, but an agent choosing between this and find_matches must infer the boundary from the tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
venue_upcoming_matchesUpcoming matches at a stadiumBRead-onlyIdempotentInspect
The upcoming matches at one stadium. url is the match's page on weekendgoals.com, listing every seller and price we hold.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | How many matches to return, 20 unless given, at most 50. | |
| venue | Yes | The stadium's name, for example Estádio da Luz. | |
| currency | No | The currency to show prices in: the one the user wrote their budget in or uses where they are. When absent, maxPrice's currency, else USD. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile needs no restating. The description does add one piece of behavioral context beyond the schema — what the `url` value points to and that it aggregates sellers and prices — but it is introduced without framing, and no pagination, ordering, or empty-result behavior is disclosed.
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?
Two short sentences with the scope stated first, no filler or repetition. The second sentence is terse to the point of ambiguity, since `url` appears with no cue that it is a response field rather than an input.
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?
This is a simple three-parameter read tool and the schema carries the input burden well. However, with no output schema, the description covers only one return field (`url`) and leaves the rest of the response shape — what else a match record contains, how prices and the currency parameter interact in the output — unexplained.
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 venue, limit (default 20, max 50), and currency fallback rules are fully documented in the schema already. The description adds no meaning to any of the three parameters; the `url` sentence refers to a return field, not an input.
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 resource and scope: upcoming matches filtered to a single stadium. That scoping distinguishes it implicitly from team_next_fixtures and find_matches_near, though it never names a sibling explicitly.
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?
Usage is only implied by the phrase 'at one stadium' — an agent can infer this is the venue-centric lookup, but there is no explicit when-to-use versus find_matches, find_matches_near, or team_next_fixtures, and no stated prerequisites or exclusions.
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.
5 tool updates
- First observed
find_matches - First observed
find_matches_near - First observed
match_details - First observed
team_next_fixtures - First observed
venue_upcoming_matches
Related MCP Connectors
Football fixtures, historical scores, team/venue profiles, archived squads and availability reports.
Where to watch football: licensed channel by country, kickoff in your time zone, verified prices.
Football fixtures, live scores, standings, lineups, teams and players for 117 leagues and cups
Live football scores, fixtures, teams, and players.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceFootball live scores, fixtures, standings, top scorers, head-to-head, match details, teams and players for 1000+ competitions, from football-mania.com. Free, no API key; compact answers with links to every match, team and player.6MIT
- AlicenseAqualityBmaintenanceProvides football fixtures, real results, and bet settlement with odds arithmetic, enabling AI agents to devig markets, evaluate prices, and settle picks without an API key.7MIT
- AlicenseAqualityCmaintenanceLive football/soccer data from top European leagues, enabling queries for standings, fixtures, scorers, and team comparisons via natural language.66 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to organize weekly football games by creating balanced teams and fixtures, managing squads and invites, setting games, tracking availability, entering results, and sharing vote links.1MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.