v12-dfs
Qué hace este MCP
Analyzes MLB betting markets and player props, compares sportsbook lines, models edges, tracks bets and CLV, and generates optimized MLB and NBA daily fantasy lineups.
Herramientas
Esquema de entrada
{'type': 'object', 'title': 'admin_issue_keyArguments', 'required': ['email'], 'properties': {'tier': {'type': 'string', 'title': 'tier', 'default': 'personal', 'pattern': '^(starter|personal|business)$'}, 'email': {'type': 'string', 'title': 'email', 'maxLength': 200, 'minLength': 5}, 'rotate': {'type': 'boolean', 'title': 'rotate', 'default': False, 'description': 'Revoke existing keys and mint a fresh one.'}}}
Esquema de entrada
{'type': 'object', 'title': 'agent_guideArguments', 'properties': {}}
Esquema de entrada
{'type': 'object', 'title': 'betting_agent_guideArguments', 'properties': {}}
Esquema de entrada
{'type': 'object', 'title': 'betting_analyze_propArguments', 'required': ['name'], 'properties': {'name': {'type': 'string', 'title': 'name'}, 'prop': {'type': 'string', 'title': 'prop', 'default': 'home_run'}, 'season': {'type': 'integer', 'title': 'season', 'default': 2026}, 'threshold': {'type': 'integer', 'title': 'threshold', 'default': 2}}}
Esquema de entrada
{'type': 'object', 'title': 'betting_best_betsArguments', 'properties': {'limit': {'type': 'integer', 'title': 'limit', 'default': 12}, 'min_edge': {'type': 'number', 'title': 'min_edge', 'default': 2.0}}}
Esquema de entrada
{'type': 'object', 'title': 'betting_build_parlayArguments', 'required': ['legs'], 'properties': {'legs': {'type': 'array', 'items': {'type': 'object', 'title': '_ParlayLeg', 'properties': {'line': {'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'Line'}, 'name': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Name'}, 'prop': {'type': 'string', 'title': 'Prop', 'default': 'home_run'}, 'side': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Side'}, 'team': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Team'}, 'market': {'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'Market'}, 'threshold': {'type': 'integer', 'title': 'Threshold', 'default': 2}, 'american_odds': {'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'American Odds'}}, 'description': "One parlay leg — TWO shapes, discriminated by the `market` field.\n\nPROP leg (legacy): {name, prop, threshold?}\nGAME-side leg (C12): {market: moneyline|run_line|total|team_total|\n f5_moneyline|f5_total, team, side: over/under/home/\n away/<team>, line?, american_odds (the SLIP's price —\n authoritative for the payout math)}."}, 'title': 'legs'}, 'ticket_odds': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'ticket_odds'}}}
Esquema de entrada
{'type': 'object', 'title': 'betting_cross_bookArguments', 'properties': {'prop': {'type': 'string', 'title': 'prop', 'default': 'pitcher_strikeouts'}}}
Esquema de entrada
{'type': 'object', 'title': 'betting_game_linesArguments', 'properties': {'date': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'date'}, 'team': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'team'}}}
Esquema de entrada
{'type': 'object', 'title': 'betting_game_modelArguments', 'required': ['team'], 'properties': {'date': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'date'}, 'team': {'type': 'string', 'title': 'team'}}}
Esquema de entrada
{'type': 'object', 'title': 'betting_log_betArguments', 'required': ['uid', 'market', 'selection', 'odds', 'stake'], 'properties': {'uid': {'type': 'string', 'title': 'uid'}, 'book': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'book'}, 'game': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'game'}, 'line': {'type': 'number', 'anyOf': [{'type': 'number'}, {'type': 'null'}], 'title': 'line'}, 'odds': {'type': 'integer', 'title': 'odds'}, 'prop': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'prop'}, 'team': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'team'}, 'stake': {'type': 'number', 'title': 'stake'}, 'market': {'type': 'string', 'title': 'market'}, 'selection': {'type': 'string', 'title': 'selection'}}}
Esquema de entrada
{'type': 'object', 'title': 'betting_marketArguments', 'required': ['team'], 'properties': {'date': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'date'}, 'team': {'type': 'string', 'title': 'team'}}}
Esquema de entrada
{'type': 'object', 'title': 'betting_market_moversArguments', 'properties': {'date': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'date'}, 'prop': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'prop'}, 'min_move': {'type': 'number', 'title': 'min_move', 'default': 3.0}}}
Esquema de entrada
{'type': 'object', 'title': 'betting_matchupArguments', 'required': ['team'], 'properties': {'date': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'date'}, 'team': {'type': 'string', 'title': 'team'}}}
Esquema de entrada
{'type': 'object', 'title': 'betting_my_betsArguments', 'required': ['uid'], 'properties': {'uid': {'type': 'string', 'title': 'uid'}}}
Esquema de entrada
{'type': 'object', 'title': 'betting_player_formArguments', 'required': ['name'], 'properties': {'name': {'type': 'string', 'title': 'name'}, 'season': {'type': 'integer', 'title': 'season', 'default': 2026}}}
Esquema de entrada
{'type': 'object', 'title': 'betting_scan_edgesArguments', 'properties': {'prop': {'type': 'string', 'title': 'prop', 'default': 'home_run'}, 'coors': {'type': 'boolean', 'title': 'coors', 'default': False}, 'limit': {'type': 'integer', 'title': 'limit', 'default': 15}, 'season': {'type': 'integer', 'title': 'season', 'default': 2026}, 'min_edge': {'type': 'number', 'title': 'min_edge', 'default': 2.0}, 'threshold': {'type': 'integer', 'title': 'threshold', 'default': 2}}}
Esquema de entrada
{'type': 'object', 'title': 'betting_settle_betArguments', 'required': ['uid', 'bet_id', 'result'], 'properties': {'uid': {'type': 'string', 'title': 'uid'}, 'bet_id': {'type': 'string', 'title': 'bet_id'}, 'result': {'type': 'string', 'title': 'result'}, 'closing_odds': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'closing_odds'}}}
Esquema de entrada
{'type': 'object', 'title': 'betting_sharpArguments', 'required': ['team'], 'properties': {'date': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'date'}, 'team': {'type': 'string', 'title': 'team'}}}
Esquema de entrada
{'type': 'object', 'title': 'contest_adviceArguments', 'required': ['name'], 'properties': {'name': {'type': 'string', 'title': 'name'}, 'sport': {'type': 'string', 'title': 'sport', 'default': 'MLB'}, 'platform': {'type': 'string', 'title': 'platform', 'default': 'fd'}}}
Esquema de entrada
{'type': 'object', 'title': 'contest_semaforoArguments', 'properties': {'limit': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'limit', 'default': 60}, 'sport': {'type': 'string', 'title': 'sport', 'default': 'MLB'}, 'platform': {'type': 'string', 'title': 'platform', 'default': 'fd'}}}
Esquema de entrada
{'type': 'object', 'title': 'fill_templateArguments', 'required': ['template_csv', 'lineups'], 'properties': {'lineups': {'type': 'array', 'items': {'type': 'array', 'items': {'type': 'string'}}, 'title': 'lineups', 'maxItems': 200, 'description': 'Each lineup = upload tokens in template roster-slot order.'}, 'template_csv': {'type': 'string', 'title': 'template_csv', 'maxLength': 8000000, 'description': 'Raw CSV of the entries-template (headers + entry rows).'}}}
Esquema de entrada
{'type': 'object', 'title': 'generate_lineupsArguments', 'required': ['date'], 'properties': {'date': {'type': 'string', 'title': 'date', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Slate date YYYY-MM-DD'}, 'runs': {'type': 'integer', 'title': 'runs', 'default': 5, 'maximum': 10.0, 'minimum': 1.0, 'description': 'Accepted for tier limits and response metadata. Portfolio quality is controlled by preset, candidate_pool_size, pool_oversample_multiplier, and simulation settings.'}, 'seed': {'type': 'integer', 'title': 'seed', 'default': 42, 'maximum': 999999.0, 'minimum': 0.0, 'description': 'Random seed for reproducibility'}, 'locks': {'type': 'array', 'items': {}, 'title': 'locks', 'default': [], 'maxItems': 15, 'description': 'Players to lock in'}, 'sport': {'type': 'string', 'anyOf': [{'type': 'string', 'pattern': '^(nba|mlb|NBA|MLB)$'}, {'type': 'null'}], 'title': 'sport', 'default': 'nba', 'description': 'Sport engine to run: nba or mlb.'}, 'style': {'type': 'string', 'anyOf': [{'type': 'string', 'pattern': '^(aggressive|balanced|safe)$'}, {'type': 'null'}], 'title': 'style'}, 'avoids': {'type': 'array', 'items': {}, 'title': 'avoids', 'default': [], 'maxItems': 100, 'description': 'Players to avoid'}, 'n_sims': {'type': 'integer', 'anyOf': [{'type': 'integer', 'maximum': 100000.0, 'minimum': 100.0}, {'type': 'null'}], 'title': 'n_sims', 'description': 'Monte Carlo iterations when simulation is enabled.'}, 'preset': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'preset', 'default': 'gpp_pro_pattern', 'description': 'Strategy preset key.'}, 'lineups': {'type': 'integer', 'anyOf': [{'type': 'integer', 'maximum': 150.0, 'minimum': 1.0}, {'type': 'null'}], 'title': 'lineups', 'description': 'Number of lineups (overrides preset default)'}, 'platform': {'type': 'string', 'anyOf': [{'type': 'string', 'pattern': '^(fd|dk|fanduel|draftkings)$'}, {'type': 'null'}], 'title': 'platform', 'default': 'fd', 'description': 'V12 platform profile: fd or dk.'}, 'sim_mode': {'type': 'string', 'anyOf': [{'type': 'string', 'pattern': '^(off|mvn|on)$'}, {'type': 'null'}], 'title': 'sim_mode', 'description': 'Simulation mode. NBA: mvn/off. MLB: on/off.'}, 'slate_id': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'slate_id', 'description': 'Specific slate ID from /v1/slates. Overrides date-based lookup.'}, 'strategy': {'type': 'string', 'anyOf': [{'type': 'string', 'pattern': '^(gpp|cash)$'}, {'type': 'null'}], 'title': 'strategy', 'description': 'GPP or cash game strategy'}, 'plan_only': {'type': 'boolean', 'title': 'plan_only', 'default': False, 'description': 'When true, the server resolves preset / contest / authoritative slate / top-run-env / locks but does NOT run the optimizer. Returns a Plan response so the user can review and confirm before spending credits on a real generate. Costs 0 credits; normal slate-open safety checks still apply.'}, 'contest_id': {'type': 'string', 'anyOf': [{'type': 'string', 'maxLength': 80}, {'type': 'null'}], 'title': 'contest_id', 'description': "Optional contest handle for building an entry-update CSV from the user's existing contest entries."}, 'fd_user_id': {'type': 'string', 'anyOf': [{'type': 'string', 'pattern': '^\\d+$', 'maxLength': 32}, {'type': 'null'}], 'title': 'fd_user_id', 'description': 'DEPRECATED on /v1/generate: fd_user_id is bound server-side to your API key (see /v1/admin/bind-fd-user). Body value is IGNORED on the public route unless X-Internal-Secret matches. Kept on the schema for the internal admin path only.'}, 'focus_games': {'type': 'array', 'items': {'type': 'string'}, 'title': 'focus_games', 'default': [], 'maxItems': 30, 'description': "Game keys to emphasize, e.g. ['PHI@BOS']. Applies a small documented projection nudge."}, 'allow_locked': {'type': 'boolean', 'title': 'allow_locked', 'default': False, 'description': 'Explicit replay/late-swap override. Default false blocks slate_id generation once any game has started.'}, 'refresh_data': {'type': 'boolean', 'title': 'refresh_data', 'default': True, 'description': 'Force a fresh V12 data refresh for user-facing generation. Backtests should set false.'}, 'exposure_caps': {'type': 'object', 'title': 'exposure_caps', 'default': {}, 'description': 'Per-player exposure caps {name: 0.0-1.0}', 'additionalProperties': True}, 'contest_fallback': {'type': 'string', 'anyOf': [{'type': 'string', 'pattern': '^(slate_only)$'}, {'type': 'null'}], 'title': 'contest_fallback', 'description': "Escape hatch when a contest_id cannot be mapped to a slate (contest_slate_unresolved). 'slate_only' + an explicit slate_id builds on THAT slate and skips contest-specific behavior (field-size routing, entry-template mapping) instead of failing the whole generate. Requires slate_id; without it the request still fails closed. Omit for normal contest-anchored builds."}, 'contest_field_size': {'type': 'integer', 'anyOf': [{'type': 'integer', 'minimum': 1.0}, {'type': 'null'}], 'title': 'contest_field_size', 'description': 'Total entries (field size) of the selected contest. Governs the MLB objective: field <= 10 -> max-mean (mlb_small_field_se); field > 10 -> ceiling (mlb_se_ceiling) with a continuous ceiling tilt and the real field size fed into contest simulation. A matched contest_id lobby row is authoritative; this value is the fallback when that row is unavailable.'}, 'entry_template_csv': {'type': 'string', 'anyOf': [{'type': 'string', 'maxLength': 4000000}, {'type': 'null'}], 'title': 'entry_template_csv', 'description': 'Raw CSV of a FanDuel entries-upload-template the operator already downloaded. When present, the entry-upload is filled from its OWN entry_ids locally — no FanDuel API / session / PerimeterX call. Fixes fd_entry_template_auth_expired when the user already has the template in hand.'}, 'team_exposure_caps': {'type': 'object', 'anyOf': [{'type': 'array', 'items': {'type': 'array', 'maxItems': 2, 'minItems': 2, 'prefixItems': [{'type': 'string'}, {'type': 'number'}]}}, {'type': 'object', 'additionalProperties': {'type': 'number'}}, {'type': 'null'}], 'title': 'team_exposure_caps', 'description': 'Per-team portfolio caps, as [["COL",0.5],...] pairs or {"COL":0.5} dict.'}, 'candidate_pool_size': {'type': 'integer', 'anyOf': [{'type': 'integer', 'maximum': 5000.0, 'minimum': 0.0}, {'type': 'null'}], 'title': 'candidate_pool_size', 'description': 'Exact candidate pool size for Pool→Rank→Keep-N selection. 0/None uses preset multiplier.'}, 'contest_max_entries': {'type': 'integer', 'anyOf': [{'type': 'integer', 'maximum': 150.0, 'minimum': 1.0}, {'type': 'null'}], 'title': 'contest_max_entries', 'description': "Max entries per user for the selected contest. Used to identify multi-entry mass GPPs (>=4) which keep the caller's preset. Field SIZE, not this, governs the MLB objective — see contest_field_size."}, 'max_hitter_exposure': {'type': 'number', 'anyOf': [{'type': 'number', 'maximum': 1.0, 'exclusiveMinimum': 0.0}, {'type': 'null'}], 'title': 'max_hitter_exposure', 'description': 'Portfolio cap: max share of delivered lineups any ONE hitter may appear in (0.4 = 40%). Pitchers exempt.'}, 'max_pitcher_exposure': {'type': 'number', 'anyOf': [{'type': 'number', 'maximum': 1.0, 'exclusiveMinimum': 0.0}, {'type': 'null'}], 'title': 'max_pitcher_exposure', 'description': 'Portfolio cap: max share of delivered lineups any ONE pitcher may appear in.'}, 'projection_overrides': {'type': 'array', 'items': {'type': 'object', 'additionalProperties': True}, 'title': 'projection_overrides', 'default': [], 'maxItems': 2000, 'description': 'User-uploaded projection/ownership rows. Supports name/player_id/team/position/projection/ownership/ceiling/floor/stddev.'}, 'auto_team_exposure_cap': {'type': 'number', 'anyOf': [{'type': 'number', 'maximum': 1.0, 'exclusiveMinimum': 0.0}, {'type': 'null'}], 'title': 'auto_team_exposure_cap', 'description': 'Default per-team portfolio cap (share of lineups containing ANY given team). Per-team entries in team_exposure_caps win over it.'}, 'pool_oversample_multiplier': {'type': 'number', 'anyOf': [{'type': 'number', 'maximum': 10.0, 'minimum': 1.0}, {'type': 'null'}], 'title': 'pool_oversample_multiplier', 'description': 'Candidate pool multiplier when candidate_pool_size is not set.'}}}
Esquema de entrada
{'type': 'object', 'title': 'get_slate_playersArguments', 'required': ['slate_id'], 'properties': {'limit': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'limit'}, 'compact': {'type': 'boolean', 'title': 'compact', 'default': False}, 'slate_id': {'type': 'integer', 'title': 'slate_id'}}}
Esquema de entrada
{'type': 'object', 'title': 'health_checkArguments', 'properties': {}}
Esquema de entrada
{'type': 'object', 'title': 'health_v12Arguments', 'properties': {}}
Esquema de entrada
{'type': 'object', 'title': 'list_contestsArguments', 'properties': {'sport': {'type': 'string', 'title': 'sport', 'default': 'MLB'}, 'platform': {'type': 'string', 'title': 'platform', 'default': 'fd'}}}
Esquema de entrada
{'type': 'object', 'title': 'list_live_contestsArguments', 'properties': {'limit': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'limit', 'default': 250}, 'sport': {'type': 'string', 'title': 'sport', 'default': 'MLB'}, 'compact': {'type': 'boolean', 'title': 'compact', 'default': True}, 'platform': {'type': 'string', 'title': 'platform', 'default': 'fd'}}}
Esquema de entrada
{'type': 'object', 'title': 'list_presetsArguments', 'properties': {'sport': {'type': 'string', 'title': 'sport', 'default': 'nba'}}}
Esquema de entrada
{'type': 'object', 'title': 'list_slatesArguments', 'properties': {'site': {'type': 'string', 'title': 'site', 'default': 'fd'}, 'limit': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'limit'}, 'sport': {'type': 'string', 'title': 'sport', 'default': 'NBA'}, 'compact': {'type': 'boolean', 'title': 'compact', 'default': False}, 'playable': {'type': 'boolean', 'title': 'playable', 'default': False}}}
Esquema de entrada
{'type': 'object', 'title': 'run_mlb_postmortemArguments', 'required': ['date', 'game_id', 'history_csv'], 'properties': {'date': {'type': 'string', 'title': 'date', 'pattern': '^\\d{4}-\\d{2}-\\d{2}$', 'description': 'Slate date YYYY-MM-DD'}, 'game_id': {'type': 'string', 'title': 'game_id', 'maxLength': 32, 'minLength': 3, 'description': 'V12 slate/game handle, e.g. 129715.'}, 'history_csv': {'type': 'string', 'title': 'history_csv', 'minLength': 1, 'description': 'Raw FanDuel contest-history CSV content.'}, 'upload_csvs': {'type': 'array', 'items': {'type': 'object', 'title': 'PostmortemUploadCsv', 'required': ['content'], 'properties': {'content': {'type': 'string', 'title': 'Content', 'minLength': 1, 'description': 'Raw FanDuel upload/template CSV content.'}, 'filename': {'type': 'string', 'title': 'Filename', 'default': 'upload.csv', 'maxLength': 240}}}, 'title': 'upload_csvs', 'default': [], 'maxItems': 20}, 'sabersim_csv': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'sabersim_csv', 'description': 'Optional external lineup export for comparison.'}, 'sync_supabase': {'type': 'boolean', 'title': 'sync_supabase', 'default': True, 'description': 'Upsert simulator training rows to production store when configured.'}, 'top_field_rank': {'type': 'integer', 'title': 'top_field_rank', 'default': 200, 'maximum': 1000.0, 'minimum': 1.0}, 'history_filename': {'type': 'string', 'title': 'history_filename', 'default': 'contest-history.csv', 'maxLength': 240}}}
Esquema de entrada
{'type': 'object', 'title': 'scout_fieldArguments', 'properties': {'contest': {'type': 'string', 'title': 'contest', 'default': 'Knuckleball'}, 'min_days': {'type': 'integer', 'title': 'min_days', 'default': 3}}}
Esquema de entrada
{'type': 'object', 'title': 'slate_diffArguments', 'properties': {}}
Esquema de entrada
{'type': 'object', 'title': 'slate_healthArguments', 'properties': {'date': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'date'}, 'site': {'type': 'string', 'title': 'site', 'default': 'fd'}, 'sport': {'type': 'string', 'title': 'sport', 'default': 'NBA'}, 'slate_id': {'type': 'integer', 'anyOf': [{'type': 'integer'}, {'type': 'null'}], 'title': 'slate_id'}, 'include_snapshot': {'type': 'boolean', 'title': 'include_snapshot', 'default': False}, 'last_known_fingerprint': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'last_known_fingerprint'}}}
Esquema de entrada
{'type': 'object', 'title': 'slate_refreshArguments', 'properties': {'date': {'type': 'string', 'anyOf': [{'type': 'string'}, {'type': 'null'}], 'title': 'date'}, 'site': {'type': 'string', 'title': 'site', 'default': 'FD'}, 'sport': {'type': 'string', 'title': 'sport', 'default': 'NBA'}}}
Cambios recientes en herramientas
Servidores MCP similares
Stratz
Provides Dota 2 data including heroes, players, matches, live games, player histories, hero statistics, and custom STRATZ GraphQL…
Riot Games
Provides Riot Games and League of Legends data for accounts, champions, mastery, ranked ladders, matches, timelines, and player h…
Wynncraft
Provides Wynncraft player, guild, leaderboard, online-player, news, and item database lookups.
Balldontlie
Provides NBA schedules, games, players, rosters, and game-level basketball statistics.
sportiq-mcp
Provides football, Formula 1, and cricket schedules, scores, statistics, simulations, fantasy recommendations, odds analysis, and…
Api Football
Provides soccer data including fixtures, leagues, squads, injuries, head-to-head records, and match predictions.
Opendota
Provides Dota 2 player profiles, professional match data, and hero pick, win, and ban statistics.
Betsapi
Retrieves upcoming and live sports events along with bookmaker odds across supported sports.