Skip to main content
Glama
gsypolt

MFL MCP Server

by gsypolt

Call any MFL export request (advanced)

mfl_export
Read-onlyIdempotent

Call any MyFantasyLeague export TYPE for raw JSON when no dedicated tool exists. Read-only; auto-adds league ID and API key.

Instructions

Read-only escape hatch: call any MyFantasyLeague export request TYPE and get the raw JSON. Use this only when no dedicated mfl_ tool covers the need, for example: projectedScores, tradeBait, pendingTrades, salaries, accounting, playoffBrackets, weeklyResults, topAdds, topDrops, adp, aav, nflSchedule, playerProfile, messageBoard, rules.

The league ID and API key are added automatically. Parameter names are CASE SENSITIVE and must match MFL's docs (e.g. W, P, FRANCHISE, POSITION). This tool cannot change anything in MFL.

Args:

  • type (string): MFL export TYPE, e.g. "projectedScores".

  • params (object, optional): extra query parameters, e.g. { "W": "5" }.

  • league_scoped (boolean, default true): false for site-wide types like adp, nflSchedule, playerProfile.

  • league, season: optional.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeYesMFL export TYPE.
leagueNoWhich league: a configured alias (see mfl_list_leagues), league name, or numeric MFL league ID. Omit for the default league.
paramsNoExtra MFL parameters, e.g. { "W": "5" }.
seasonNoSeason year, e.g. 2025 for last season. Omit for the league's default (usually current) season.
league_scopedNofalse for site-wide types (adp, nflSchedule, playerProfile...).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so safety is partly covered. The description adds genuinely useful context beyond that: creds are injected automatically, parameter names are CASE SENSITIVE and must match MFL docs, and site-wide vs league-scoped behavior. It stops short of describing output shape or error behavior for arbitrary exports.

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?

Front-loads the core framing ('Read-only escape hatch') and organizes the rest into purpose, credentials, and an Args list. Most sentences earn their place, though 'cannot change anything in MFL' mildly repeats the readOnly/destructive annotations.

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 an open-ended passthrough tool with no output schema (raw MFL JSON) and 5 params, the description covers the routing decision, credential handling, param naming rules, and the league_scoped toggle. It could note that the return payload varies by type, but is otherwise complete.

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 100% so the baseline is 3, and the description pushes past it by warning that param names are case-sensitive and must match MFL docs (e.g. W, P, FRANCHISE), which is not stated in the schema. The example param object and league_scoped usage reinforce but largely restate 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?

States a specific verb and resource ('call any MFL export request TYPE and get the raw JSON') and explicitly positions itself as an 'escape hatch' distinct from the dedicated sibling tools. An agent can immediately tell it apart from mfl_get_* tools.

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

Usage Guidelines5/5

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

Explicit when-to-use gate ('Use this only when no dedicated mfl_ tool covers the need') plus a concrete list of example types that map to common use cases. It names the alternative category (mfl_ tools) and the condition that selects this one over them.

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