OddsRelay
Servidor MCP somente leitura para dados de odds da OddsRelay, com um limite de tokens em cada chamada que consome tokens.
Documentação
oddsrelay-mcp
Um servidor MCP que dá a um assistente de IA acesso de leitura ao OddsRelay: quadros combinados, os preços de um evento e as listas de esportes, eventos, casas de apostas e coberturas por trás deles. Ele é somente leitura, e toda chamada que gasta tokens é precificada primeiro e recusada acima de um limite, para que um assistente não possa esgotar seu saldo de tokens por acidente.
Ele funciona com Claude Desktop, Claude Code, Cursor e qualquer outro cliente que inicie servidores MCP via stdio, e é
construído sobre o cliente TypeScript oddsrelay.
Documentação da API: https://oddsrelay.io/docs
Configuração
Você precisa de uma chave de API OddsRelay, que você cria a partir da sua conta em https://oddsrelay.io.. O servidor lê a
chave de ODDSRELAY_KEY. O pacote define isso para você; as outras rotas definem isso na configuração do seu cliente MCP e precisam
do Node 18 ou posterior.
Claude Desktop (pacote de instalação com um clique)
Baixe oddsrelay-mcp.mcpb do último lançamento
e clique duas vezes para instalá-lo no Claude Desktop, que pede uma configuração: sua chave de API. A configuração é marcada
como sensível, então o Claude Desktop a mascara, e ele passa a chave para o servidor como ODDSRELAY_KEY. O pacote carrega
tudo o que o servidor precisa e roda no Node embutido no Claude Desktop, então você não precisa de Node próprio.
Claude Code
claude mcp add --transport stdio oddsrelay --env ODDSRELAY_KEY=your_key_here -- npx -y oddsrelay-mcp
Claude Desktop (arquivo de configuração)
Configurações, Desenvolvedor, Editar Config abre claude_desktop_config.json. Adicione o servidor e reinicie o Claude Desktop:
{
"mcpServers": {
"oddsrelay": {
"command": "npx",
"args": ["-y", "oddsrelay-mcp"],
"env": { "ODDSRELAY_KEY": "your_key_here" }
}
}
}
Cursor
Adicione o mesmo bloco mcpServers a ~/.cursor/mcp.json (todo projeto) ou .cursor/mcp.json (um projeto).
A chave fica nesse arquivo de configuração como texto simples, então mantenha o arquivo fora de qualquer coisa que você commitar.
Primeiras perguntas
Pergunte ao seu assistente:
Usando OddsRelay, quais casas de apostas oferecem tênis no quadro padrão?
Isso chama coverage, que não custa tokens. Então:
Mostre o quadro padrão OddsRelay para futebol na Ladbrokes e William Hill, primeiros cinco eventos.
O assistente encontra as chaves das casas de apostas com bookmakers, e então chama odds, que é precificado antes de rodar.
Ferramentas
| Ferramenta | O que ela lê | Tokens |
|---|---|---|
sports | Chaves de esportes e competições, paginadas | nenhum |
events | Os eventos de um esporte, com seus IDs, paginados | nenhum |
bookmakers | Chaves de casas de apostas e exchanges | nenhum |
coverage | Quais casas de apostas oferecem quais esportes em um produto, e as chaves de mercados do produto | nenhum |
odds | Um quadro combinado (standard, 2up, dutching, each-way, extra-place ou bog) para um esporte nas casas de apostas que você nomear | precificado primeiro, com limite |
event_odds | Os preços de um evento em cada casa de apostas e exchange que o oferece, restrito às casas e mercados que você nomear | precificado primeiro, com limite |
usage | Seu plano, saldo de tokens, tempo de redefinição e escopo da chave | nenhum |
O limite de tokens
odds e event_odds aceitam um argumento max_tokens com um padrão pequeno. Antes de cada chamada, o servidor pergunta à
API quanto a chamada custaria (uma cotação, que não gasta nada). Se custasse mais que max_tokens, o servidor
não faz a chamada, não gasta nada e informa ao assistente o preço, para que o assistente possa restringir os filtros ou perguntar a você
antes de tentar novamente com um max_tokens maior.
odds sempre aceita um esporte e as casas de apostas que você nomear, então cada chamada permanece restrita. O custo é definido pelos filtros
que você envia; cortar a resposta para limit linhas não muda isso. Toda resposta dessas duas ferramentas carrega tokens:
quanto a chamada custou e quanto resta.
Ambas as ferramentas apenas leem, mas suas anotações MCP as marcam como chamadas com custo em vez de somente leitura, então um cliente
que pergunta antes de tais chamadas perguntará a você a cada vez. event_odds lê o quadro bruto, então precisa de uma chave que possa ler odds brutas.
Respostas
As respostas são JSON compacto. Listas longas são cortadas para limit linhas (cada ferramenta tem seu próprio padrão) e para um tamanho que um
assistente possa ler de uma vez, com uma nota more dizendo quantas linhas foram omitidas e o que mudar para vê-las.
Ferramentas paginadas retornam next_cursor, que o assistente passa de volta como cursor; uma página cortada continua a partir da
primeira linha não exibida.
Erros voltam como erros de ferramenta com o erro code da API e, onde a API os envia, os valores que ela aceita:
peça uma casa de apostas desconhecida e o erro lista as chaves que ela aceita.
Sua chave
O servidor lê a chave apenas de ODDSRELAY_KEY e a envia apenas para https://api.oddsrelay.io, no
cabeçalho Authorization. Ele nunca coloca a chave em uma resposta de ferramenta ou erro: se um erro a ecoasse, ela seria
substituída por [hidden]. O servidor não registra nada.
O que ele não faz
Nenhuma ferramenta escreve nada, lê ou escreve arquivos, ou chama qualquer host além da API OddsRelay.
Desenvolvimento
npm ci
npm test
Os testes rodam o servidor contra um fetch simulado e não fazem chamadas de rede. npm run bundle constrói
oddsrelay-mcp.mcpb a partir de dist e das dependências instaladas: manifest.json descreve o pacote, e
.mcpbignore mantém fontes, testes e pacotes de desenvolvimento fora dele. Para testar o servidor construído manualmente,
npx @modelcontextprotocol/inspector node dist/cli.js o abre no MCP Inspector.
Links
- Documentação: https://oddsrelay.io/docs
- Site: https://oddsrelay.io
- Cliente TypeScript: https://github.com/oddsrelay/oddsrelay-js
- Contato: hello@oddsrelay.io
Licença
MIT