Skip to main content
Glama

UFC DFS lineup optimizer

invoke_mma_optimizer
Read-onlyIdempotent

Builds the highest projected UFC lineups for a DraftKings or FanDuel slate with an exact solver. DraftKings: 6 fighters under $50,000. FanDuel: the top fighter in each lineup is the MVP (1.5x points), 5 more fighters, under $100. Options: number of lineups, minimum unique fighters between lineups, maximum fighters from the same bout, lock and exclude by name, objective (projection, ceiling or a blend) and a cap on total ownership. Returns each lineup with salary, projection, ceiling and total ownership, plus the exposure of each fighter.

Input Schema

NameRequiredDescriptionDefault
lockNoFighter names that must be in every lineup.
siteNodk = DraftKings, fd = FanDuel. Picks that site's main slate when slate_id is not given.
countNoNumber of lineups, 1 to 20. Default 5.
excludeNoFighter names to leave out.
slate_idNoSlate id from mma_list_slates, for example dk:154571 or fd:552. Default: the DraftKings main slate of the next card.
objectiveNoproj (default, cash games), ceil (85th percentile, tournaments) or blend (65 percent projection, 35 percent ceiling).
min_salaryNoMinimum salary used, in site units (dollars on DK, FanDuel dollars on FD).
min_uniqueNoMinimum different fighters between any two lineups, 1 to 6. Default 2.
contest_typeNoContest type for projected ownership. Default 150max.
max_per_fightNoMaximum fighters from one bout, 1 or 2. Default 1.
max_total_ownNoMaximum sum of projected ownership in a lineup, in percent (0 = off). For tournaments.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is covered. The description adds real behavioral value beyond that: it discloses the exact solver, the platform-specific lineup rules (DK 6 under $50k; FD MVP 1.5x, 5 more under $100), and the returned fields, which matters since there is no output schema.

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?

Three dense sentences, front-loaded with the core action and platform rules, with no filler. The platform-rules sentence is long but each clause carries usable constraint information.

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 an 11-parameter solver with no output schema and no required params, the description covers the domain rules, the option set, and the return payload (lineup salary/projection/ceiling/ownership plus fighter exposure). Nothing an agent needs to invoke it correctly is missing.

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. The description goes further by tying parameters to domain meaning the schema omits — lock/exclude by name, the objective blend ratio, ownership cap semantics, and the DK/FD lineup structures that govern count and min_unique behavior.

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 (Builds) and resource (UFC lineups) with an exact solver, and names the two supported platforms. It is clearly the MMA member of the optimizer sibling family (invoke_lol_optimizer, invoke_nba_optimizer, etc.) without needing to open a schema.

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?

Gives clear usage context: objective=proj is for cash games, ceil for tournaments, and max_total_own is flagged 'For tournaments'. However, it never names an alternative tool (e.g. invoke_mma_projections or invoke_mma_sim_picks) or states when NOT to use it, so it stops short of explicit routing.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources