Skip to main content
Glama
tlo1216

espn-fantasy-mcp

by tlo1216

Move to IR

move_to_ir

Move an eligible player into the IR/IL slot to open a roster spot. The tool verifies eligibility and lock status before submitting the lineup move.

Instructions

Move one player into the IR/IL slot, as a lineup move. Refuses if the player isn't eligible for IR or is locked.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
sportNoffl (football), fba (basketball), or flb (baseball). Defaults to ESPN_SPORT.ffl
seasonNoSeason year. Defaults to ESPN_SEASON.
dry_runNoDefault true: validates and reports what would be sent without sending it. Set false to actually execute (still a no-op if WRITES_ENABLED=false in .env).
team_idNo
league_idNoESPN league id. Defaults to ESPN_LEAGUE_ID.123456
player_idYes

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
sentNo
dryRunYes
responseNo
wouldSendNo
validationYes
verificationNo
blockedReasonNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already indicate readOnlyHint=false, destructiveHint=false, idempotentHint=false. The description adds that the tool refuses if the player isn't eligible or is locked, and the dry_run parameter in the schema adds safety context. It doesn't contradict annotations. It could mention whether it's reversible, but the refusal conditions and dry_run default provide meaningful behavioral context.

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, front-loaded with the core action and scope, followed by refusal conditions. No wasted words. Every sentence 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?

The tool has an output schema, so return values are covered. The description covers the core behavior, refusal conditions, and the dry_run safety mechanism is in the schema. It doesn't explicitly mention the relationship to activate_from_ir, but the sibling list and description are sufficient for an agent to call it correctly.

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 67%, and the description doesn't add much parameter-level detail beyond what the schema provides. The dry_run parameter is well-documented in the schema. The description's mention of 'refuses if not eligible' relates to player_id semantics but doesn't add new parameter meaning. Baseline 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 action ('Move one player into the IR/IL slot'), the resource (player), and the context (as a lineup move). It also distinguishes itself from siblings by mentioning IR/IL eligibility and lock refusal, which differentiates it from activate_from_ir and set_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 implies when to use it: when a player is IR-eligible and the user wants to make a lineup move. It doesn't explicitly name alternatives like activate_from_ir, but the context and sibling list make the use case clear. It also states refusal conditions (not eligible or locked), which helps an agent decide when not to use it.

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