Skip to main content
Glama
prfafa

profixio

by prfafa

profixio-mcp

Read-only MCP server for Profixio: competitions, schedules, standings and match protocols (matchprotokoll) for Swedish federations on Profixio (handboll, volleyboll, bandy, basket, …).

Unofficial. Not affiliated with or endorsed by Profixio or any federation.

Profixio has no public API. This reads the public site and replays its Livewire calls over HTTP. No login, no browser, no credentials. If Profixio changes its markup, the parsers in src/parse.ts are where things break.

Tools

Tool

What

list_federations

SHF, SVBF, SBF, SBBF, …

list_districts

Districts in a federation

list_competitions

Competitions this season, federation-wide or per district

search_teams

Find a team by name across Profixio

get_competition_matches

Schedule/results, upcoming / played / all

get_team_matches

One team's matches in a competition

get_standings

League tables

get_matches_by_date

All matches in a district on a day

get_match_protocol

Result, set scores, venue, lineups, officials, timeouts, full event log, referees when published

Related MCP server: sipap-data-mcp

Install

Requires Node 20+.

git clone https://github.com/prfafa/profixio-mcp.git
cd profixio-mcp
npm install && npm run build

Claude Code:

claude mcp add --scope user profixio -- node /absolute/path/to/profixio-mcp/dist/index.js

Other MCP clients (Claude Desktop, Cursor, …):

{
  "mcpServers": {
    "profixio": {
      "command": "node",
      "args": ["/absolute/path/to/profixio-mcp/dist/index.js"]
    }
  }
}

Known limitations

  • search_teams can return teams from earlier seasons only. Use list_competitions or get_matches_by_date to find current-season teams.

  • Lineup columns follow the handball layout (goals, suspensions). For other sports, like basketball, they can be shifted. The events log is reliable.

  • timeoutsUsed can disagree with the timeouts in events.

Security

  • Read-only. No login, no credentials, nothing written to disk. Requests are restricted to https://www.profixio.com, also after redirects.

  • Tool output is scraped public content (team names, player names, comments). Treat it as untrusted data, not as instructions, like any web content you give an LLM.

  • Report vulnerabilities privately, see SECURITY.md.

Be nice to Profixio

Every tool call makes one or a few requests to profixio.com. Don't loop it or use it for bulk scraping.

License

MIT

Available Tools

9 tools
get_competition_matchesCompetition matchesA

Schedule and results for a competition. Each match has a matchId to pass to get_match_protocol.

NameRequiredDescriptionDefault
limitNo
filterNoupcoming = not yet played, played = finished, all = bothall
competitionYesCompetition slug (e.g. leagueid27971) or URL

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It discloses that matches include a matchId for follow-up calls and that the result set spans schedule plus results, but says nothing about pagination via limit, ordering, or what fields a match actually contains.

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

Conciseness5/5

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

Two short sentences, zero filler, and the returned-entity hint is front-loaded before the follow-up workflow note. Nothing could be removed without losing information.

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

Completeness3/5

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

For a listing tool with no output schema and no annotations, the description should sketch the shape of a match (teams, date, score) and pagination behavior. It covers the identity of results and the follow-up path but leaves the return payload and limit semantics undocumented.

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 coverage is 67% and the filter enum is already documented in the schema. The description adds no information about competition slug format or limit behavior, so it does not compensate for the uncovered fields — baseline 3 applies.

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?

States the resource ('Schedule and results for a competition'), which is specific enough to distinguish it from get_match_protocol or get_standings. It doesn't explicitly contrast with siblings like get_team_matches or get_matches_by_date, but the competition scoping makes the intent clear.

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

Usage Guidelines3/5

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

The second sentence gives a real workflow cue: results carry a matchId to feed into get_match_protocol. However, there is no guidance on when to use this versus get_team_matches, get_matches_by_date, or list_competitions, nor any stated prerequisites.

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

get_matches_by_dateMatches on a dateC

All matches in a district on a given day.

NameRequiredDescriptionDefault
dateYesYYYY-MM-DD
districtIdYes
federationYesFederation code, e.g. SHF

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full behavioral burden and does almost nothing with it. It conveys that all matches are returned (so potentially a large result set) but says nothing about ordering, pagination, empty-day behavior, or whether federation codes must come from list_federations.

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?

It is a single short fragment with zero waste and the scope is front-loaded, but it is terse to the point of under-specification. There is no padding, yet also nothing that earns extra space.

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

Completeness2/5

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

With no annotations, no output schema, and three required parameters, the description should explain what a match record contains and how required federation/districtId are obtained. None of that is present, leaving the agent to infer behavior from the schema alone.

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

Parameters2/5

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

Schema coverage is 67%, with districtId undocumented in the schema. The description only echoes the parameter concepts ('district', 'day') without adding format, valid values, or the relationship to federation/districtId; the 'e.g. SHF' hint comes from the schema, not the description.

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?

States a specific verb and resource ('All matches') with two scoping constraints (district, given day), which implicitly separates it from get_competition_matches, get_team_matches, and get_match_protocol by scope. It never names those siblings, so differentiation must be inferred from the scope words alone.

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

Usage Guidelines2/5

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

There is no explicit when-to-use guidance, no statement of when to prefer get_competition_matches or get_team_matches instead, and no prerequisites noted. The district+date framing only weakly implies the use case.

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

get_match_protocolMatch protocolB

The match protocol (matchprotokoll): teams, result, venue, lineups with goals and suspensions per player, officials, and the full event log (goals, 7m, suspensions, timeouts).

NameRequiredDescriptionDefault
matchIdYesMatch id, or a profixio.com/app/lx/match/<id> URL

TDQS

B3.2/5.0
Behavior3/5

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

No annotations exist, so the description carries the full burden, but it never states that this is a read-only lookup or what happens with an invalid/unresolvable match id. It does earn credit for disclosing the shape of the payload (per-player lineups, full event log including goals, 7m, suspensions, timeouts), which tells the agent to expect a large detailed response rather than a summary.

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?

A single dense sentence that front-loads the resource name and its Norwegian synonym, then lists contents. Every clause contributes information; the only cost is that the enumeration is long and slightly repetitive about suspensions.

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 one fully documented parameter, no annotations, and no output schema, the main risk is unknown return shape — the description addresses that directly by enumerating the payload components. Missing only the read-only assurance and any note on response size or failure behavior.

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?

There is one parameter with 100% schema coverage, and the schema description already explains that matchId accepts either a numeric id or a profixio.com/app/lx/match/<id> URL. The tool description adds nothing about matchId, which is acceptable given the schema fully covers it — baseline 3.

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 names a specific resource (match protocol/matchprotokoll) and enumerates exactly what it contains — teams, result, venue, lineups, officials, event log — which cleanly separates it from the list-oriented siblings like get_competition_matches or get_matches_by_date. It lacks an explicit verb and never names a sibling, so it stops short of a 5.

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

Usage Guidelines2/5

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

There is no when-to-use guidance at all: nothing says to call this after locating a match id via get_competition_matches or get_matches_by_date, and no alternatives or exclusions are mentioned. The agent must infer the retrieval workflow from the sibling names alone.

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

get_standingsStandingsB

League table(s) for a competition. One competition can have several groups.

NameRequiredDescriptionDefault
competitionYesCompetition slug (e.g. leagueid27971) or URL

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. It does add one genuinely useful behavioral fact — that a single competition may yield several group tables — but says nothing about ordering, tie-breakers, or what a table contains.

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?

Two tight sentences with zero filler, front-loading the resource and following with the multi-group caveat. Nothing is wasted, though the brevity edges toward under-specification rather than economy.

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

Completeness3/5

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

For a one-parameter read tool with full schema coverage this is nearly sufficient, but with no output schema the description should say more about the shape of a standings table (positions, points, columns) instead of only noting that multiple groups exist.

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 coverage is 100% and the single 'competition' parameter already documents both accepted forms (slug or URL) with an example. The description adds no format or matching semantics beyond that, so the baseline of 3 applies.

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?

States a specific resource (league table/standings) scoped to a competition, which is clearly distinct from sibling tools that list competitions, teams, or matches. The retrieval verb is only implied by the name, and no sibling is named as an alternative, so it stops short of a 5.

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

Usage Guidelines3/5

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

Usage is only implied: an agent infers you call this when you want a table for a given competition. There is no explicit when-to-use, when-not-to-use, or pointer to a related tool such as get_competition_matches for results data.

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

get_team_matchesTeam matchesB

All matches for one team in a competition. Use search_teams or get_competition_matches to find the teamId.

NameRequiredDescriptionDefault
filterNoupcoming = not yet played, played = finished, all = bothall
teamIdYes
competitionYesCompetition slug (e.g. leagueid27971) or URL

TDQS

B3.2/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden, and it says nothing beyond the one-line purpose. It doesn't disclose whether results are paginated, how many matches are returned, ordering, or what fields a match record contains (scores, dates, status). Read-only behavior is only inferable from the verb "get".

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

Conciseness5/5

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

Two tight sentences with zero filler, and the core purpose is front-loaded before the prerequisite tip. Every sentence carries information an agent needs.

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

Completeness2/5

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

With no annotations and no output schema, the definition should explain what a match object looks like or at least whether results include scores/status/dates. As written, an agent knows the scope but not the payload or limits, which is thin for a three-parameter query tool.

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 coverage is 67%: competition and filter are already documented in the schema (filter's enum meanings are spelled out there). The description adds real value on teamId by pointing to search_teams as the source, but adds nothing about the filter values or whether 'all' is the default.

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?

"All matches for one team in a competition" states a specific verb (get/list) and resource with its scoping dimension (single team, single competition). It implicitly differentiates from get_competition_matches (all teams in a competition), though it never names that contrast explicitly.

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

Usage Guidelines3/5

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

The second sentence gives a prerequisite workflow — find the teamId via search_teams or get_competition_matches — which is genuinely useful for a required numeric ID. However, it never says when to choose this tool over get_competition_matches for the same competition, so the primary sibling 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.

list_competitionsList competitionsA

List the competitions (series/leagues) for the current season, either federation-wide (national series) or in one district. Returns slugs used by the other tools.

NameRequiredDescriptionDefault
searchNoCase-insensitive filter on competition name, e.g. 'P19'
districtIdNoDistrict id from list_districts; omit for federation-level competitions
federationYesFederation code, e.g. SHF

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description carries the safety burden; 'List' plus 'Returns slugs' conveys a read-only enumeration and hints at the return shape, which is useful given there is no output schema. It does not cover permissions, rate limits, season selection behavior (no season parameter exists), or what happens if districtId and search interact.

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

Conciseness5/5

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

Two sentences, zero filler, with the scope (current season) and the key downstream fact (slugs used by other tools) front-loaded.

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?

For a 3-parameter read-only list with full schema coverage and no output schema, the description adequately covers scope, targeting (federation vs. district), and what the response yields. Minor gap: it doesn't say how results are ordered or how search interacts with district scoping.

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%, so the schema already documents federation, districtId, and search with examples and patterns. The description's 'federation-wide or in one district' framing mirrors the districtId schema text ('omit for federation-level competitions') rather than adding new semantics, so baseline 3 applies.

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?

States a specific verb (List) and resource (competitions), disambiguates the term with '(series/leagues)', and scopes it to the current season. It does not explicitly contrast with siblings like list_districts or list_federations, but the federation-wide vs. district framing makes its place in the hierarchy inferable.

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 clear usage context: call it for the current season, either federation-wide or for one district, and notes the returned slugs feed the other tools. No explicit when-not-to-use or prerequisite chain (federation code / district id must be obtained elsewhere) is stated in the description, though the schema points to list_districts.

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

list_districtsList districtsA

List the districts/regions of a federation, e.g. SHF → HF Öst, HF Väst.

NameRequiredDescriptionDefault
federationYesFederation code, e.g. SHF

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the burden. 'List' implies a safe read operation, and the example shows the shape of returned values, but it says nothing about ordering, empty results, error handling on invalid federation codes, or permissions.

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

Conciseness5/5

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

A single compact sentence with zero waste, front-loaded with the verb and resource and followed by a clarifying example. Nothing could be removed without losing information.

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?

For a one-parameter, read-only lookup with a fully documented schema and no output schema, the description is nearly sufficient: it conveys the hierarchy and gives an example of return values. It falls slightly short on edge-case behavior (invalid code, empty district list) which matters when no output schema exists.

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 federation param already documents 'Federation code, e.g. SHF'), so the baseline is 3. The description's example reinforces the input format and additionally shows what district values look like, but adds no new constraints or format detail beyond the schema.

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?

States a specific verb+resource ('List the districts/regions of a federation') and even clarifies that districts and regions are the same concept. It does not explicitly differentiate itself from siblings like list_federations or list_competitions, though the parent-child relationship is implied by the example.

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

Usage Guidelines3/5

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

Usage is only implied: the example 'SHF → HF Öst' shows the tool is called with a federation code to obtain its districts. There is no explicit statement of when to use this versus list_federations or list_competitions, and no guidance on what happens for an unknown code.

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

list_federationsList federationsA

List the sports federations on Profixio (e.g. SHF = Svenska Handbollförbundet, SVBF = volleyboll). Start here to browse.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden. "List" signals a read-only, no-argument operation, but nothing is said about the shape of results (likely id/name pairs) or whether a federation id is required to call list_districts/list_competitions.

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

Conciseness5/5

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

Two short sentences, front-loaded with the action, and the parenthetical examples earn their space by disambiguating the domain-specific term "federation." No filler.

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

Completeness3/5

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

For a trivial zero-parameter list tool this is close to adequate, but with no output schema the description never indicates what comes back (identifiers vs. names) or how that output feeds the sibling browse tools, which is the main thing an agent needs to proceed.

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?

The tool takes zero parameters, so there is no parameter semantics to explain; the baseline of 4 applies. The description's examples describe the resource domain rather than arguments.

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?

States a clear verb and resource ("List the sports federations on Profixio") and grounds the abstract term "federation" with concrete examples (SHF, SVBF). It is distinguishable from siblings like list_districts and list_competitions, though it doesn't explicitly name them.

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

Usage Guidelines3/5

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

"Start here to browse" implies this is the entry point of a hierarchy and the downstream siblings (districts, competitions) follow, but the when/when-not conditions and the chaining path are only implied, not stated.

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

search_teamsSearch teamsA

Search all of Profixio for teams by name. Returns team ids with the competition each team plays in (newest seasons first is not guaranteed).

NameRequiredDescriptionDefault
queryYesTeam or club name, e.g. 'Tyresö'

TDQS

A3.6/5.0
Behavior3/5

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

With no annotations, the description carries the full burden, and it does add real value by disclosing the return shape (team ids plus competing competition) and the ordering caveat ('newest seasons first is not guaranteed'). However, it says nothing about matching semantics (partial vs exact name), result caps, pagination, or auth requirements that matter for a global search.

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

Conciseness5/5

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

Two short sentences, zero waste, with the scope and result contents front-loaded before the ordering caveat.

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?

For a one-parameter read tool with no output schema and no annotations, the description covers purpose, scope, and return contents, which is nearly enough; only result limits and match semantics are left unstated.

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 coverage is 100% and the single 'query' parameter already has an example ('Tyresö'), so the schema does the heavy lifting. The description only reinforces that matching is by team/club name across the whole corpus, adding no syntax or format detail beyond the schema.

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?

States a specific verb+resource ('Search ... for teams by name') and the scope ('all of Profixio'), which an agent can distinguish from the list_*/get_* siblings 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 Guidelines3/5

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

Usage is only implied: the wording suggests this is the lookup path when you need a team id, but there is no explicit when-to-use, no exclusions, and no statement about what to do when a team is already known via another sibling.

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. 9 tool updatesv0.1.0
    • First observedget_competition_matches
    • First observedget_match_protocol
    • First observedget_matches_by_date
    • First observedget_standings
    • First observedget_team_matches
    • First observedlist_competitions
    • First observedlist_districts
    • First observedlist_federations
    • First observedsearch_teams

TDQS

A3.5/5.0

Scored across 9 tools

Disambiguation4/5

Most tools are clearly distinct by resource and filter: federation/district/competition browsing, team search, standings, and match protocol are well separated. The three match-retrieval tools (get_competition_matches, get_team_matches, get_matches_by_date) overlap in returning match lists, but their descriptions make the filter differences reasonably clear.

Naming Consistency5/5

All tool names consistently follow a snake_case verb_noun pattern (list_*, search_*, get_*), with predictable resource names. There are no mixed conventions or vague verbs.

Tool Count5/5

Nine tools is well-scoped for browsing federations, districts, competitions, teams, schedules, standings, and match protocols. Each tool covers a distinct step in the sports-data workflow without obvious redundancy.

Completeness4/5

The surface covers the core browse-and-retrieve workflow: hierarchy navigation, team search, schedules/results, standings, and detailed match protocols. Minor gaps exist, such as no explicit season selection or team/player profile tools, but these are not dead ends for the main use cases.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    Read-only MCP server for the Palloliitto's result service API, enabling AI applications to search and inspect football & futsal data including clubs, teams, matches, competitions, and league tables.
    12
    -
  • F
    license
    Not graded
    quality
    B
    maintenance
    Provides read-only access to sports data, odds intelligence, and historical stats via 10 MCP tools, with fast response times through Redis caching.
    -
  • A
    license
    A
    quality
    D
    maintenance
    Enables MCP clients to access live football data from FotMob, including match stats, team form, injuries, and player workload, without making predictions.
    10
    1
    MIT
  • F
    license
    A
    quality
    C
    maintenance
    Enables read-only access to Sleeper fantasy sports data, including users, leagues, rosters, matchups, transactions, drafts, players, trending activity, playoff brackets, traded picks, and sport state via MCP tools.
    18
    -