Guides

Task-oriented walkthroughs for connecting an agent to Lumify — MCP setup, integration recipes, and copy-paste code for common jobs.

For agents: the machine-readable twin of this page is /docs/guides.md. For deeper copy-paste recipes see the agent cookbook.

API key Sign in, or get an instant trial key below — no signup required.

Model Context Protocol (MCP)

Lumify runs a hosted MCP server so AI agents can call the entire sports-intelligence API as native tools — no wrapper code required.

Endpoint  https://lumify.ai/mcp
Transport  Streamable HTTP (JSON mode, stateless)  ·  Auth  Bearer API key  ·  Protocol  2025-06-18

Any MCP-compatible client connects by pointing at https://lumify.ai/mcp and passing your Lumify API key as a Bearer token. The server is fully self-describing — a client's tools/list call returns the current tool catalogue with input schemas. You can inspect the discovery document with a browser GET to /mcp (JSON). Tool calls use POST only — Lumify does not offer a GET Server-Sent Events stream on this URL. Some clients briefly probe with Accept: text/event-stream and receive 405 Allow: POST; that is expected transport negotiation, then they continue over POST JSON (streamable HTTP).

Add Lumify MCP to Cursor Get an API key first → AI-assisted setup guide →

The one-click install opens Cursor with a placeholder key — replace YOUR_API_KEY with a key from your dashboard before approving.

Connect from Cursor

Recommended (remote): add Lumify to ~/.cursor/mcp.json (or a project-local .cursor/mcp.json):

~/.cursor/mcp.json
{
  "mcpServers": {
    "lumify": {
      "url": "https://lumify.ai/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

Stdio bridge (optional): if you prefer a local process, use the published @lumifyai/mcp package:

~/.cursor/mcp.json
{
  "mcpServers": {
    "lumify": {
      "command": "npx",
      "args": ["-y", "@lumifyai/mcp"],
      "env": { "LUMIFY_API_KEY": "YOUR_API_KEY" }
    }
  }
}

Connect from Claude Desktop

Claude Desktop speaks stdio. Prefer the official bridge package:

claude_desktop_config.json
{
  "mcpServers": {
    "lumify": {
      "command": "npx",
      "args": ["-y", "@lumifyai/mcp"],
      "env": { "LUMIFY_API_KEY": "YOUR_API_KEY" }
    }
  }
}

Alternatively, bridge with mcp-remote:

claude_desktop_config.json
{
  "mcpServers": {
    "lumify": {
      "command": "npx",
      "args": [
        "-y", "mcp-remote", "https://lumify.ai/mcp",
        "--header", "Authorization: Bearer YOUR_API_KEY"
      ]
    }
  }
}

Connect from VS Code / Copilot

Add a server entry under mcp.servers in your VS Code settings (or .vscode/mcp.json):

.vscode/mcp.json
{
  "servers": {
    "lumify": {
      "type": "http",
      "url": "https://lumify.ai/mcp",
      "headers": { "Authorization": "Bearer YOUR_API_KEY" }
    }
  }
}

Available tools

Each tool maps 1:1 to a REST endpoint and returns identical data. Credit cost mirrors the equivalent REST call.

ToolDescriptionCredits
list_sportsSupported sports with current active season.1
list_seasonsSeasons per sport/league; optional current-only filter.1
list_eventsSchedule / scores, filterable by sport, league, status, date, season.1
get_eventSingle event; optional include_odds (scoped by bookmaker, default pinnacle) / include_intelligence.1
batch_get_eventsMultiple events by id in one call (max 25). Missing ids cost nothing.Sum of each event's cost
query_eventsNatural-language event search (e.g. "live nfl games today") — rule-based, mapped to list_events filters.1
get_live_scoreLightweight live score snapshot.1
get_oddsCurrent moneyline / spread / total lines.1 (2 for all books)
get_odds_historyRecorded line-movement history.1 (2 for all books)
get_statsRaw team/match statistics — sport-specific payload, no scoring. Coverage: /docs/reference#event-stats.1
get_player_propsNFL/NCAAF/NBA/NCAAB/NHL/MLB player-prop mains + live box progress. Sport × market catalog: /docs/player-props.1
get_team_propsNFL team-total mains + this-event team score.1
get_period_oddsNFL/NCAAF/NBA/NCAAB first-half and MLB first-five mains + period-score settlement.1
get_splitsPublic betting splits (bets% / handle%).1
get_intelligenceBet intelligence — probability / Price overlay on MLB, soccer, tennis, NFL, NCAAF; bets[].ev (Beta) on moneyline.1
list_evBeta moneyline EV scan for soccer, MLB, tennis, NFL, and NCAAF. Same number as bets[].ev.1
list_teamsTeam directory with sport/league/conference filters.1
get_teamSingle team profile with home venue.1
search_playersPlayer search by name, sport, country, ranking.1
get_playerSingle player profile.1
get_player_eventsA player's schedule / results (±30 days by default).1
estimate_costPre-call credit-cost estimate (min–max range) for one or more planned tool calls.Free

Billing

The MCP handshake is free: initialize, tools/list, and ping never cost credits. Only tools/call is metered, at the same rate as the matching REST endpoint. Each result reports its cost under _meta.credits_used. Calls that return no usable data because it isn't available yet — odds, line history, splits, or intelligence for a match that hasn't been priced/computed — are free (_meta.credits_used: 0).

Web connectors (ChatGPT / Claude.ai): browser-based connectors require OAuth, which Lumify's key-based MCP server does not implement yet. Use Cursor, Claude Desktop (via npx @lumifyai/mcp), or any client that supports Bearer-token headers.

Building with AI? See the AI-assisted development guide for Cursor/Claude prompts, llms.txt, OpenAPI, and copy-paste agent recipes.

Cookbook & Postman

Deeper, copy-paste-ready references for building on Lumify:

ResourceDescription
Agent cookbookEnd-to-end recipes for REST + MCP, including verified client configs and billing behaviour.
Postman collectionImportable collection covering the REST endpoints and MCP JSON-RPC calls.
llms.txtCompact machine-readable overview for LLM agents.
agent.jsonAgent manifest with the MCP endpoint and transport.
OpenAPI schemaFull machine-readable spec for the REST surface.
Task Recipes Copy-paste workflows that combine multiple endpoints for a specific job.

Track live odds movement

Two ways to watch a line move without hammering /v1/events/{id}/odds/history on a tight poll loop:

  • Push (recommended): create a webhook subscription with event_types: ["line_move"] — you'll be notified the moment a price or point changes. Transient delivery failures retry automatically; inspect delivery history if a callback looks stuck.
  • Pull: poll odds history every few minutes and diff against the last recorded_at you've seen. History is not cached, so every call reflects the latest ingest.
curl
# Subscribe once — deliveries arrive at your endpoint from then on
curl -X POST https://lumify.ai/v1/webhooks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url": "https://example.com/hooks/lumify", "event_types": ["line_move"]}'

Build an MCP betting-splits agent

Give an LLM agent read access to public betting splits with no REST wrapper code — connect to the hosted MCP server and call its tools directly:

  1. Connect Cursor, Claude Desktop, or any MCP client to https://lumify.ai/mcp with your API key as the Bearer token (see the MCP section for client configs).
  2. Call the list_events tool filtered by sport/date to find event IDs.
  3. Call the get_splits tool per event ID — the agent reasons over bets%/handle% directly, no JSON parsing code required.

Prefer REST? The equivalent call is GET /v1/events/{id}/splits — MCP and REST share the same billing and rate limits.

Pull a full event intelligence report in one call

Fetch schedule, odds, and bet intelligence together instead of three separate round trips:

curl
curl "https://lumify.ai/v1/events/4812?include_odds=true&include_intelligence=true" \
  -H "Authorization: Bearer YOUR_API_KEY"

This is still 1 credit and saves two round trips versus separate event, odds, and intelligence calls. See Get an event for the full parameter reference.

Provision API access programmatically

Let an agent onboard itself — mint a key, check its balance, and top up credits — without a human touching the dashboard:

curl
# 1. Mint a key (needs an existing session or key to bootstrap)
curl -X POST https://lumify.ai/api/agent/keys \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "agent-worker-1"}'

# 2. Check balance before a big batch of calls
curl https://lumify.ai/api/agent/credits \
  -H "Authorization: Bearer YOUR_API_KEY"

# 3. Top up if running low
curl -X POST https://lumify.ai/api/agent/credits/topup \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"pack_id": 1}'

Full parameter and error reference: Manage API keys and Credits & credit packs.

Use Cases End-to-end build guides with finished demos you can clone and run.

Build a live sports scoreboard

Discover in-progress games with GET /v1/events?status=inprogress, stream score updates over SSE, and render a live board — with a cloneable open-source demo.

Full walkthrough + finished-product screenshot: Build a live sports scoreboard with the Lumify API → · Example code: examples/scoreboard