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

HerramientaQué leeTokens
sportsClaves de deportes y competiciones, paginadasninguno
eventsLos eventos de un deporte, con sus ids, paginadosninguno
bookmakersClaves de casas de apuestas y exchangesninguno
coverageQué casas de apuestas ofrecen qué deportes en un producto, y las claves de mercados del productoninguno
oddsUn tablero emparejado (standard, 2up, dutching, each-way, extra-place o bog) para un deporte en las casas de apuestas que nombrescotizado primero, con límite
event_oddsLos precios de un evento en cada casa de apuestas y exchange que lo ofrezca, limitado a las casas y mercados que nombrescotizado primero, con límite
usageTu plan, saldo de tokens, tiempo de reinicio y alcance de la claveninguno

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

Licencia

MIT