MCP server для получения спортивных коэффициентов с The Odds API и удаления букмекерской маржи (vig).
- API Usage Tracking: Все ответы теперь включают остаток API вызовов
- Retry Logic: Автоматические повторы при проблемах с подключением (3 попытки)
- Better Error Handling: Улучшенная обработка ошибок сети
- Response Format: Структурированные ответы с summary и apiUsage
- get_sports - Получить список поддерживаемых видов спорта (без API-запроса)
- get_today_mlb - Получить сегодняшние игры MLB с обработанными коэффициентами (экономично)
- get_upcoming_odds - Получить сырые коэффициенты (по умолчанию: сегодняшние игры MLB)
- get_processed_odds - Получить обработанные коэффициенты с удаленной маржой
- get_event_consensus - Получить консенсус-линию для конкретного события
- get_api_usage - Получить статистику использования API (делает 1 API-запрос)
odds://sports- Список поддерживаемых видов спорта (без API-запроса)odds://today-mlb- Сегодняшние игры MLB с обработанными коэффициентамиodds://processed- Обработанные коэффициенты без маржи (по умолчанию: сегодняшние MLB)
Самый простой и часто используемый метод:
fair_probability = implied_probability / total_implied_probability
Более сложный метод, учитывающий количество исходов:
fair_probability = implied_probability^n / total_implied_probability^(n-1)
Равномерно распределяет маржу между всеми исходами:
fair_probability = implied_probability - (total_vig / number_of_outcomes)
# Установка зависимостей
npm install
# Сборка
npm run build
# Запуск
npm start
# Разработка
npm run devУстановите переменную окружения ODDS_API_KEY или используйте ключ по умолчанию:
export ODDS_API_KEY=your_api_key_hereВАЖНО: The Odds API имеет лимит 500 запросов в месяц для бесплатного плана!
Оптимизации для экономии запросов:
- По умолчанию запрашиваются только сегодняшние игры MLB
get_sportsвозвращает хардкод-список без API-запросаget_today_mlb- самый экономичный способ получить данные- Все запросы логируют использование API
Рекомендации:
- Используйте
get_today_mlbдля тестирования - Ограничьтесь 20 запросами в день для тестов
- Мониторьте использование через
get_api_usage
{
"tool": "get_sports"
}{
"tool": "get_today_mlb",
"arguments": {
"deVigMethod": "proportional"
}
}{
"tool": "get_processed_odds",
"arguments": {
"sport": "americanfootball_nfl",
"deVigMethod": "proportional",
"removeOutliers": true,
"minBookmakers": 3
}
}{
"tool": "get_event_consensus",
"arguments": {
"eventId": "event_id_from_api",
"deVigMethod": "power"
}
}interface ProcessedEvent {
id: string;
sportKey: string;
sportTitle: string;
commenceTime: string;
homeTeam: string;
awayTeam: string;
bookmakers: ProcessedBookmaker[];
consensusLine?: {
homeTeamFairOdds: number;
awayTeamFairOdds: number;
averageVig: number;
};
}interface ProcessedOutcome {
name: string;
americanOdds: number;
decimalOdds: number;
impliedProbability: number;
fairProbability: number; // После удаления маржи
}КРИТИЧНО: Лимит 500 запросов/месяц!
Текущие оптимизации:
- Фокус на MLB (играет ежедневно)
- Запросы только на сегодняшние игры
- Хардкод-список спортов
- Логирование каждого запроса
Мониторинг:
{
"tool": "get_api_usage"
}Возвращает:
{
"requestsUsed": "15",
"requestsRemaining": "485",
"monthlyLimit": 500,
"eventsFound": 12
}- Polymarket CLOB API Server - для получения данных из Polymarket
- Comparison Server - для сравнения линий и поиска арбитража
- News/SERP Server - для получения новостей и контекста