Skip to main content
Glama
DanielTomaro13

sportsdata-mcp

mfl_players

Read-onlyIdempotent

Retrieves MFL player records with ID, name, position, and NFL team, supplying the ID translation table needed for roster, lineup, and waiver calls. Use specific player IDs or SINCE to reduce large responses.

Instructions

Every player MFL knows: id, name, position, NFL team. The id translation table every other MFL tool depends on. LARGE.

Returns: {players:{timestamp, player:[{id, name:'Last, First', position, team}]}} — id is MFL's own player id and is what every roster, lineup and waiver call speaks. name is 'Surname, Firstname'. VERIFIED live 2026.

The full table is thousands of players; prefer PLAYERS= or SINCE= once you have ids.

Example: Look up three players by id {"year": 2026, "PLAYERS": "13593,14208,15029"}

Auth: works without a key; MFL_COOKIE unlocks more if set.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
JSONNoLeave as-is.
TYPENoLeave as-is.players
yearYesSeason year, e.g. 2026. Required — part of the URL path.
SINCENoUnix time; return only players changed since then. The cheap way to stay current.
DETAILSNo1 adds height, weight, DOB, college and draft info — several MB. Omit unless you need it.
PLAYERSNoSpecific player ids, comma-separated — far smaller than the full table.
Install Server

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, and idempotentHint, covering safety and idempotency. The description adds meaningful behavioral context beyond annotations: it warns the tool is LARGE (thousands of players), describes the exact return structure, flags data as 'VERIFIED live 2026,' and explains auth behavior (no key needed, cookie unlocks more). It also gives a concrete example of a selective call. This substantially enriches what an agent knows about side effects and data freshness, though it does not contradict annotations.

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?

The description is information-dense and well-structured: a one-line summary, a return-format section, efficiency guidance, a concrete example, and an auth note. Each segment earns its place, and the most critical facts (what it returns, that it's large) are front-loaded. It is slightly longer than strictly necessary but avoids verbosity. The use of line breaks and bolded labels aids scanning. Loses a point for minor redundancy (the return object is restated using inline JSON).

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

Completeness5/5

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

For a tool with 6 parameters, 1 required, and no output schema, the description is exceptionally complete. It specifies the exact response shape, clarifies the id field's role, provides an efficiency warning and a concrete usage example, and states auth requirements. There is no obvious missing information an agent needs to invoke it correctly. The absence of an output schema is compensated by the returned JSON snippet. This is a model description in terms of completeness.

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 descriptions cover 100% of parameters, so the baseline is 3. The description provides a worked example using PLAYERS and year, which illustrates parameter usage but does not reveal new semantics beyond the schema. For instance, the schema already explains PLAYERS as 'comma-separated' and SINCE as 'Unix time.' The description reinforces the efficiency rationale but adds only marginal value. The return-shape explanation is not parameter-level. Thus 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 opens with a precise statement of what the tool returns — 'Every player MFL knows: id, name, position, NFL team' — and immediately frames it as 'The id translation table every other MFL tool depends on.' This clearly distinguishes it from sibling MFL tools like mfl_rosters or mfl_free_agents, which consume these ids. The verb is implicit but unambiguous: it retrieves the complete player list or specific players by id.

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 usage context: this is the id translation table for MFL, so an agent knows to call it first to obtain ids for subsequent roster, lineup, or waiver calls. It also advises efficiency: 'prefer PLAYERS= or SINCE= once you have ids.' While it doesn't explicitly say 'use mfl_rosters instead of this for rosters,' the role is clear enough. Auth guidance ('works without a key; MFL_COOKIE unlocks more') also informs when to use it. Slight gap: no explicit when-not-to-use vs. other MFL tools, but the framing is strong.

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

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/DanielTomaro13/sportsdata-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server