Spec Driven Development
MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.
Descripción del creador (original en inglés)
Live and Prematch sports odds, scores and statistics from SportAPI. Demo data without a key.
Estos tres nunca se combinan en una sola puntuación: las opiniones, las mediciones y la popularidad son cosas distintas.
Todavía no escribimos un resumen sencillo para este. Abajo están los datos que leímos del registro.
Elige la app de IA que usas y copia la configuración.
SPORTAPI_KEY, SPORTAPI_BASE_URL, SPORTAPI_LANGUAGELos valores marcados como secretos son llaves de tu cuenta. Nunca los compartas ni los pegues en un chat.
Necesitas
¿Qué app usas?
Elige tu app arriba. La recordamos, así que la próxima vez el botón dirá “Instalar en …”.
Abre Claude Desktop → Settings → Developer → Edit Config y pega esto en claude_desktop_config.json
{
"mcpServers": {
"sportapi": {
"command": "uvx",
"args": [
"sportapi-mcp"
],
"env": {
"SPORTAPI_KEY": "your-value",
"SPORTAPI_BASE_URL": "your-value",
"SPORTAPI_LANGUAGE": "your-value"
}
}
}
}Ejecuta esto en tu terminal
claude mcp add sportapi --env SPORTAPI_KEY=your-value --env SPORTAPI_BASE_URL=your-value --env SPORTAPI_LANGUAGE=your-value -- uvx sportapi-mcpCompleta los valores vacíos antes de ejecutarlo.
Pégalo en .cursor/mcp.json de tu proyecto, o en ~/.cursor/mcp.json
{
"mcpServers": {
"sportapi": {
"command": "uvx",
"args": [
"sportapi-mcp"
],
"env": {
"SPORTAPI_KEY": "your-value",
"SPORTAPI_BASE_URL": "your-value",
"SPORTAPI_LANGUAGE": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Pégalo en .vscode/mcp.json de tu proyecto
{
"servers": {
"sportapi": {
"type": "stdio",
"command": "uvx",
"args": [
"sportapi-mcp"
],
"env": {
"SPORTAPI_KEY": "your-value",
"SPORTAPI_BASE_URL": "your-value",
"SPORTAPI_LANGUAGE": "your-value"
}
}
}
}Tu navegador te pide permiso para abrir la app; luego la app muestra la configuración y te pide confirmar. Los valores de las claves quedan vacíos para que los completes tú.
Este se ejecuta en tu computadora, y ChatGPT solo puede conectarse a servidores en internet. Elige otra app.
Tu elección se guarda en una cookie en este dispositivo; no necesitas cuenta.
SPORTAPI_BASE_URL envSPORTAPI_LANGUAGE envEsta configuración se genera a partir de la ficha del creador en el registro. Si el README dice otra cosa, sigue el README.
Se ejecuta en tu computadora; la lista de herramientas aparece en tu app de IA después de instalarlo.
Revisamos información que cualquiera puede ver; no hemos leído el código. Las revisiones que no aplican no se cuentan. · Revisado el 7 nov 2026
El nombre en el registro se verificó con la cuenta de GitHub SportApi-net, dueña del repo
Todavía no hemos leído este repo en GitHub
Todavía no hemos leído este repo en GitHub
Este se ejecuta en tu computadora; no hay endpoint en internet
Se ejecuta en tu computadora y usa ajustes locales en su lugar
Se ejecuta en tu computadora; solo podemos leer listas de herramientas de endpoints en internet
Comparado con todos los servidores activos de esta categoría en el registro. Las estrellas solo cuentan cuando quien lo publica es dueño del repo.
Superó 1 de 1 revisiones básicas aplicables. No hemos leído el código. Antes de agregar una clave o un token, revisa qué acceso pide el servidor y usa una clave que tenga solo los permisos que necesitas.
Debes completar: SPORTAPI_KEY
Se ejecuta en tu computadora. Tu app de IA lo inicia cuando hace falta, y los datos no pasan por los servidores del creador (a menos que el propio servidor llame a un servicio en línea).
El repo de GitHub cambió por última vez –, y la última versión (0.1.0) llegó al registro hace 31 días.
Las apps compatibles con MCP, como Claude Desktop, Claude Code, Cursor y VS Code. También necesitas Python (uv) en tu computadora.
En la misma categoría: Spec Driven Development, Remote Desktop Commander, Kanal Varna — drains, leaks & plumbing (Varna, BG)
Servidores de la misma categoría hechos por otros creadores, ordenados por estrellas.
Cómo leer una tarjeta:★ Estrellas de GitHubiTres pilares: reseñas · revisiones · usoiActualizado = fecha en que se publicó la última versión en el registroi
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.
Drain unblocking, leak detection & plumbing in Varna, Bulgaria: services, prices, areas, contact
Copiado tal cual del repo del creador. PopNx MCP no lo ha revisado ni lo respalda. Se quitaron HTML, imágenes y scripts. Los enlaces llevan fuera de este sitio.
An MCP server that lets AI assistants (Claude Desktop, Claude Code, Cursor, VS Code, Windsurf and other MCP clients) look up Live and Prematch matches, scores, live statistics and betting odds from SportAPI. It runs on demo data out of the box, without an API key.
claude mcp add sportapi -- uvx sportapi-mcp
Then ask: *"Which football matches are live right now, and who is favoured?"*
This MCP server is free and MIT-licensed. The SportAPI data service behind it is a commercial
product: live data needs a personal API key (how to get one). Without a key,
every tool answers with the example responses from the SportAPI documentation, and every result
says so.
"W1 1.525 | X 5.08 | W2 6.15"). A detailed match can carry 200+ markets, so get_match returns 15 by default and accepts a markets filter (["1X2", "Total"])."source": "demo") so that an assistant never presents a snapshot as live data.game_id from the wrong line type come back as short explanations the assistant can act on.Example conversations in demo mode (answers abridged). The assistant picks the tools itself.
"What's happening in live football right now?" → list_live_matches(sport_id=1)
*Demo data from the SportAPI documentation, not live.* 39 football matches are in play.
Garuda Darwin 0:1 Darwin Olympic (76', NPL Northern Territory): Darwin Olympic are near-certain
winners at 1.064. Ikonnect FA U19 0:1 Obosa U19 (33'): Obosa favoured at 1.40, the draw at 4.65.
Caucaia U20 — Floresta EC U20 is goalless at 2', with Floresta slight favourites at 2.112.
"Arsenal against Coventry: how are the goal lines priced?" → get_match(game_id=746146992, line_type="live", markets=["Total"])
Arsenal lead 3:0 at 56' (xG 1.45 vs 0.03, shots on target 4:0). Total goals: Over 3.5 at 1.23,
Over 4.5 at 2.09 / Under 4.5 at 1.81, Over 5.5 at 4.41. The market expects a fourth goal but
leans against a fifth.
"When does Manchester City play next, and what are the odds?" → search_matches(text="Manchester"), then get_match(game_id=730321837, line_type="prematch", markets=["1X2", "Total"])
Manchester City — Bournemouth, Premier League, 23 Aug 2026 13:00 UTC. 1X2: City 1.525,
draw 5.08, Bournemouth 6.15. Over 2.5 goals 1.39, under 2.5 2.72.
"What are the biggest games this weekend?" → top_matches(line_type="prematch", include_odds=True)
"Is my SportAPI key OK, and how many requests did I make this week?" → account_status() (live mode)
With a key, the same questions work for every sport in your subscription, with current data.
The server is a Python package (Python 3.10+). The easiest way to run it is with uv: uvx downloads and runs it in an isolated environment, with no install step.
uvx sportapi-mcp # starts the stdio server; MCP clients launch it for you
Or install it with pip and use the sportapi-mcp command instead of uvx sportapi-mcp:
pip install sportapi-mcp
The env blocks below are optional: leave them out to start in demo mode.
One-click install: download sportapi-mcp.mcpb from the latest release and open it — Claude Desktop installs the extension and asks for the optional key and base URL (leave them empty for demo data). The bundle sources are in mcpb/.
Or edit claude_desktop_config.json (Settings → Developer → Edit Config):
{
"mcpServers": { "sportapi": { "command": "uvx", "args": ["sportapi-mcp"], "env": { "SPORTAPI_KEY": "YOUR_API_KEY", "SPORTAPI_BASE_URL": "https://YOUR_API_DOMAIN" } } } }
Restart Claude Desktop; the SportAPI tools appear in the tools menu.
# demo mode
claude mcp add sportapi -- uvx sportapi-mcp
claude mcp add sportapi --scope user \ -e SPORTAPI_KEY=YOUR_API_KEY -e SPORTAPI_BASE_URL=https://YOUR_API_DOMAIN \ -- uvx sportapi-mcp
Add to ~/.cursor/mcp.json (all projects) or .cursor/mcp.json (one project):
{
"mcpServers": { "sportapi": { "command": "uvx", "args": ["sportapi-mcp"], "env": { "SPORTAPI_KEY": "YOUR_API_KEY", "SPORTAPI_BASE_URL": "https://YOUR_API_DOMAIN" } } } }
Add to .vscode/mcp.json. VS Code asks for the key once and stores it securely:
{
"inputs": [ { "type": "promptString", "id": "sportapi-key", "description": "SportAPI key", "password": true } ], "servers": { "sportapi": { "type": "stdio", "command": "uvx", "args": ["sportapi-mcp"], "env": { "SPORTAPI_KEY": "${input:sportapi-key}", "SPORTAPI_BASE_URL": "https://YOUR_API_DOMAIN" } } } }
Any MCP client that can start a stdio server works: the command is uvx, the argument is sportapi-mcp, and the environment variables are listed below. For Windsurf, put the mcpServers block shown for Cursor into ~/.codeium/windsurf/mcp_config.json.
sportapi-mcp --transport streamable-http --port 8000 # http://127.0.0.1:8000/mcp
docker build -t sportapi-mcp . docker run -i --rm -e SPORTAPI_KEY -e SPORTAPI_BASE_URL sportapi-mcp # stdio docker run --rm -p 8000:8000 sportapi-mcp --transport streamable-http --host 0.0.0.0
The HTTP transport has no authentication of its own: keep it on localhost or behind your own gateway, because anyone who can reach it uses your key.
| Variable | Required | Description |
|---|---|---|
SPORTAPI_KEY | for live data | Your API key. The server sends it only in the Package HTTP header, never in URLs or tool output. |
SPORTAPI_BASE_URL | for live data | Your personal API base URL, issued together with the key (https://YOUR_API_DOMAIN). |
SPORTAPI_LANGUAGE | no | Response language code, default en. It must be enabled for your key; see languages. Demo data is English only. |
Set both SPORTAPI_KEY and SPORTAPI_BASE_URL for live data, or neither for demo mode. sportapi-mcp --demo forces demo mode even when a key is configured.
A key is bound to the server IP addresses or sites approved for it (authentication and access). An MCP server usually runs on your own computer, so make sure that address is allowed for the key; account_status shows the IP address SportAPI sees.
| Tool | What it answers | SportAPI method |
|---|---|---|
list_sports | Which sports have Live / Prematch matches now, with counts | sports |
get_menu | Sport → country → tournament tree with IDs and counts | menu |
list_countries | Countries with matches in one sport | countries |
list_tournaments | Tournaments of one sport and country | tournaments |
list_live_matches | Live matches of a sport or tournament: score, period, minute, main odds. Without a sport: live sports plus top live matches | events |
list_prematch_matches | Upcoming matches: the "Top 50", a tournament, the full line, or the calendar (next 2/4/6/12 hours, today … 5 days ahead) | events, calendar |
get_match | One match: score, live statistics, every market and its odds, sub-events (halves, corners, cards…) | event |
search_matches | Find matches by team or participant name, Live and Prematch | search |
top_matches | Up to 10 most popular matches (all sports, or one sport for Prematch) | topmatches, toplist |
top_championships | Up to 12 popular championships with match counts | topchampionships |
account_status | Demo or live; with a key: expiry, sports, languages, access mode, requests over 7 days | account |
Prompts: live_betting_overview(sport) and compare_match_markets(match, markets).
How the output maps to the API data (decimal odds, blocked selections, market IDs, sub-events, live statistics) is described in the odds, match and live statistics data models. get_match(include_pointers=true) adds each selection's oc_pointer, the code used by bet placement systems such as the SportAPI Coupon API.
Demo mode serves the full English example responses from the SportAPI documentation (snapshots from August–October 2026):
list_sports, get_menu, top_matches: Live and Prematch;list_countries, list_live_matches, list_prematch_matches: football (sport_idSolo se muestra el principio; lee el resto en el repo