> ## 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.

# Get Event Center

> Return one bounded event recap bundle with summary, optional sports-truth sections, optional watch availability, and optional media/editorial enrichment.

Canonical tool name: `get_event_center`

Family: [Hybrid Bundle Tools](/sports-mcp-server/tools/hybrid-bundle-tools)

## What this tool is best at

Return the main one-call event recap bundle with summary, optional lineups, optional timeline, optional stats, optional odds, optional watchability, optional media, and optional editorial.

## Choose this tool when

* the product wants the event center in one response instead of calling summary, lineups, timeline, stats, odds, watchability, and media separately.
* Source ownership: GSD Lookup primary, availability optional, GSD Metadata media/editorial optional

## Use something smaller or different when

* the host only needs one atomic event section or when the extra sections would waste tokens.

## Inputs you need

### Plain-English prerequisites

* This tool does not require a prerequisite ID beyond the scoped inputs shown below.

### Required inputs in the public contract

| Input      | What it means                                                               |
| ---------- | --------------------------------------------------------------------------- |
| `eventId`  | Event ref for the selected event-center experience.                         |
| `timeFrom` | Bounded window start for the watchability-aware sections inside the bundle. |
| `timeTo`   | Bounded window end for the watchability-aware sections inside the bundle.   |

### Optional inputs in the public contract

| Input                 | What it means                                                                                                                                                                                         |
| --------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `idSource`            | Lookup-path hint for the supplied ID. `auto` uses namespace-aware routing, `gsd` treats the ID as sports-truth-facing, and `on` treats it as On-facing. It does not change source-of-truth ownership. |
| `includeLineups`      | Include lineups and officials in the event-center bundle.                                                                                                                                             |
| `includeTimeline`     | Include play-by-play, incidents, or event-action timeline data in the bundle.                                                                                                                         |
| `includeStats`        | Include event stats in the bundle.                                                                                                                                                                    |
| `includeOdds`         | Include odds data when available.                                                                                                                                                                     |
| `includeWatchOptions` | Include watchability enrichment in the bundle.                                                                                                                                                        |
| `includeMedia`        | Include bounded media and imagery enrichment in the bundle.                                                                                                                                           |
| `includeEditorial`    | Include editorial enrichment when the experience truly needs it. Leave it off for tighter default responses.                                                                                          |
| `includeSections`     | Optional section allow-list for bundle tools. Use it when the host wants one composed tool but still needs a bounded payload.                                                                         |
| `rowLimit`            | Optional cap for repeated rows returned inside bundles such as hubs or event-center watchability sections.                                                                                            |
| `language`            | Optional BCP 47 language hint such as `en-US`. Use it when the host needs translated provider output.                                                                                                 |

### Notes on optional inputs

* `includeSections` overrides the individual boolean include flags when both are provided.
* `timeFrom` and `timeTo` are still required even for one known event because watchability-aware sections are window-bound.

## Sequencing guidance

| Needed ID or scope | Call this first                                       | Then use                                                                                                      |
| ------------------ | ----------------------------------------------------- | ------------------------------------------------------------------------------------------------------------- |
| scope              | [Tool Catalog](/sports-mcp-server/tools/tool-catalog) | Start from the smallest tool that can safely anchor the workflow, then deepen only if the user asks for more. |

* Use this only after the host already knows the correct event.
* Start from `get_event_summary` instead when the UX does not need the full bundle.

## Response highlights

* This is the main one-call event recap bundle, not a raw passthrough of every upstream event endpoint.
* The bundle is section-bounded and may return partial success with explicit `meta.partial`, `meta.missingSections[]`, and `meta.limitations[]` when one requested section is unavailable.

## Response shape

| Field                                                        | What it means                                                                                              |
| ------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------- |
| `data.summary`                                               | Minimum event summary block for the selected event.                                                        |
| `data.lineups`                                               | Optional lineup and official block.                                                                        |
| `data.timeline`                                              | Optional action or play-by-play block.                                                                     |
| `data.stats`                                                 | Optional stats bundle containing `teamStats` and `personStats` plus normalized groups.                     |
| `data.odds`                                                  | Optional odds block.                                                                                       |
| `data.watchAvailability`                                     | Optional watchability bundle with `options[]`, `eventEvidence[]`, `linkageStatus`, and `availabilityMode`. |
| `data.media / data.editorial`                                | Optional bounded media and editorial enrichment blocks.                                                    |
| `meta.partial / meta.missingSections[] / meta.limitations[]` | Envelope-level signals for requested sections that were intentionally omitted or unavailable.              |

## Reuse next

* Reuse provider refs returned by this tool to avoid resolving the same entity again.
* Read `meta.agentHints.recommendedNextTools` and `meta.agentHints.disambiguationOptions` as non-binding host hints.

## Example requests

<Tabs>
  <Tab title="Recommended request">
    <CodeGroup>
      ```json JSON-RPC theme={null}
      {
        "jsonrpc": "2.0",
        "id": "tool-call-1",
        "method": "tools/call",
        "params": {
          "name": "get_event_center",
          "arguments": {
            "eventId": "MATCH_ID",
            "timeFrom": "2026-04-08T18:00:00Z",
            "timeTo": "2026-04-08T23:00:00Z",
            "includeEditorial": false
          }
        }
      }
      ```

      ```bash curl theme={null}
      curl "https://sports-mcp-server.etonecarg.com/" \
        -X POST \
        -H "Authorization: Bearer $SPORTS_MCP_API_KEY" \
        -H "Accept: application/json, text/event-stream" \
        -H "Content-Type: application/json" \
        -H "mcp-protocol-version: 2025-03-26" \
        -d '{
        "jsonrpc": "2.0",
        "id": "tool-call-1",
        "method": "tools/call",
        "params": {
          "name": "get_event_center",
          "arguments": {
            "eventId": "MATCH_ID",
            "timeFrom": "2026-04-08T18:00:00Z",
            "timeTo": "2026-04-08T23:00:00Z",
            "includeEditorial": false
          }
        }
      }'
      ```

      ```ts TypeScript theme={null}
      const payload = {
          "jsonrpc": "2.0",
          "id": "tool-call-1",
          "method": "tools/call",
          "params": {
            "name": "get_event_center",
            "arguments": {
              "eventId": "MATCH_ID",
              "timeFrom": "2026-04-08T18:00:00Z",
              "timeTo": "2026-04-08T23:00:00Z",
              "includeEditorial": false
            }
          }
        };

      const response = await fetch("https://sports-mcp-server.etonecarg.com/", {
        method: "POST",
        headers: {
          Authorization: `Bearer ${process.env.SPORTS_MCP_API_KEY!}`,
          Accept: "application/json, text/event-stream",
          "Content-Type": "application/json",
          "mcp-protocol-version": "2025-03-26",
        },
        body: JSON.stringify(payload),
      });

      const data = await response.json();
      console.log(JSON.stringify(data, null, 2));
      ```

      ```python Python theme={null}
      import json
      import os

      import requests

      payload = {
        "jsonrpc": "2.0",
        "id": "tool-call-1",
        "method": "tools/call",
        "params": {
          "name": "get_event_center",
          "arguments": {
            "eventId": "MATCH_ID",
            "timeFrom": "2026-04-08T18:00:00Z",
            "timeTo": "2026-04-08T23:00:00Z",
            "includeEditorial": False
          }
        }
      }

      response = requests.post(
          "https://sports-mcp-server.etonecarg.com/",
          headers={
              "Authorization": f"Bearer {os.environ['SPORTS_MCP_API_KEY']}",
              "Accept": "application/json, text/event-stream",
              "Content-Type": "application/json",
              "mcp-protocol-version": "2025-03-26",
          },
          json=payload,
          timeout=30,
      )

      response.raise_for_status()
      print(json.dumps(response.json(), indent=2))
      ```
    </CodeGroup>
  </Tab>

  <Tab title="Expanded request">
    <CodeGroup>
      ```json JSON-RPC theme={null}
      {
        "jsonrpc": "2.0",
        "id": "tool-call-1",
        "method": "tools/call",
        "params": {
          "name": "get_event_center",
          "arguments": {
            "eventId": "MATCH_ID",
            "timeFrom": "2026-04-08T18:00:00Z",
            "timeTo": "2026-04-08T23:00:00Z",
            "includeLineups": true,
            "includeTimeline": true,
            "includeStats": true,
            "includeOdds": true,
            "includeWatchOptions": true,
            "includeMedia": true,
            "includeEditorial": true
          }
        }
      }
      ```

      ```bash curl theme={null}
      curl "https://sports-mcp-server.etonecarg.com/" \
        -X POST \
        -H "Authorization: Bearer $SPORTS_MCP_API_KEY" \
        -H "Accept: application/json, text/event-stream" \
        -H "Content-Type: application/json" \
        -H "mcp-protocol-version: 2025-03-26" \
        -d '{
        "jsonrpc": "2.0",
        "id": "tool-call-1",
        "method": "tools/call",
        "params": {
          "name": "get_event_center",
          "arguments": {
            "eventId": "MATCH_ID",
            "timeFrom": "2026-04-08T18:00:00Z",
            "timeTo": "2026-04-08T23:00:00Z",
            "includeLineups": true,
            "includeTimeline": true,
            "includeStats": true,
            "includeOdds": true,
            "includeWatchOptions": true,
            "includeMedia": true,
            "includeEditorial": true
          }
        }
      }'
      ```

      ```ts TypeScript theme={null}
      const payload = {
          "jsonrpc": "2.0",
          "id": "tool-call-1",
          "method": "tools/call",
          "params": {
            "name": "get_event_center",
            "arguments": {
              "eventId": "MATCH_ID",
              "timeFrom": "2026-04-08T18:00:00Z",
              "timeTo": "2026-04-08T23:00:00Z",
              "includeLineups": true,
              "includeTimeline": true,
              "includeStats": true,
              "includeOdds": true,
              "includeWatchOptions": true,
              "includeMedia": true,
              "includeEditorial": true
            }
          }
        };

      const response = await fetch("https://sports-mcp-server.etonecarg.com/", {
        method: "POST",
        headers: {
          Authorization: `Bearer ${process.env.SPORTS_MCP_API_KEY!}`,
          Accept: "application/json, text/event-stream",
          "Content-Type": "application/json",
          "mcp-protocol-version": "2025-03-26",
        },
        body: JSON.stringify(payload),
      });

      const data = await response.json();
      console.log(JSON.stringify(data, null, 2));
      ```

      ```python Python theme={null}
      import json
      import os

      import requests

      payload = {
        "jsonrpc": "2.0",
        "id": "tool-call-1",
        "method": "tools/call",
        "params": {
          "name": "get_event_center",
          "arguments": {
            "eventId": "MATCH_ID",
            "timeFrom": "2026-04-08T18:00:00Z",
            "timeTo": "2026-04-08T23:00:00Z",
            "includeLineups": True,
            "includeTimeline": True,
            "includeStats": True,
            "includeOdds": True,
            "includeWatchOptions": True,
            "includeMedia": True,
            "includeEditorial": True
          }
        }
      }

      response = requests.post(
          "https://sports-mcp-server.etonecarg.com/",
          headers={
              "Authorization": f"Bearer {os.environ['SPORTS_MCP_API_KEY']}",
              "Accept": "application/json, text/event-stream",
              "Content-Type": "application/json",
              "mcp-protocol-version": "2025-03-26",
          },
          json=payload,
          timeout=30,
      )

      response.raise_for_status()
      print(json.dumps(response.json(), indent=2))
      ```
    </CodeGroup>
  </Tab>
</Tabs>

## Related tools

### Previous-step tools

* [`get_event_summary`](/sports-mcp-server/tool-reference/get_event_summary)
* [`get_watch_availability`](/sports-mcp-server/tool-reference/get_watch_availability)

### Next-step tools

* [`get_media_assets`](/sports-mcp-server/tool-reference/get_media_assets)
* [`get_program_context`](/sports-mcp-server/tool-reference/get_program_context)

### Alternative tools

* No common alternatives.

## Prompt patterns this tool fits

* Use `get_event_center` when the host already knows the right scope and needs this job directly.

## Common mistakes

* Turning on every optional section by default when a smaller response would answer the prompt just as well.
