Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Description from the maker (original English)
Flash Props API: player-prop analysis, projections, evidence, and line movement over REST/MCP.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
AuthorizationValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Run this in your terminal
claude mcp add --transport http flash-props-api https://api.flashodds.live/mcp --header 'Authorization: Bearer {api_key}'Fill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"flash-props-api": {
"url": "https://api.flashodds.live/mcp",
"headers": {
"Authorization": "Bearer {api_key}"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"flash-props-api": {
"type": "http",
"url": "https://api.flashodds.live/mcp",
"headers": {
"Authorization": "Bearer {api_key}"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.
Your choice stays on this device in a cookie; no account needed.
Authorization secret required HTTP headerThese settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Tool names and descriptions exactly as the server reported them on Nov 9, 2026. The maker wrote them, not us; we show them as plain text.
list_sportsList every sport supported by Flash Props API with its live status and how deep the Flash model goes. Read-only. No side effects. Rate-limited per your tier. Returns { sports: Array<{ id, name, category, enabled, status, activeGames, activeProps, projectedProps, projectionCapabil
get_market_metadataReturn the machine-readable stat vocabulary for a sport: for each live market, its label, family, scope (map1/maps13/full_game), unit, display order, and whether a Flash projection is supported (with a reason when not). Read-only. No side effects. Rate-limited per your tier. Retu
list_gamesReturn today's games that have player props available for a sport. Read-only. No side effects. Requires an API key; rate-limited per your tier. Returns: { sport, count, games: Array<{ id, sport, homeTeam, awayTeam, startTime, live, source }> }. id is the eventId to pass to get_ga
get_game_propsFetch all player props for one game identified by eventId. Read-only. No side effects. Requires an API key; rate-limited per your tier. Returns: { eventId, sport, homeTeam, awayTeam, startTime, props: Array<{ player, stat, line, overOdds, underOdds, bookCount, gameState?, flashPr
scan_propsFlatten every active player prop across all of today's games for a sport into a single list. Read-only. No side effects. Requires an API key; rate-limited and row-capped per your tier (Free 15 rows, Builder 100, Pro 3,000, Enterprise 5,000). Returns: { sport, stat, count, rows: A
find_gameTranslate a matchup (home team + away team) into the eventId needed by get_game_props. Read-only. No side effects. Requires an API key; rate-limited per your tier. Use this when you know the teams playing but don't have the eventId. On success returns: { eventId }. Pass that id s
find_player_propsEvery active prop for one player across today's board for a sport; same rows as scan_props, filtered by name (exact normalized match preferred, case-insensitive contains match as a fallback; see matchType in the response) instead of stat. Read-only. No side effects. Requires an A
get_player_contextSeason context from the sport's registered Flash pack: per-market baselines, recent form, and sport-native splits. Free and Builder receive the same basic context shape as REST; Pro adds the dense recent map/game log when available. If the sport has no registered pack or the play
get_prop_evidenceAssemble the whole story of a single prop in one call. Read-only. No side effects. Requires an API key and is tier-shaped exactly like REST: Free gets the book/Flash/gap teaser, Builder adds recent form + Confidence summary + movement delta + teaser splits, and Pro gets the full
get_prop_historyChronological line/odds history for a player prop, with opened/current/movement. Free is locked with a structured tier_required response naming Builder as the first unlock. Builder receives the most recent history window; Pro receives full history. History accrues from when archi
scan_moversProps whose line moved most within a lookback window (default 24h, max 7d), sorted by absolute movement. Free is locked with Builder as the first unlock. Builder gets a limited board; Pro gets the full movement board. When to use: "biggest movers", "which lines moved the most tod
get_leadersRanked boards for a sport with a registered Flash pack. Read-only. No side effects. Tier-shaped exactly like REST: Free sees the top 3 teaser, Builder the top 10, and Pro the full board. metric=gap ranks Flash-vs-book gaps; metric=form ranks recent mean vs Flash Line; metric=samp
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 10, 2026
The registry name was verified with the GitHub account iFan6oy, which owns the repo
We have not read this repo from GitHub yet
We have not read this repo from GitHub yet
Responded in 291 ms (HTTP 200)
No sign-in needed
Read 12 tool descriptions and found no hidden instructions to the AI
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
You need to fill in: Authorization
It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed –, and the latest version (1.4.1) reached the registry 2 months ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.
In the same category: Spec Driven Development, Remote Desktop Commander, Plures
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.
Human in the loop for AI agents: ask ID verified people to check a decision before acting.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
Flash Props API is a player-props API and MCP server by [Flash AI Solutions](https://www.flashaisolutions.org) for posted lines, Flash projections, evidence, context, and line movement across sports and esports.
This repository is the public connector and metadata surface for the hosted Flash Props API and MCP service. There is no proprietary Flash Props backend server to install from this repository. Point your client at the hosted endpoint and authenticate with a Flash Props API key for board data.
The Flash Props public Postman workspace contains the collection for graphical exploration and forking. To get your first successful request without an SDK, start with the Postman quickstart, create a free key, then run the List supported sports with live status + capability request inside the Start here folder.
If Postman isn't accessible from your browser, download the credential-free collection JSON and use Postman's Import action. Our API host maintains that JSON as the reference copy; the marketplace copy may lag after a product release.
Never paste your key into GitHub, a URL, a shared collection variable, or a screenshot. The collection's apiKey variable is intentionally empty; set your key privately in Postman before running authenticated requests.
New to sports data integrations? Run the dependency-free first-request example. It reads the current sport catalog, then fetches the market vocabulary for a sport you choose. This is a read-only example, with no wagers, betting automation, SDK install, or paid plan required.
FLASH_PROPS_API_KEY environment variable. Keep it out of commits and query strings.node examples/first-request.mjs for CS2 or node examples/first-request.mjs nfl for NFL.On macOS/Linux, one shell-safe way to enter the key without saving it to command history is read -rs FLASH_PROPS_API_KEY && export FLASH_PROPS_API_KEY. On PowerShell, use $env:FLASH_PROPS_API_KEY = Read-Host "Flash Props API key". Clear the variable after using it.
The script checks for 401, 403 and 429 without leaking your key or silently retrying into a quota wall. It uses GET /api/v1/sports as the source of truth for current coverage; its chosen sport may have no live board right now. Tests are included under examples/first-request.test.mjs, using mocked responses and no network.
Want to connect an AI agent instead? Use the remote MCP endpoint below with the same key and plan. Prefer the live public contract if a third-party directory's cached feature list is older than the hosted server.
Streamable HTTP endpoint:
https://api.flashodds.live/mcp
Send your API key in the Authorization header:
Authorization: Bearer <your_api_key>
Anonymous access works for capability discovery (list_sports, get_market_metadata) so a client can inspect current coverage on first run. Retrieving board data requires at least a free key. Get one at https://api.flashodds.live/billing/free.
Add to your claude_desktop_config.json:
{
"mcpServers": { "flash-props": { "type": "streamable-http", "url": "https://api.flashodds.live/mcp", "headers": { "Authorization": "Bearer YOUR_API_KEY" } } } }
The access ladder below is generated from the hosted contract. Do not edit it by hand.
| Tool | Access |
|---|---|
list_sports | Anonymous capability discovery |
get_market_metadata | Anonymous capability discovery |
list_games | Anonymous preview (first 5); Free+ for the full slate |
get_game_props | Free+ |
scan_props | Anonymous preview (first 5 rows); Free+; rows capped per tier (Free 15 rows, Builder 100, Pro 3,000, Enterprise 5,000) |
find_game | Free+ |
find_player_props | Free+ |
get_player_context | Free/Builder basic; Pro full |
get_prop_evidence | Free teaser; Builder basic; Pro full |
get_prop_history | Builder limited (latest 25 points); Pro full |
scan_movers | Builder limited (top 25 movers); Pro full |
get_leaders | Free top 3; Builder top 10; Pro top 100 |
What each tool returns:
list_sports: every sport with live status, data freshness, and projection/context capabilityget_market_metadata: market labels, families, scope, and whether a market is modeledlist_games: games with props for a sportget_game_props: all player props for one gamescan_props: market-wide prop scan across the slatefind_game: resolve team names to an event idfind_player_props: every active prop for one playerget_player_context: season baselines, recent form, and deeper contextget_prop_evidence: book line, Flash line, gap, form, confidence, splits, movementget_prop_history: chronological line and odds history for a propscan_movers: biggest line movers in a windowget_leaders: ranked boards for gap, form, and sample strengthREST and MCP share the same entitlement shaping, so a key sees the same product tier regardless of transport.
Do not hard-code a list of sports with Flash projections. Coverage is resolved from the server's registered model providers and can vary by sport + market.
Use list_sports (or GET /api/v1/sports) to inspect projectionCapability, effectiveProjection, and contextCapability, then use get_market_metadata to determine whether a specific market is modeled. A partially modeled sport can legitimately expose Flash projections for one stat while keeping another stat posted-lines-only.
Missing analysis is reported explicitly. Flash Props does not fabricate a projection to fill an unsupported market.
current_season is built from this season. prior_season is a prior-season baseline and must never be presented as current form; basisNote and seasonId explain which season it came from.snapshotId values on sports, games, and props responses mean counts and rows came from the same logical board. A mixed consistency value means the response is partial, so do not compare its counts against rows from another snapshot.Generated from the hosted contract. Do not edit by hand.
starter): $19/mo, 25,000 requests/day, 120 requests/minute, 100-row scans, evidence basic, context basic, history limited, movement limited, top 10 leadersSee current pricing and the REST reference at https://api.flashodds.live/.
Tier limits, entitlements, and the MCP tool ladder in this README are generated, not written by hand. The hosted API publishes a keyless, machine-readable contract, and this repository vendors a copy at contract/flash-props-contract.json.
Machine sources, in order of authority:
GET https://api.flashodds.live/contract.json: tiers, quotas, entitlements, MCP tools and access, sports vocabulary, projection and snapshot rules. Static per API release.GET https://api.flashodds.live/api/v1/sports (requires a Free key) or the anonymous MCP list_sports tool: runtime state. Which sports are modeled, live, or fresh right now lives here, never in the contract or this README.Maintainers:
node scripts/contract.mjs sync # regenerate README blocks and server.json version
node scripts/contract.mjs check # offline drift gate (runs on every push and PR) node scripts/contract.mjs check --live # also compare the vendored copy to the hosted contract node scripts/contract.mjs links # check every https link in this README
CI fails when the generated blocks are stale, when prose quotes a quota or price the contract does not contain, when a retired tier name appears, when a frozen list of modeled sports appears, when server.json disagrees with the contract version or MCP endpoint, or when the README and contract disagree about which tools exist. A daily scheduled job also compares the vendored contract against the hosted one, so drift is caught even when this repository does not change.
Data is informational only. Flash Props is not a sportsbook and is not affiliated with any league, team, player, sportsbook, or DFS operator.