OddsRelay
Servidor MCP de solo lectura para datos de probabilidades de OddsRelay, con un límite de tokens en cada llamada que consume tokens.
Documentación
oddsrelay-mcp
Un servidor MCP que le da a un asistente de IA acceso de lectura a OddsRelay: tableros emparejados, los precios de un evento, y las listas de deportes, eventos, casas de apuestas y cobertura que los respaldan. Es de solo lectura, y cada llamada que gasta tokens se cotiza primero y se rechaza por encima de un límite, para que un asistente no pueda agotar tu saldo de tokens por accidente.
Funciona con Claude Desktop, Claude Code, Cursor y cualquier otro cliente que inicie servidores MCP a través de stdio, y está construido sobre el cliente TypeScript oddsrelay.
Documentación de la API: https://oddsrelay.io/docs
Configuración
Necesitas una clave de API de OddsRelay, que creas desde tu cuenta en https://oddsrelay.io.. El servidor lee la clave desde ODDSRELAY_KEY. El paquete la configura por ti; las otras rutas la configuran en el archivo de configuración de tu cliente MCP y requieren Node 18 o posterior.
Claude Desktop (paquete de un clic)
Descarga oddsrelay-mcp.mcpb desde la última versión y haz doble clic para instalarlo en Claude Desktop, que te pedirá un ajuste: tu clave de API. El ajuste está marcado como sensible, por lo que Claude Desktop lo enmascara, y pasa la clave al servidor como ODDSRELAY_KEY. El paquete incluye todo lo que el servidor necesita y se ejecuta en el Node integrado en Claude Desktop, por lo que no necesitas tu propio Node.
Claude Code
claude mcp add --transport stdio oddsrelay --env ODDSRELAY_KEY=your_key_here -- npx -y oddsrelay-mcp
Claude Desktop (archivo de configuración)
Configuración, Desarrollador, Editar configuración abre claude_desktop_config.json. Agrega el servidor y luego reinicia Claude Desktop:
{
"mcpServers": {
"oddsrelay": {
"command": "npx",
"args": ["-y", "oddsrelay-mcp"],
"env": { "ODDSRELAY_KEY": "your_key_here" }
}
}
}
Cursor
Agrega el mismo bloque mcpServers a ~/.cursor/mcp.json (cada proyecto) o .cursor/mcp.json (un proyecto).
La clave está en ese archivo de configuración como texto plano, así que mantén el archivo fuera de cualquier cosa que hagas commit.
Primeras preguntas
Pregúntale a tu asistente:
Usando OddsRelay, ¿qué casas de apuestas ofrecen tenis en el tablero estándar?
Eso llama a coverage, que no cuesta tokens. Luego:
Muestra el tablero estándar de OddsRelay para fútbol en Ladbrokes y William Hill, primeros cinco eventos.
El asistente encuentra las claves de las casas de apuestas con bookmakers, y luego llama a odds, que se cotiza antes de ejecutarse.
Herramientas
| Herramienta | Qué lee | Tokens |
|---|---|---|
sports | Claves de deportes y competiciones, paginadas | ninguno |
events | Los eventos de un deporte, con sus ids, paginados | ninguno |
bookmakers | Claves de casas de apuestas y exchanges | ninguno |
coverage | Qué casas de apuestas ofrecen qué deportes en un producto, y las claves de mercados del producto | ninguno |
odds | Un tablero emparejado (standard, 2up, dutching, each-way, extra-place o bog) para un deporte en las casas de apuestas que nombres | cotizado primero, con límite |
event_odds | Los precios de un evento en cada casa de apuestas y exchange que lo ofrezca, limitado a las casas y mercados que nombres | cotizado primero, con límite |
usage | Tu plan, saldo de tokens, tiempo de reinicio y alcance de la clave | ninguno |
El límite de tokens
odds y event_odds toman un argumento max_tokens con un valor predeterminado pequeño. Antes de cada llamada, el servidor le pregunta a la API cuánto costaría la llamada (una cotización, que no gasta nada). Si costara más que max_tokens, el servidor no hace la llamada, no gasta nada y le dice al asistente el precio, para que el asistente pueda reducir los filtros o preguntarte antes de intentarlo de nuevo con un max_tokens más alto.
odds siempre toma un deporte y las casas de apuestas que nombres, por lo que cada llamada se mantiene acotada. El costo lo determinan los filtros que envíes; reducir la respuesta a limit filas no lo cambia. Cada respuesta de estas dos herramientas incluye tokens: cuánto costó la llamada y cuánto queda.
Ambas herramientas solo leen, pero sus anotaciones MCP las marcan como llamadas con costo en lugar de solo lectura, por lo que un cliente que pregunte antes de tales llamadas te preguntará cada vez. event_odds lee el tablero crudo, por lo que necesita una clave que pueda leer probabilidades crudas.
Respuestas
Las respuestas son JSON compacto. Las listas largas se recortan a limit filas (cada herramienta tiene su propio valor predeterminado) y a un tamaño que un asistente pueda leer de una vez, con una nota more que indica cuántas filas se omitieron y qué cambiar para verlas. Las herramientas paginadas devuelven next_cursor, que el asistente pasa de vuelta como cursor; una página cortada continúa desde la primera fila no mostrada.
Los errores vuelven como errores de herramienta con el code de error de la API y, donde la API los envía, los valores que acepta: pide una casa de apuestas desconocida y el error lista las claves que acepta.
Tu clave
El servidor lee la clave solo desde ODDSRELAY_KEY y la envía solo a https://api.oddsrelay.io, en el encabezado Authorization. Nunca pone la clave en una respuesta de herramienta o en un error: si un error alguna vez la repitiera, se reemplazaría con [hidden]. El servidor no registra nada.
Lo que no hace
Ninguna herramienta escribe nada, lee o escribe archivos, ni llama a ningún host excepto la API de OddsRelay.
Desarrollo
npm ci
npm test
Las pruebas ejecutan el servidor contra un fetch simulado y no hacen llamadas de red. npm run bundle construye oddsrelay-mcp.mcpb desde dist y las dependencias instaladas: manifest.json describe el paquete, y .mcpbignore mantiene fuera las fuentes, pruebas y paquetes de desarrollo. Para probar el servidor construido manualmente, npx @modelcontextprotocol/inspector node dist/cli.js lo abre en el MCP Inspector.
Enlaces
- Documentación: https://oddsrelay.io/docs
- Sitio web: https://oddsrelay.io
- Cliente TypeScript: https://github.com/oddsrelay/oddsrelay-js
- Contacto: hello@oddsrelay.io
Licencia
MIT