Skip to main content
Glama
tlo1216

espn-fantasy-mcp

by tlo1216

Set Lineup

set_lineup

Apply a batch of lineup moves to one team after validating eligibility and roster limits. Invalid or locked moves are rejected with reasons and never sent.

Instructions

Apply a batch of lineup moves to one team. Validates every move locally first (player is on the roster, target slot is eligible, player isn't locked, and the resulting lineup respects the league's slot counts) before sending anything. Rejected moves are reported with a reason and never sent.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
movesYes
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

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?

The description goes beyond annotations by revealing the local validation phase, noting that validations happen before anything is sent, and stating that rejected moves are reported with a reason and never sent. Annotations already indicate this is a non-read operation, so this context meaningfully adds to the behavioral model.

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 compact and front-loaded. Every sentence carries distinct information: what the tool does, how validation works, and what happens with rejected moves. There is no filler or repetition.

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 description is adequate considering the rich schema (defaults, dry_run behavior, slot ID references) and the annotation set. It could be clearer on whether valid moves are sent if any rejected ones exist, but the schema, output schema, and annotation hints fill most remaining gaps.

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?

Schema coverage is about 67%, and the description adds real meaning to the 'moves' parameter by enumerating validation rules: player must be on the roster, slot eligibility, player not locked, and lineup must respect slot counts. It also clarifies that this is a batch operation, which is not in the schema itself.

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 opens with a specific verb and resource, 'Apply a batch of lineup moves to one team,' and clearly differentiates this from sibling tools like add_free_agent, move_to_ir, or activate_from_ir. It communicates both the batch nature and the one-team scope.

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 the user wants to set or adjust a lineup, but it does not explicitly contrast with alternatives or say what it's not for. There is no explicit 'when to use vs. not use' guidance, only indirectly derived from the operation name and wording.

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