Skip to main content
Glama

fill_template

Fill Template

Fill a downloaded FanDuel/DK entries-template with already-generated lineups WITHOUT re-running the optimizer — the MCP-callable equivalent of the dashboard's fill_template. Keeps each entry row's leading columns (entry_id, contest_id, fee) and replaces the roster-slot columns with a lineup's upload tokens, cycling lineups if there are more entry rows than lineups.

Responses:

200: Successful Response (Success Response) Content-Type: application/json 422: Validation Error Content-Type: application/json

Example Response:

{
  "detail": [
    {
      "loc": [],
      "msg": "Message",
      "type": "Error Type",
      "ctx": {}
    }
  ]
}

Input Schema

NameRequiredDescriptionDefault
lineupsYesEach lineup = upload tokens in template roster-slot order.
template_csvYesRaw CSV of the entries-template (headers + entry rows).
lineup_headerNoThe `upload.csv_header` the lineups came with (e.g. 'PG,SG,SF,PF,C,G/F,F/C,UTIL,UTIL'). When given, the template is filled only if its roster columns are exactly these; without it a FanDuel NBA flex template (G/F, F/C columns) is refused because the order of the tokens is unknown.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / lineup_header
      Added value: +{
      +  "anyOf": [
      +    {
      +      "maxLength": 200,
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "The `upload.csv_header` the lineups came with (e.g. 'PG,SG,SF,PF,C,G/F,F/C,UTIL,UTIL'). When given, the template is filled only if its roster columns are exactly these; without it a FanDuel NBA flex template (G/F, F/C columns) is refused because the order of the tokens is unknown.",
      +  "title": "lineup_header",
      +  "type": "string"
      +}
  2. First observed

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the burden and largely succeeds: it discloses that leading columns (entry_id, contest_id, fee) are preserved, roster slots are replaced, lineups cycle when entry rows outnumber lineups, and that a FanDuel NBA flex template is refused without lineup_header. It omits whether the operation is purely local/side-effect free, which would have closed the gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The opening paragraph is well front-loaded and dense with useful detail, but the trailing '### Responses' block is generic FastAPI boilerplate, and the sample body is a 422 validation-error payload rather than anything specific to this tool. Roughly half the text is filler.

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

Completeness3/5

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

Inputs, mutation semantics and failure modes are covered, but with no output schema the description leaves the success return value undefined — an agent cannot tell whether it gets back a filled CSV string or a JSON object. The response section documents only the error shape, which is boilerplate rather than the missing information.

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 baseline is 3, but the description adds real semantics beyond the schema: the cycling rule governing the lineups array when there are more rows than lineups, and the rationale for lineup_header (token order is unknown otherwise). That is meaningful behavioral meaning tied to specific parameters.

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?

Names a specific verb and resource ('Fill a downloaded FanDuel/DK entries-template') and explicitly distinguishes it from the optimizer path ('WITHOUT re-running the optimizer'). An agent can separate this from generate_lineups without opening the 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?

Clear context: use it on 'already-generated lineups' after generation, and the lineup_header paragraph explains the guard condition under which a template is refused. It states the precondition but doesn't name the sibling tool (generate_lineups) to call first or exclude any other alternatives explicitly.

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