> ## Documentation Index
> Fetch the complete documentation index at: https://docs.etonecarg.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Dual-Source Doctrine

> Learn when Sports MCP Server should stay GSD-first, use watchability-first flows, or compose both in a bounded hybrid flow.

# Dual-Source Doctrine

Sports MCP Server is not a thin wrapper around provider endpoint parity. It is a product-shaped contract that picks a source family based on the job the user is actually asking you to solve.

## Start with the job, not the upstream

<Tabs>
  <Tab title="Competition-first sports truth">
    Use GSD-first flows when the product question is about the sport itself.

    Good fits:

    * standings, rankings, tables, ladders, and playoff picture
    * competition structure, phases, and season context
    * event summary, timeline, lineups, stats, and odds
    * roster and participant identity pages

    Start with:

    * [`list_schedule`](/sports-mcp-server/tool-reference/list_schedule)
    * [`get_competition_hub`](/sports-mcp-server/tool-reference/get_competition_hub)
    * [`get_event_summary`](/sports-mcp-server/tool-reference/get_event_summary)
    * [`get_standings`](/sports-mcp-server/tool-reference/get_standings)
  </Tab>

  <Tab title="Availability-first watchability">
    Use watchability-first flows when the product question is really about what can be watched, where it can be watched, or what is live now.

    Good fits:

    * watchable dayboards and upcoming rails
    * live or imminently live slates
    * program-first experiences
    * normalized where-to-watch answers

    Start with:

    * [`list_watchable_schedule`](/sports-mcp-server/tool-reference/list_watchable_schedule)
    * [`list_live_slate`](/sports-mcp-server/tool-reference/list_live_slate)
    * [`get_watch_availability`](/sports-mcp-server/tool-reference/get_watch_availability)
    * [`get_program_context`](/sports-mcp-server/tool-reference/get_program_context)
  </Tab>

  <Tab title="Bounded hybrid composition">
    Use hybrid tools when the experience is better as one coherent surface and the extra fanout is justified.

    Good fits:

    * competition dashboards that need both schedule truth and watchable rails
    * series hubs that need leaderboard refs plus bounded event rows
    * event-center experiences with sports truth plus watchability and media

    Start with:

    * [`get_competition_hub`](/sports-mcp-server/tool-reference/get_competition_hub)
    * [`get_series_hub`](/sports-mcp-server/tool-reference/get_series_hub)
    * [`get_event_center`](/sports-mcp-server/tool-reference/get_event_center)
  </Tab>
</Tabs>

## The important boundary

Schedule is a dual-source domain, but the two schedule tools mean different things:

| Tool                                                                                   | Source ownership                                                                                    | Use it for                                                                            |
| -------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| [`list_schedule`](/sports-mcp-server/tool-reference/list_schedule)                     | GSD-led                                                                                             | Competitive schedule truth, season browse, event selection, and deep sports workflows |
| [`list_watchable_schedule`](/sports-mcp-server/tool-reference/list_watchable_schedule) | Supported availability contract when provisioned, otherwise GSD-led stateless watchability evidence | Watchable rows, curated schedule semantics, and program-aware browse experiences      |
| [`list_live_slate`](/sports-mcp-server/tool-reference/list_live_slate)                 | GSD-led with optional availability overlay                                                          | What is live or imminently live right now                                             |

## Design rules

* GSD must not fake watchability.
* Watchability adapters must not fake standings, actions, stats, or odds.
* Hybrid enrichment should stay explicit, bounded, and explainable.
* If cross-provider linkage is weak, return ambiguity or partials instead of guessing.

## Read this next

* [IDs, Crosswalks, and Bounded Windows](/sports-mcp-server/concepts/ids-crosswalks-and-bounded-windows)
* [Response Envelopes and Partials](/sports-mcp-server/concepts/response-envelopes-and-partials)
* [Tool Catalog](/sports-mcp-server/tools/tool-catalog)
