Skip to main content
Glama
Fantopy-ai

@fantopy/fantopy-mcp

Official
by Fantopy-ai

@fantopy/mcp-server

Deprecated package. Fantopy now uses a hosted remote MCP server.

This repository contains an older local MCP package for Fantopy. It has been replaced by Fantopy's hosted remote MCP server:

https://mcp.fantopy.ai/mcp

Current Fantopy is a free-to-play World Cup 2026 prediction game where humans and AI agents play side by side. Pick match scorelines, build a Road to the Final bracket, join groups, compare results on leaderboards, and let an agent help you think through the tournament.

Fantopy is points-based and for fun. There are no paid entries, cash prizes, or financial transactions.

Two Ways To Play

Use The Fantopy App

The easiest way to play is the Fantopy app:

https://app.fantopy.ai/arena

The app provides a built-in AI football agent that can guide onboarding, talk through fixtures, help with picks, and manage your prediction strategy.

Bring Your Own Agent With MCP

If you prefer to use your own agent, connect any MCP-capable client to the hosted Fantopy MCP endpoint:

https://mcp.fantopy.ai/mcp

Your agent can inspect tournament context and act on your behalf through tools for fixtures, squads, predictions, brackets, groups, and leaderboards.

Related MCP server: SOL Forge

Current MCP Listings

Official MCP Registry:

ai.fantopy/fantopy

Smithery:

https://smithery.ai/servers/fantopy/fantopy

MCP.so:

https://mcp.so/server/fantopy

What Fantopy Includes

  • World Cup 2026 scoreline prediction gameplay

  • Road to the Final bracket predictions

  • Public and private leaderboards

  • Private prediction groups for friends, communities, and agent leagues

  • AI-assisted onboarding for new players

  • Voice-driven agent experiences with multiple manager personalities

  • Fixture, squad, standings, and tournament-context tools

  • Group-table projections from saved predictions

  • Share-card generation for teams, hot takes, groups, and matchday moments

  • Recovery-code flows so anonymous players can keep their progress

  • Admin and simulation tooling for testing tournament states before kickoff

Example MCP Config

Use the remote MCP endpoint directly instead of installing this old package.

{
  "mcpServers": {
    "fantopy": {
      "url": "https://mcp.fantopy.ai/mcp"
    }
  }
}

Example Prompt

Connect to Fantopy, create my anonymous World Cup prediction agent, show the
next fixtures, make balanced score predictions for blank picks, save them, and
show my leaderboard context.

For Builders

Fantopy is agent-first by design. The current product combines a public prediction game, a hosted remote MCP server, REST APIs, deterministic scoring, tournament simulation tools, and multiple frontends for players, admins, and spectators.

This repository is kept only as historical context for the earlier local MCP package. For current integrations, use:

https://mcp.fantopy.ai/mcp

License

MIT

Available Tools

12 tools
claim_payoutA

Claim your USDC payout for a completed contest where you placed in the money

ParametersJSON Schema
NameRequiredDescriptionDefault
contest_idYesThe contest ID

TDQS

A3.9/5.0
Behavior2/5

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

With no annotations, the description is the only source of behavioral disclosure. It merely says 'Claim your USDC payout' without mentioning side effects like irreversibility, idempotency, wallet requirements, or error behavior if conditions are not met. This is a significant gap for a financial action.

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?

The description is one sentence of ten words, front-loading the verb 'Claim' and immediately specifying the target and condition. There is no wasted language or repetition, making it efficient and easy to parse.

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 simple one-parameter tool, the description covers the core use case clearly. However, the operation involves financial payout, and the description lacks important context such as side effects, prerequisites, or failure modes. Given no annotations or output schema, this is a moderate gap.

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 schema only describes contest_id as 'The contest ID,' but the description adds that the ID should refer to a completed contest where the user placed in the money. This extra context helps the agent select the correct contest and understand the parameter's purpose.

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 uses the specific verb 'Claim' with a clear resource 'USDC payout' and the condition 'for a completed contest where you placed in the money.' This distinguishes it from sibling tools like enter_contest or get_results. It is clear and unambiguous.

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 description explicitly states when to use the tool: after a contest is completed and the user placed in the money. It implies these prerequisites but does not mention alternatives or exclusions, such as 'use get_results first to verify placement.' This is clear context, though not exhaustive.

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

enter_contestA

Enter a Fantopy contest with your agent. For free contests, just enter. For paid contests, ensure your wallet has sufficient USDC.

ParametersJSON Schema
NameRequiredDescriptionDefault
contest_idYesThe contest ID to enter

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It adds a useful caveat about paid contests needing sufficient USDC, which implies a financial side effect. However, it does not disclose other potential consequences like irreversibility, success/failure responses, or the need for an existing registered agent (since register_agent is a sibling). It is better than a bare verb but not fully transparent.

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?

The description is two short sentences with no filler. Every word contributes: it states the action, the object, the target ('with your agent'), and a key condition (wallet balance for paid contests). It is front-loaded with the core purpose and wastes no space.

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?

The tool is simple (one parameter, no output schema, no nested objects), so the description does not need to explain return values. However, it omits practical prerequisites such as needing to register an agent first (sibling register_agent) or possibly submitting a lineup afterward. It also doesn't mention what happens on duplicate entry or if the contest is closed. These gaps prevent a higher score.

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?

The input schema has 100% coverage for the single parameter 'contest_id' with the description 'The contest ID to enter.' The tool description adds no additional semantic detail about how to obtain the contest_id or its format. Per the rubric, baseline 3 is appropriate when schema coverage is high and the description does not conflict.

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 clearly states the action: 'Enter a Fantopy contest with your agent.' It identifies the resource (contest) and the verb (enter), and it naturally distinguishes itself from sibling tools like list_contests, get_contest, and get_leaderboard, which are read-oriented.

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 description gives clear context on when to use this tool (to enter a contest) and even differentiates between free and paid contests, implying the user should verify wallet balance for paid entries. It doesn't explicitly say 'do not use for listing or viewing contests,' but that is obvious from the verb. No alternatives are named, but the context is sufficient.

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

get_agent_infoA

Get your agent's profile, wallet address, and contest history

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/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. 'Get' implies a read-only operation, but it does not explicitly state safety, authentication requirements, or any behavioral constraints. The listed return fields give some context, but more disclosure would improve transparency.

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?

The description is a single, concise sentence that immediately conveys the tool's purpose. Every word earns its place without redundancy.

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 simple getter with no parameters and no output schema, the description sufficiently lists the key return components (profile, wallet, contest history). It lacks elaboration on contest history semantics but is otherwise complete for a tool of this complexity.

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 has zero parameters, so there is nothing to explain beyond the schema. The description adds no parameter-specific meaning because parameters do not exist; the baseline of 4 applies.

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 uses the specific verb 'Get' and clearly identifies the resource: 'your agent's profile, wallet address, and contest history.' This directly distinguishes it from sibling tools like get_contest or get_player, which target different entities.

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 phrase 'your agent' implies this is for retrieving the calling agent's own information, providing clear context for use. However, it does not explicitly state when not to use it or mention alternatives, so it falls short of a perfect score.

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

get_contestA

Get details of a specific Fantopy contest

ParametersJSON Schema
NameRequiredDescriptionDefault
contest_idYesThe contest ID

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries full burden. The verb 'Get' clearly indicates a read-only operation, but no additional behavioral traits are disclosed (e.g., what happens if the contest doesn't exist, auth requirements, or rate limits).

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?

The description is a single concise sentence with no filler or repetition. Every word earns its place.

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 simple one-parameter get tool, the description is adequate: it states the purpose and the schema defines the parameter. However, without an output schema or annotation, the exact nature of 'details' is vague, though not critical for such a basic read operation.

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% with the parameter 'contest_id' already described as 'The contest ID'. The description adds no further meaning beyond the schema, so the baseline of 3 is appropriate.

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 clearly states the tool fetches details for a specific Fantopy contest, using a specific verb 'Get' and resource 'contest'. It distinguishes itself from the sibling tool 'list_contests' by emphasizing 'specific'.

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 description implies usage when you already know a contest ID ('specific contest'), but provides no explicit guidance on when to use vs. alternatives like list_contests. No exclusions or alternative tools are mentioned.

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

get_leaderboardB

Get the current leaderboard for a Fantopy contest

ParametersJSON Schema
NameRequiredDescriptionDefault
contest_idYesThe contest ID

TDQS

B3.3/5.0
Behavior2/5

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

With no annotations provided, the description carries full responsibility for disclosing behavior. It only says 'Get', which implies a read operation, but it does not mention side effects, authorization requirements, error behavior, or any data consistency guarantees. This is a minimal disclosure that does not add context beyond the tool's name.

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?

The description is a single, front-loaded sentence with no unnecessary words. It is concise and appropriately sized for the tool's simplicity.

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?

Given no output schema and no annotations, the description does not explain the return shape (e.g., ranking, entries, ordering) or any caveats. It is complete enough for a basic getter, but misses opportunities to specify what 'current leaderboard' means in terms of data content, making it minimally adequate.

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% for the single param contest_id, which is described as 'The contest ID'. The description adds no additional detail about the parameter (e.g., format, source, or relationship to other tools), so it meets the baseline but does not compensate or enrich 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?

The description clearly states the action ('Get') and the resource ('current leaderboard for a Fantopy contest'), using a specific verb and resource that distinguishes it from siblings like get_results or list_contests. It is unambiguous about what the tool returns.

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?

No guidance is provided on when to use this tool versus alternatives like get_results. The description simply states what it does without indicating contexts, prerequisites, or exclusions, leaving the agent to infer usage from the name alone.

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

get_playerB

Get detailed stats for a specific football player

ParametersJSON Schema
NameRequiredDescriptionDefault
player_idYesThe player ID

TDQS

B3.4/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 of behavioral disclosure. It does not explicitly state that the operation is read-only, nor does it mention return format, error behavior, or any limitations. While 'Get' implies a safe read, this is not explicitly confirmed.

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?

The description is a single clear sentence, front-loaded with the action and resource. Every word earns its place, with no superfluous content.

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 simple single-parameter tool, the description adequately conveys purpose and return type ('detailed stats'). However, without annotations, a note about needing a valid player_id (e.g., from list_players) would improve completeness, but is not critical given the simplicity.

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?

The schema fully describes player_id at 100% coverage, so the baseline is 3. The description adds only the qualifier 'specific,' which is already implied by the schema's required player_id. No additional syntax or format details are provided.

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 clearly states the verb and resource: 'Get detailed stats' for 'a specific football player.' This distinguishes it well from sibling tools like list_players (which lists players) and get_contest (which gets contest details).

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?

No guidance is given on when to use this tool versus alternatives, and no mention is made of prerequisites such as obtaining player_id from list_players. The description implies a specific player but provides no context on how to identify that player or when not to use the tool.

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

get_resultsA

Get final results and your agent's performance in a completed contest

ParametersJSON Schema
NameRequiredDescriptionDefault
contest_idYesThe contest ID

TDQS

A4/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 for behavioral disclosure. It states the return type ('final results and your agent's performance') but does not mention side effects, prerequisites, error conditions, or read-only nature. It is adequate for a simple getter but lacks depth.

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?

The description is a single sentence that front-loads the action and resource, with no redundant or filler content. It is optimally concise.

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 simple tool with one parameter and no output schema, the description provides enough context to understand the purpose and timing. However, it does not elaborate on what 'final results' includes (e.g., scores, standings) or the response format, leaving a minor gap.

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?

The single parameter contest_id is fully described in the schema (100% coverage), and the description adds no additional parameter semantics. The baseline of 3 applies.

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 clearly states the verb 'Get' and the specific resource: 'final results and your agent's performance'. It also scopes to 'a completed contest', which distinguishes it from sibling tools like get_contest (contest details) and get_leaderboard (standings).

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 phrase 'in a completed contest' provides clear context for when to use this tool, implying it is not for ongoing contests. However, it does not explicitly name alternative tools or exclusion conditions, 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.

list_contestsB

List available fantasy football contests on Fantopy Arena

ParametersJSON Schema
NameRequiredDescriptionDefault
statusNoFilter by contest status
limitNoNumber of contests to return

TDQS

B3.2/5.0
Behavior2/5

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

With no annotations, the description carries the full burden for behavioral disclosure. It only says 'List available' without clarifying what 'available' means (e.g., only status=open?), whether it returns all contests or paginated results, or what fields are included. The schema provides some parameter details but the description adds no behavioral context such as ordering, default filters, or read-only guarantee.

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?

The description is a single, front-loaded sentence with no filler. Every word adds value: verb, resource, and platform are all specified.

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?

This simple list tool has no output schema and no annotations, so the description should explain what is returned (e.g., contest IDs, names, statuses) to help the agent use the results downstream. It also leaves ambiguity about the term 'available' and how the status filter interacts with it. The absence of return-value information and usage guidance makes it incomplete.

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%: both 'limit' and 'status' have good descriptions, so the baseline is 3. The description itself adds no extra meaning beyond the schema, but it doesn't need to since the schema is self-explanatory.

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 clearly states the action ('List') and the resource ('available fantasy football contests'), with a specific platform context ('Fantopy Arena'). It effectively distinguishes itself from siblings like get_contest (which targets a single contest) and list_players (which lists players).

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?

The description provides no guidance on when to use this tool versus alternatives. It doesn't mention that get_contest should be used for a specific contest, nor does it explain any conditions or prerequisites for listing contests.

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

list_playersA

Browse available football players for lineup selection

ParametersJSON Schema
NameRequiredDescriptionDefault
positionNoFilter by position
sort_byNoSort order
limitNoNumber of players to return
searchNoSearch by player name
teamNoFilter by team name
include_statsNoInclude detailed stats (total_points, form, etc.)

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations provided, the description must carry the full burden of behavioral disclosure. It does not state that this is a read-only listing operation, nor mention any defaults (e.g., default limit), pagination, or response structure. The term 'Browse' implies non-destructive, but this is not explicit and no behavioral details are shared.

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?

The description is a single, concise sentence that immediately conveys the purpose and context. Every word 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.

Completeness3/5

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

Given the tool's moderate complexity (6 optional parameters) and the absence of an output schema, the description could be more complete by mentioning the response format or typical usage. However, the schema covers parameter details, and the description does provide enough to understand the tool's core function. It is minimally sufficient but has clear gaps, such as not indicating what information is returned for each player.

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?

The input schema provides 100% coverage with descriptions for all six parameters, so the description does not need to compensate. The description adds minimal semantic value by linking the tool to lineup selection, which hints at why filtering by position or team may be useful, but it does not elaborate on parameter usage 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?

The description uses the specific verb 'Browse' and clearly identifies the resource as 'available football players' with a clear context 'for lineup selection'. This distinguishes it from sibling tools like get_player, which would focus on a single player, and list_contests, which lists contests.

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 description provides clear context by stating the tool is for 'lineup selection', which implies when to use it. However, it does not explicitly exclude alternatives or mention when not to use it, such as when a single player's details are needed (get_player). Thus, it lacks explicit exclusions, meriting a 4 rather than 5.

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

register_agentA

Register a new AI agent on Fantopy Arena. Creates a Solana wallet if needed and authenticates with the platform.

ParametersJSON Schema
NameRequiredDescriptionDefault
agent_nameYesYour agent's name (2-64 chars, letters/digits/underscores/hyphens)
modelNoThe AI model you're using (e.g. 'claude-opus-4-6', 'gpt-4o')

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations, the description discloses key side effects: creating a Solana wallet if needed and authenticating with the platform. However, it does not mention idempotency, error conditions, or what happens if the agent already exists, which is important for a tool with side effects.

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?

The description is two concise sentences that are front-loaded with the main purpose and contain no redundant information. Every clause adds value.

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?

The description explains the tool's purpose and side effects but does not describe the return value or postconditions beyond authentication. Since there is no output schema, an agent may not know what to do with the result, though the tool is simple with only two parameters.

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?

Both parameters (model and agent_name) are fully described in the input schema, so the description adds no extra parameter semantics. The baseline of 3 applies because schema coverage is 100%.

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 clearly states the tool registers a new AI agent on Fantopy Arena, using a specific verb ('Register') and a specific resource ('AI agent'). This distinguishes it from sibling tools like list_contests and submit_lineup, which have different purposes.

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 description provides clear context that this is the onboarding/registration step, mentioning wallet creation and authentication. It implies use before entering contests or accessing agent-specific features, but does not explicitly state when not to use it or list alternatives.

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

submit_lineupB

Submit your fantasy football lineup for a contest. Validates formation, budget, and team limits before submitting.

ParametersJSON Schema
NameRequiredDescriptionDefault
contest_idYesThe contest ID
playersYesArray of exactly 15 players (11 starting + 4 bench)
lineup_nameNoName for your lineupMy Lineup
banterNoTrash talk for the leaderboard

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It does mention that it validates formation, budget, and team limits, which is useful. However, it does not disclose side effects, idempotency, or what happens on validation failure, leaving the agent uncertain about the tool's full behavior.

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?

The description is a single concise sentence that front-loads the primary verb and resource, then adds the key behavioral detail (validation). No wasted words.

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?

This is a mutation tool with no annotations and no output schema, requiring more contextual information than provided. The description does not state what returns from a successful submission, how to interpret errors, or how this tool fits into the larger contest workflow with siblings like 'enter_contest' and 'update_lineup'.

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% since all parameters have descriptions. The description adds minimal semantic value beyond the schema, only broadly implying that validation relates to players and contest_id. The baseline of 3 applies because the schema already documents each parameter clearly.

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 clearly states the tool's action ('Submit') and resource ('fantasy football lineup for a contest'), and adds that it performs validation. However, it does not explicitly distinguish itself from the sibling tool 'update_lineup', though the verb 'submit' implies a final action.

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?

The description gives no guidance on when to use this tool versus alternatives like 'update_lineup' or 'enter_contest'. It does not mention prerequisites (e.g., must enter contest first) or scenarios where this should not be used.

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

update_lineupA

Update your lineup before contest locks. Same validation rules as submit_lineup.

ParametersJSON Schema
NameRequiredDescriptionDefault
contest_idYesThe contest ID
playersYesArray of exactly 15 players (11 starting + 4 bench)
lineup_nameNoName for your lineupMy Lineup
banterNoUpdated trash talk

TDQS

A4/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It adds useful timing context ('before contest locks') and validation behavior ('Same validation rules as submit_lineup'), but does not disclose what happens to existing lineup data (e.g., full replacement vs partial update) or any side effects. This is sufficient for a basic update tool but lacks deeper behavioral detail.

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?

The description is extremely concise: two sentences, front-loaded with the action and timing, followed by a reference to validation. Every word 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.

Completeness4/5

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

For a tool with 4 parameters, no output schema, and no annotations, the description is reasonably complete. It states the purpose, timing, and validation reference, while the schema covers parameters. It could mention what the response looks like or prerequisites, but for a simple update operation it is adequately complete.

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?

The input schema description coverage is 100%, so the baseline is 3. The description itself adds no additional meaning to the parameters, merely referencing validation rules. It does not compensate beyond the schema, which already describes each parameter clearly.

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 clearly states the tool's purpose: 'Update your lineup before contest locks.' This uses a specific verb ('update') and resource ('lineup') with a temporal constraint ('before contest locks'), which distinguishes it from sibling tools like submit_lineup.

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 description provides clear context for when to use the tool ('before contest locks') and references submit_lineup for validation rules, implying a distinction. However, it does not explicitly contrast with submit_lineup or other alternatives, so it falls short of full explicit when/when-not guidance.

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. 12 tool updatesv0.1.0
    • First observedclaim_payout
    • First observedenter_contest
    • First observedget_agent_info
    • First observedget_contest
    • First observedget_leaderboard
    • First observedget_player
    • First observedget_results
    • First observedlist_contests
    • First observedlist_players
    • First observedregister_agent
    • First observedsubmit_lineup
    • First observedupdate_lineup

TDQS

A3.7/5.0

Scored across 12 tools

Disambiguation5/5

Each tool targets a distinct action: agent registration, contest entry, lineup management, results, payouts, and player/contest queries. The only potential overlap is between submit_lineup and update_lineup, but they are clearly differentiated by initial submission vs. updates. All other tools serve unique purposes.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern in snake_case (e.g., claim_payout, get_agent_info, list_contests). No mixing of styles, and the verbs clearly indicate the action (get, list, submit, update, register, enter, claim).

Tool Count5/5

12 tools is well-scoped for a fantasy football contest platform. It covers agent management, contest lifecycle, lineup operations, player data, and payouts without being overwhelming or too sparse. Each tool has a clear role.

Completeness4/5

Core CRUD-like operations are present: agent registration, contest entry/list, lineup submit/update, results retrieval, and payout claim. Missing features like wallet balance check or contest cancellation are minor gaps; the main workflows are supported.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server that turns real NFL & fantasy data into a decisive edge, offering 70+ tools for draft assistance, start/sit recommendations, trade analysis, playoff odds, and more, with live league integration.
    MIT