# Aura

> Live sports data: scores, play-by-play, box scores, odds and props. No key needed to start.

- name: tl.aura/aura
- version: 1.0.0
- connection class: R0 (autonomous)
- trust: 96/100
- quality: 91/100 (strong)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/tl.aura%2Faura
- tools: https://api.protogrid.dev/v1/servers/tl.aura%2Faura/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "aura": {
      "type": "http",
      "url": "https://aura.tl/mcp",
      "headers": {
        "x-api-key": "${X_API_KEY}"
      }
    }
  }
}
```

Placeholders to fill: `${X_API_KEY}`.

## Trust

- hygiene: 100
- liveness: 100
- freshness: 100
- provenance: 85
- drivers: +repository +dns-namespace +website +reachable +uptime-100% +updated-14d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality 91/100 (strong)

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-11-25; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: 100 (weight 30)

- pass `tools.descriptions`: every tool has a description
- pass `tools.description_length`: descriptions are concise
- pass `tools.schemas`: every tool has an object input schema
- pass `tools.annotations`: 18 of 18 tools declare readOnlyHint or destructiveHint
- pass `tools.directory_hints`: every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint
- pass `tools.token_cost`: about 2,081 tokens to load every tool
- pass `tools.api_dump`: tools are not a one-to-one API dump
- pass `tools.hidden_text`: no hidden text in tool names, descriptions, schemas or annotations

### stability: 100 (weight 15)

- pass `stability.changes`: 3 tool changes in 30 days
- pass `stability.rug_pull`: no tool changed its meaning under the same name
- pass `stability.new_links`: no tool change named a new site

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: 18, about 2,081 tokens to load them all
- tool set hash: 663255f79de96b504c72bd6325145a0d
- tools last changed: 2026-11-08T21:28:06.870Z
- badge: [![protogrid quality](https://protogrid.dev/badge/tl.aura/aura.svg)](https://protogrid.dev/servers/tl.aura/aura)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-11-08 `aura_list_games` changed (inputSchema)
- 2026-11-01 `aura_list_players` changed (inputSchema)
- 2026-11-01 `aura_metric_series` changed (inputSchema)

Full history: https://api.protogrid.dev/v1/servers/tl.aura%2Faura/changes

## Remotes

- https://aura.tl/mcp (streamable-http, auth none, reachable true, uptime30d 1)

## Packages

_none_

## Tools (18)

- `aura_boxscore`: Full box score for one game: team totals and every player's stat line.
- `aura_claim_email`: Emails the user a 6-digit code that moves this connection from the trial to the free plan (50,000 requests a month). Ask the user for their email first; never guess it. Then ask them for the code and call aura_verify_email.
- `aura_coverage`: Which sports, seasons and data products Aura has right now, with measured completeness and freshness. Call when unsure whether Aura covers something.
- `aura_game_frame`: What is happening in a game at this moment: score, situation (count, outs and bases, or period and clock), latest play and freshness.
- `aura_game_markets`: Current odds for one game: moneyline, spread, total and player props, each source priced on both sides, with live result and settlement. Pass marketType to keep the result small; player_prop results can be large, so add playerId or definitionId.
- `aura_game_plays`: Play-by-play for one game in order, a page at a time. Pass page.nextCursor to continue.
- `aura_get_game`: One game by Aura game id: teams, start time, status, period and score.
- `aura_get_player`: One player by Aura player id: name, position, status, current team and headshot.
- `aura_get_team`: One team by Aura team id.
- `aura_get_team_roster`: A team's roster with player ids, positions, jersey numbers, height, weight and headshots.
- `aura_list_games`: Games for one day with teams, start time, status and score. Omit date for today (US Pacific league date). Filter by sport, status or team abbreviation. Returns Aura game ids for the other game tools; for odds, pass each id to aura_game_markets.
- `aura_list_players`: Player profiles for a whole sport, a page at a time. For one team use aura_get_team_roster.
- `aura_list_teams`: Every team in a sport with Aura team ids, names, abbreviations, colors, conference and division.
- `aura_live_games`: Every game in progress right now, across all sports, with score and period or inning.
- `aura_metric_series`: Time series of in-game metrics for one game, such as win probability, score margin and player lines. Call without definitionId first to see which series exist.
- `aura_odds_timeline`: How a game's odds moved from open to now, as timestamped observations. Use for "how has the line moved".
- `aura_upgrade`: Returns a checkout link for Aura Pro: $20 a month for 500,000 requests. Give the link to the user; they pay in their browser and this connection upgrades. Needs a verified email first.
- `aura_verify_email`: Checks the 6-digit code from the user's email and puts this connection on the free plan: 50,000 requests a month.
