MCP Integration for Odds Adjusters
AI-powered odds management and risk analysis using the Model Context Protocol.
Overview
The AltSportsData MCP server provides odds adjusters with intelligent tools for:
- Real-time Data Analysis - Live match statistics and event tracking
- Market Intelligence - Sharp money detection and line movement
- Player Impact Assessment - Injury and lineup impact on odds
- Historical Trends - Head-to-head and performance analytics
- Risk Calculation - Exposure analysis and hedge suggestions
Quick Setup
Configure for Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"altsportsdata-odds": {
"command": "npx",
"args": ["-y", "@altsportsdata/mcp-server"],
"env": {
"API_KEY": "your-odds-adjuster-api-key",
"ROLE": "odds_adjuster",
"REAL_TIME_UPDATES": "true"
}
}
}
}Available Tools
1. Analyze Line Movement
Track and analyze betting line movements across markets.
{
"name": "analyze_line_movement",
"arguments": {
"match_id": "nba-2024-lakers-vs-celtics",
"market_type": "spread",
"timeframe": "24h"
}
}Response:
{
"current_line": {
"spread": -5.5,
"juice": -110
},
"opening_line": {
"spread": -4.0,
"juice": -110
},
"movement": {
"direction": "away",
"magnitude": 1.5,
"velocity": "rapid",
"volume_profile": "sharp_action"
},
"recommendations": {
"action": "hold_or_adjust",
"confidence": 0.78,
"reasoning": "Heavy sharp money on Celtics, consider widening spread"
}
}2. Assess Player Impact
Calculate odds impact when key players are injured or benched.
{
"name": "assess_player_impact",
"arguments": {
"match_id": "nfl-2024-chiefs-vs-bills",
"player": "Patrick Mahomes",
"status": "questionable",
"position": "QB"
}
}3. Get Sharp Action Alerts
Identify when sharp bettors are taking positions.
{
"name": "detect_sharp_action",
"arguments": {
"sport": "soccer",
"league": "epl",
"timeframe": "2h",
"threshold": "high"
}
}4. Calculate Fair Odds
Generate fair odds based on statistical models.
{
"name": "calculate_fair_odds",
"arguments": {
"match_id": "mlb-2024-yankees-vs-redsox",
"factors": [
"recent_form",
"head_to_head",
"pitcher_matchup",
"weather",
"injuries"
],
"model": "ensemble"
}
}5. Monitor Market Efficiency
Compare your odds to market consensus and identify inefficiencies.
{
"name": "compare_to_market",
"arguments": {
"match_id": "nba-2024-001",
"your_odds": {
"moneyline": {"home": -150, "away": +130},
"spread": {"line": -3.5, "juice": -110}
},
"compare_to": ["pinnacle", "circa", "draftkings"]
}
}Odds Adjuster Workflows
Workflow 1: Pre-Game Line Setting
User: "Set opening lines for tonight's NBA slate"
AI Agent (using MCP):
1. Retrieves matchups with get_schedule
2. Calculates fair odds with calculate_fair_odds
3. Analyzes injury reports with assess_player_impact
4. Reviews historical performance with get_h2h_stats
5. Suggests opening lines with market positioning
Result: Recommended opening lines with confidence levelsWorkflow 2: In-Game Adjustment
User: "Lakers just went up 15 points in the 3rd quarter, adjust live odds"
AI Agent (using MCP):
1. Gets live match state with get_live_match
2. Calculates win probability with calculate_live_probability
3. Analyzes momentum with assess_game_momentum
4. Suggests odds adjustment with recommend_live_odds
5. Calculates new exposure with update_risk_profile
Result: Real-time odds recommendations with risk analysisWorkflow 3: Sharp Action Response
User: "We're seeing sharp money on Celtics +5.5"
AI Agent (using MCP):
1. Analyzes betting patterns with detect_sharp_action
2. Reviews current line with analyze_line_movement
3. Compares to market with compare_to_market
4. Assesses if move justified with validate_sharp_action
5. Recommends line adjustment or hold
Result: Data-driven decision on whether to move lineWorkflow 4: Injury Impact Assessment
User: "Starting QB just ruled out 30 minutes before kickoff"
AI Agent (using MCP):
1. Assesses player impact with assess_player_impact
2. Analyzes backup performance with get_backup_stats
3. Reviews historical similar situations with find_comparable_situations
4. Calculates odds adjustment with calculate_injury_adjustment
5. Suggests new lines and market suspension strategy
Result: Immediate odds adjustment plan with risk mitigationKey Metrics & Indicators
Line Movement Indicators
| Indicator | Description | Action Threshold |
|---|---|---|
| Volume Velocity | Speed of money coming in | >80% in <2 hours |
| Sharp Money % | Percentage from known sharps | >40% of total handle |
| Reverse Line Movement | Line moves against public money | >70% public on losing side |
| Steam Move | Coordinated sharp action | Multiple books move simultaneously |
Player Impact Factors
// Impact weighting by sport and position
{
"basketball": {
"PG": 0.35, // Point Guard
"SG": 0.25, // Shooting Guard
"C": 0.30 // Center
},
"football": {
"QB": 0.50, // Quarterback
"RB": 0.20, // Running Back
"WR": 0.15 // Wide Receiver
},
"hockey": {
"G": 0.45, // Goalie
"C": 0.25, // Center
"D": 0.20 // Defense
}
}Statistical Models
Ensemble Modeling
The MCP server uses multiple statistical models:
- Regression Models - Linear and logistic regression
- Machine Learning - Random forests, gradient boosting
- Bayesian Models - Prior probability updates
- Consensus Models - Market-implied probabilities
- Custom Rules - Sport-specific adjustments
Win Probability Calculation
{
"name": "calculate_win_probability",
"arguments": {
"match_state": {
"sport": "basketball",
"time_remaining": "8:23",
"quarter": 4,
"score_differential": 8,
"possession": "home",
"timeouts_remaining": {"home": 2, "away": 3}
},
"pregame_probability": 0.65,
"momentum_factor": true
}
}Risk Management
Exposure Monitoring
{
"name": "monitor_position",
"arguments": {
"match_id": "nfl-2024-001",
"markets": ["spread", "total", "moneyline"],
"alert_threshold": 50000
}
}Alerts Include:
- Correlated parlay exposure
- Single-game concentrated risk
- Season-long liability tracking
- Cross-sport risk correlation
Hedge Recommendations
{
"name": "suggest_hedges",
"arguments": {
"exposure": {
"match_id": "nba-2024-001",
"liability": 75000,
"market": "moneyline"
},
"hedge_options": ["exchange", "market_maker", "retail"]
}
}Market Intelligence
Sharp Bettor Profiling
Track patterns from known sharp bettors:
- Bet timing (close to game time often sharper)
- Bet sizing (max bets indicate strong position)
- Success rate (historical win rate)
- Market impact (how often they move lines)
Public vs Sharp Money
{
"name": "analyze_bet_splits",
"arguments": {
"match_id": "nfl-2024-001",
"split_types": ["ticket_count", "money_percentage", "sharp_action"]
}
}Response Example:
{
"public_side": {
"team": "Cowboys",
"ticket_percentage": 78,
"money_percentage": 65
},
"sharp_side": {
"team": "Eagles",
"sharp_percentage": 82,
"average_bet_size": "$5,200"
},
"recommendation": "Consider reverse line movement - sharps on Eagles despite public on Cowboys"
}Integration Examples
TypeScript Integration
import { MCPClient } from '@modelcontextprotocol/sdk';
const oddsClient = new MCPClient({
serverUrl: 'http://localhost:3000/mcp',
apiKey: process.env.ODDS_ADJUSTER_API_KEY,
role: 'odds_adjuster'
});
// Analyze line movement
const lineAnalysis = await oddsClient.call('analyze_line_movement', {
match_id: 'nba-2024-lakers-vs-celtics',
market_type: 'spread',
timeframe: '24h'
});
// Calculate fair odds
const fairOdds = await oddsClient.call('calculate_fair_odds', {
match_id: 'mlb-2024-001',
factors: ['recent_form', 'pitcher_matchup', 'weather']
});Python Integration
from altsportsdata_mcp import MCPClient
client = MCPClient(
api_key=os.getenv('ODDS_ADJUSTER_API_KEY'),
role='odds_adjuster'
)
# Detect sharp action
sharp_action = client.call_tool('detect_sharp_action', {
'sport': 'soccer',
'league': 'epl',
'timeframe': '2h'
})
# Assess player impact
impact = client.call_tool('assess_player_impact', {
'match_id': 'nfl-2024-001',
'player': 'Patrick Mahomes',
'status': 'out'
})Example Prompts
Line Analysis
"Analyze line movement for tonight's Lakers game"
"Why did the Celtics spread move from -4 to -6?"
"Show me sharp action in the Premier League today"Odds Calculation
"Calculate fair odds for Chiefs vs Bills considering Mahomes injury"
"What should the total be for this baseball game given the weather?"
"Compare our NBA lines to Pinnacle and Circa"Risk Management
"What's our exposure on the Lakers moneyline?"
"Suggest hedges for our NFL Sunday liability"
"Alert me when sharp action exceeds $100k on any game"Live Adjustments
"Team just scored, adjust live odds"
"Starting pitcher pulled in the 3rd inning, new odds?"
"Calculate win probability with 5 minutes left in the game"Best Practices
Line Movement Response
- Verify the Source: Is it sharp money or public?
- Check Market Consensus: Are other books moving?
- Assess Game Context: Is there news justifying the move?
- Calculate Risk: What's current exposure?
- Act Decisively: Move line or stand firm with conviction
In-Game Adjustments
- Update odds every 30-60 seconds for major sports
- Suspend markets during critical moments
- Consider momentum and game script
- Monitor for unusual betting patterns
- Have predefined thresholds for auto-suspension
Model Trust Levels
- High Confidence (>80%): Use model recommendations directly
- Medium Confidence (60-80%): Combine model with market consensus
- Low Confidence (<60%): Rely more on market positioning
Advanced Features
Custom Model Integration
{
"name": "add_custom_factor",
"arguments": {
"factor_name": "home_court_advantage_playoff",
"sport": "basketball",
"weight": 0.15,
"conditions": ["playoffs", "home_team"]
}
}Automated Line Movement Rules
{
"name": "set_movement_rules",
"arguments": {
"trigger": {
"sharp_money_threshold": 50000,
"time_before_game": "2h"
},
"action": {
"move_line": 0.5,
"adjust_juice": -5,
"notify_trader": true
}
}
}Multi-Market Correlation
{
"name": "analyze_market_correlation",
"arguments": {
"markets": ["spread", "total", "moneyline"],
"match_id": "nba-2024-001",
"check_arbitrage": true
}
}Troubleshooting
Common Issues
Issue: Model recommendations seem off
Solutions:
- Verify all input data is current
- Check for recent lineup changes
- Review weather or venue changes
- Compare to market consensus
- Adjust model weights for specific situations
Issue: Sharp action not detected
Solutions:
- Lower detection threshold temporarily
- Verify sharp bettor profiles are updated
- Check data feed latency
- Review bet sizing filters
Issue: Live odds lagging
Solutions:
- Optimize calculation frequency
- Use simpler models for live betting
- Cache static factors
- Implement push notifications for game events
Support Resources
- Odds Calculation Guide
- Risk Management Best Practices
- Sharp Action Detection
- Statistical Models Documentation