Skip to main content
Glama

slate_diff

Slate Diff

Compute what changed since a previously-stored snapshot.

Body shape: { "slate_id": 32867, "date": "2026-05-11", "sport": "NBA", "site": "FD", "previous": { "v": "v1", "players": [{"id","name","status","salary","proj"}, ...], "odds": [{"game","ou","spread","home_ml","away_ml"}, ...] } }

Returns a structured diff: which players changed status / salary / projection, which games moved spread or O/U, which players were added or removed from the pool. The thresholds for "changed":

  • status: any non-empty difference (Q→OUT, ''→OUT, GTD→IN, etc.)

  • salary: any integer delta

  • projection: |delta| >= 0.5 fantasy points

  • odds spread: |delta| >= 0.5

  • odds ou: |delta| >= 0.5

  • odds ml: |delta| >= 10 (American odds noise floor)

No auth required — read-only computation off in-memory current snapshot plus the caller-supplied previous one.

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

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

TDQS

A4.6/5.0
Behavior5/5

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

Despite no annotations, the description explicitly states it requires no authentication, is read-only, and operates on in-memory snapshots. It details detection thresholds for different field changes, providing comprehensive behavioral transparency.

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 well-structured with sections for purpose, body shape, thresholds, auth, and response examples. It is informative without being overly verbose, though slightly longer than necessary.

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?

The description covers the tool's purpose, input format, output structure (structured diff), thresholds, authentication, and side effects. Given the complexity and lack of output schema, it provides complete contextual 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?

The input schema is empty (0 parameters), but description provides an example request body with all necessary fields, effectively defining the parameter semantics beyond the schema. This adds significant value.

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 clearly states the verb 'Compute' and the resource 'what changed since a previously-stored snapshot'. It distinguishes itself from sibling tools like get_slate_players and list_slates by focusing on diff functionality.

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 implicitly defines when to use the tool (to compute changes since a snapshot), but lacks explicit exclusions or alternative tool recommendations. However, the context is clear enough for an agent to infer appropriate usage.

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.

TDQS

C2.8/5.0
Disambiguation3/5

The betting_* cluster is clearly namespaced, but betting_best_bets and betting_scan_edges both return a ranked board of top prop edges, and betting_market overlaps with betting_game_lines and betting_sharp/cross_book in purpose. The detailed descriptions reduce misselection, but several boundaries are not crisp.

Naming Consistency3/5

The set is uniformly snake_case with helpful cluster prefixes like betting_, list_, and slate_, so it reads predictably. However, it mixes verb_noun names (generate_lineups, run_mlb_postmortem), noun phrases (betting_market, health_check/health_v12), and adjective-noun names (betting_best_bets, betting_sharp), so there isn't one consistent pattern.

Tool Count2/5

34 tools is above the 25+ threshold for a single MCP server, even considering the combined betting/DFS/contest scope. Several tools could be consolidated — betting_best_bets vs betting_scan_edges, health_check vs health_v12, and the two guides — making the surface feel heavy rather than lean.

Completeness5/5

The betting lifecycle is covered end-to-end: raw markets, models, edge scans, value checks, parlay building, bet logging/settlement, and P&L/CLV. The DFS side covers slates, player pools, lineup generation/fill, presets, contests, diff/health/refresh, and postmortems, leaving no obvious dead end for agents.

Resources