AI-driven DFS lineup optimizer for MLB & NBA — build FanDuel & DraftKings lineups via MCP.
Inferido de los transportes que declara este listado (streamable-http). Que un cliente no aparezca aquí no significa que se haya descartado: simplemente Forge no puede confirmarlo.
La verificación confirma la identidad del publicador (la propiedad del repo), no la seguridad del código. El análisis de seguridad cubre los CVE conocidos y los scripts de instalación sospechosos.
Leído de un handshake MCP real initialize → tools/list contra el endpoint declarado. No se invocó ninguna herramienta: tools/list es la llamada de introspección de solo lectura que el protocolo define para esto. Refleja lo que el servidor anunciaba en ese momento; un endpoint alojado no está fijado a ninguna versión y puede cambiar sin avisar.
https://v12dfs-production.up.railway.app/mcp34 herramientas · 325 msagent_guideriesgo de inyecciónAgent Guide
Self-serve onboarding: connect any agent (Claude/MCP or REST) to drive the
V12 motor, the same engine the dashboard agent uses. No auth. Returns
copy-paste MCP + REST config with a PLACEHOLDER key, the endpoint map, and the
generate body fields. Operators: issue each user their OWN key…Agent Guide Self-serve onboarding: connect any agent (Claude/MCP or REST) to drive the V12 motor, the same engine the dashboard agent uses. No auth. Returns copy-paste MCP + REST config with a PLACEHOLDER key, the endpoint map, and the generate body fields. Operators: issue each user their OWN key…
e each user their OWN key via
POST /v1/admin/create-key — never share one key.
### Responses:
**200**: Su…No se publicó ningún esquema de entrada para esta herramienta.
health_checkHealth
### Responses:
**200**: Successful Response (Success Response)
Content-Type: application/json
**Example Response:**
```json
{
"status": "Status",
"version": "Version",
"timestamp": "Timestamp"
}
```Health ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "status": "Status", "version": "Version", "timestamp": "Timestamp" } ```
No se publicó ningún esquema de entrada para esta herramienta.
health_v12Health V12
Deep health check for the V12 pipeline. Surfaces:
- last nightly regression run (pass/fail + per-slate deltas)
- regression baseline metadata
- recent preflight blockers (if any cached)
No auth required — monitoring endpoint.
### Responses:
**200**: Successful Response (Success Res…Health V12 Deep health check for the V12 pipeline. Surfaces: - last nightly regression run (pass/fail + per-slate deltas) - regression baseline metadata - recent preflight blockers (if any cached) No auth required — monitoring endpoint. ### Responses: **200**: Successful Response (Success Res…
No se publicó ningún esquema de entrada para esta herramienta.
list_slatesGet Slates
List available V12 slates for today. Returns slate IDs, game counts, and lock times.
### Responses:
**200**: Successful Response (Success Response)
Content-Type: application/json
**422**: Validation Error
Content-Type: application/json
**Example Response:**
```json
{
"detail": [
{…Get Slates List available V12 slates for today. Returns slate IDs, game counts, and lock times. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **422**: Validation Error Content-Type: application/json **Example Response:** ```json { "detail": [ {…
| Parámetro | Tipo | Descripción |
|---|---|---|
| site | string | — |
| sport | string | — |
| playable | boolean | — |
| compact | boolean | — |
| limit | integer | — |
get_slate_playersGet Slate Players Endpoint
Get the V12 player pool for a specific slate ID.
### Responses:
**200**: Successful Response (Success Response)
Content-Type: application/json
**422**: Validation Error
Content-Type: application/json
**Example Response:**
```json
{
"detail": [
{
"loc": [],
"msg":…Get Slate Players Endpoint Get the V12 player pool for a specific slate ID. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **422**: Validation Error Content-Type: application/json **Example Response:** ```json { "detail": [ { "loc": [], "msg":…
| Parámetro | Tipo | Descripción |
|---|---|---|
| slate_id* | integer | — |
| compact | boolean | — |
| limit | integer | — |
slate_healthSlate Health
Pre-flight diagnostic for a slate. Returns whether odds, projections,
matchup, and FD master-session are ready BEFORE the agent invokes
/v1/generate.
Either slate_id or date is required. When slate_id is given, the slate
metadata is also returned (games list, lock times). When only d…Slate Health Pre-flight diagnostic for a slate. Returns whether odds, projections, matchup, and FD master-session are ready BEFORE the agent invokes /v1/generate. Either slate_id or date is required. When slate_id is given, the slate metadata is also returned (games list, lock times). When only d…
| Parámetro | Tipo | Descripción |
|---|---|---|
| slate_id | integer | — |
| date | string | — |
| site | string | — |
| sport | string | — |
| last_known_fingerprint | string | — |
| include_snapshot | boolean | — |
slate_refreshSlate Refresh
Re-fetch projections + odds + slate metadata for a date.
Writes to the configured store (Supabase in prod). Returns a summary
dict (date, slate_id, n_games, n_players, n_upserted, n_odds, backend).
Auth: requires X-API-Key OR X-Internal-Secret (cron use). This is a
write op that co…Slate Refresh Re-fetch projections + odds + slate metadata for a date. Writes to the configured store (Supabase in prod). Returns a summary dict (date, slate_id, n_games, n_players, n_upserted, n_odds, backend). Auth: requires X-API-Key OR X-Internal-Secret (cron use). This is a write op that co…
| Parámetro | Tipo | Descripción |
|---|---|---|
| date | string | — |
| sport | string | — |
| site | string | — |
slate_diffSlate Diff
Compute what changed since a previously-stored snapshot.
Body shape:
{
"slate_id": 32867,
"date": "2026-05-11",
"sport": "NBA",
"site": "FD",
"previous": {
"v": "v1",
"players": [{"id","name","status","salary","proj"}, ...],
"odds": [{"game","ou","spread","home_ml","away_ml"},…Slate Diff Compute what changed since a previously-stored snapshot. Body shape: { "slate_id": 32867, "date": "2026-05-11", "sport": "NBA", "site": "FD", "previous": { "v": "v1", "players": [{"id","name","status","salary","proj"}, ...], "odds": [{"game","ou","spread","home_ml","away_ml"},…
No se publicó ningún esquema de entrada para esta herramienta.
list_presetsGet Presets
List the available strategy presets (gpp_pro_pattern, gpp_sniper, gpp_balanced, gpp_volume, cash_grinder, gpp_contrarian, gpp_mass_entry) with their configurations. No auth required.
### Responses:
**200**: Successful Response (Success Response)
Content-Type: application/json
**422**…Get Presets List the available strategy presets (gpp_pro_pattern, gpp_sniper, gpp_balanced, gpp_volume, cash_grinder, gpp_contrarian, gpp_mass_entry) with their configurations. No auth required. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **422**…
| Parámetro | Tipo | Descripción |
|---|---|---|
| sport | string | — |
generate_lineupsGenerate Lineups
### Responses:
**200**: Successful Response (Success Response)
Content-Type: application/json
**Example Response:**
```json
{
"status": "Status",
"generated_at": "Generated At",
"warnings": [],
"exposures": {},
"lineups": []
}
```
**422**: Validation Error
Content-Type: app…Generate Lineups ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "status": "Status", "generated_at": "Generated At", "warnings": [], "exposures": {}, "lineups": [] } ``` **422**: Validation Error Content-Type: app…
| Parámetro | Tipo | Descripción |
|---|---|---|
| date* | string | Slate date YYYY-MM-DD |
| sport | string | Sport engine to run: nba or mlb. |
| preset | string | Strategy preset key. |
| platform | string | V12 platform profile: fd or dk. |
| slate_id | integer | Specific slate ID from /v1/slates. Overrides date-based lookup. |
| contest_id | string | Optional contest handle for building an entry-update CSV from the user's existing contest entries. |
| entry_template_csv | string | 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 FanD… |
| contest_max_entries | integer | 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 M… |
| contest_field_size | integer | 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_ceil… |
| contest_fallback | string | 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 conte… |
| plan_only | boolean | 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… |
| fd_user_id | string | 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-In… |
| lineups | integer | Number of lineups (overrides preset default) |
| strategy | string | GPP or cash game strategy |
| style | string | — |
| runs | integer | Accepted for tier limits and response metadata. Portfolio quality is controlled by preset, candidate_pool_size, pool_oversample_multiplier, and simulation sett… |
| seed | integer | Random seed for reproducibility |
| locks | array | Players to lock in |
| avoids | array | Players to avoid |
| exposure_caps | object | Per-player exposure caps {name: 0.0-1.0} |
| max_hitter_exposure | number | Portfolio cap: max share of delivered lineups any ONE hitter may appear in (0.4 = 40%). Pitchers exempt. |
| max_pitcher_exposure | number | Portfolio cap: max share of delivered lineups any ONE pitcher may appear in. |
| auto_team_exposure_cap | number | Default per-team portfolio cap (share of lineups containing ANY given team). Per-team entries in team_exposure_caps win over it. |
| team_exposure_caps | object | Per-team portfolio caps, as [["COL",0.5],...] pairs or {"COL":0.5} dict. |
run_mlb_postmortemRun Mlb Postmortem
### Responses:
**200**: Successful Response (Success Response)
Content-Type: application/json
**Example Response:**
```json
{
"status": "Status",
"generated_at": "Generated At",
"date": "Date",
"game_id": "Game Id",
"entries": 1,
"field_lineups": 1,
"training_rows": 1,…Run Mlb Postmortem ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **Example Response:** ```json { "status": "Status", "generated_at": "Generated At", "date": "Date", "game_id": "Game Id", "entries": 1, "field_lineups": 1, "training_rows": 1,…
| Parámetro | Tipo | Descripción |
|---|---|---|
| date* | string | Slate date YYYY-MM-DD |
| game_id* | string | V12 slate/game handle, e.g. 129715. |
| history_csv* | string | Raw FanDuel contest-history CSV content. |
| history_filename | string | — |
| upload_csvs | array | — |
| sabersim_csv | string | Optional external lineup export for comparison. |
| top_field_rank | integer | — |
| sync_supabase | boolean | Upsert simulator training rows to production store when configured. |
list_contestsContest Registry
List contest strategy registry entries for agents and the dashboard.
### Responses:
**200**: Successful Response (Success Response)
Content-Type: application/json
**422**: Validation Error
Content-Type: application/json
**Example Response:**
```json
{
"detail": [
{
"loc": []…Contest Registry List contest strategy registry entries for agents and the dashboard. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **422**: Validation Error Content-Type: application/json **Example Response:** ```json { "detail": [ { "loc": []…
| Parámetro | Tipo | Descripción |
|---|---|---|
| platform | string | — |
| sport | string | — |
list_live_contestsLive Contests
Return latest V12 contest context without backend identifiers.
### Responses:
**200**: Successful Response (Success Response)
Content-Type: application/json
**422**: Validation Error
Content-Type: application/json
**Example Response:**
```json
{
"detail": [
{
"loc": [],
"msg":…Live Contests Return latest V12 contest context without backend identifiers. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **422**: Validation Error Content-Type: application/json **Example Response:** ```json { "detail": [ { "loc": [], "msg":…
| Parámetro | Tipo | Descripción |
|---|---|---|
| platform | string | — |
| sport | string | — |
| compact | boolean | — |
| limit | integer | — |
contest_semaforoContest Semaforo
VIP-only: per-contest play/skip verdict from the owner's verified P&L
bands + structure gates + rake/fill math. See core/data/contest_semaforo.
### Responses:
**200**: Successful Response (Success Response)
Content-Type: application/json
**422**: Validation Error
Content-Type: a…Contest Semaforo VIP-only: per-contest play/skip verdict from the owner's verified P&L bands + structure gates + rake/fill math. See core/data/contest_semaforo. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **422**: Validation Error Content-Type: a…
| Parámetro | Tipo | Descripción |
|---|---|---|
| platform | string | — |
| sport | string | — |
| limit | integer | — |
scout_fieldScout Field
VIP-only (owner order 8/16): opponent-scouting profiles for the small
single-entry band. The owner's $65 table runs the SAME regulars nightly;
this returns each regular's fingerprint — days seen, avg score,
chalkiness (overlap with field consensus), favorite pitchers/bats and
head-to-h…Scout Field VIP-only (owner order 8/16): opponent-scouting profiles for the small single-entry band. The owner's $65 table runs the SAME regulars nightly; this returns each regular's fingerprint — days seen, avg score, chalkiness (overlap with field consensus), favorite pitchers/bats and head-to-h…
| Parámetro | Tipo | Descripción |
|---|---|---|
| contest | string | — |
| min_days | integer | — |
contest_adviceContest Advice
Advice for a concrete contest name. Resolves the name against the LIVE
lobby FIRST so a real live contest is never reported missing (the curated
registry is only a subset — that was the "$800 Wed MLB Home Run no existe"
bug), then layers registry strategy advice on top when a templa…Contest Advice Advice for a concrete contest name. Resolves the name against the LIVE lobby FIRST so a real live contest is never reported missing (the curated registry is only a subset — that was the "$800 Wed MLB Home Run no existe" bug), then layers registry strategy advice on top when a templa…
| Parámetro | Tipo | Descripción |
|---|---|---|
| name* | string | — |
| platform | string | — |
| sport | string | — |
fill_templateriesgo de inyecciónFill Template
Fill a downloaded FanDuel/DK entries-template with already-generated
lineups WITHOUT re-running the optimizer — the MCP-callable equivalent of the
dashboard's fill_template. Keeps each entry row's leading columns (entry_id,
contest_id, fee) and replaces the roster-slot columns with a…Fill Template Fill a downloaded FanDuel/DK entries-template with already-generated lineups WITHOUT re-running the optimizer — the MCP-callable equivalent of the dashboard's fill_template. Keeps each entry row's leading columns (entry_id, contest_id, fee) and replaces the roster-slot columns with a…
lineups: Exfiltration-shaped instructionEach lineup = upload tokens in template roster-slot order.| Parámetro | Tipo | Descripción |
|---|---|---|
| template_csv* | string | Raw CSV of the entries-template (headers + entry rows). |
| lineups* | array | Each lineup = upload tokens in template roster-slot order. |
admin_issue_keyIssue Key
Idempotently issue a user's API key and ALWAYS return the paste-able
connect block. Returns the email's existing active key (or mints one) so a
user keeps a single key across dashboard reloads; with rotate=true, revokes
the existing keys and mints a fresh one. Admin-gated — the dashboard…Issue Key Idempotently issue a user's API key and ALWAYS return the paste-able connect block. Returns the email's existing active key (or mints one) so a user keeps a single key across dashboard reloads; with rotate=true, revokes the existing keys and mints a fresh one. Admin-gated — the dashboard…
| Parámetro | Tipo | Descripción |
|---|---|---|
| email* | string | — |
| tier | string | — |
| rotate | boolean | Revoke existing keys and mint a fresh one. |
betting_agent_guideBetting Agent Guide
How any agent uses the MLB betting tools + how to read the output.
### Responses:
**200**: Successful Response (Success Response)
Content-Type: application/jsonBetting Agent Guide How any agent uses the MLB betting tools + how to read the output. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json
No se publicó ningún esquema de entrada para esta herramienta.
betting_player_formPlayer Form
Streak / splits / recent form for any player ('racha de X').
### Responses:
**200**: Successful Response (Success Response)
Content-Type: application/json
**422**: Validation Error
Content-Type: application/json
**Example Response:**
```json
{
"detail": [
{
"loc": [],
"msg": "Me…Player Form Streak / splits / recent form for any player ('racha de X'). ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **422**: Validation Error Content-Type: application/json **Example Response:** ```json { "detail": [ { "loc": [], "msg": "Me…
| Parámetro | Tipo | Descripción |
|---|---|---|
| name* | string | — |
| season | integer | — |
betting_analyze_propAnalyze Prop
Model a single player's prop vs tonight's FanDuel line -> edge.
### Responses:
**200**: Successful Response (Success Response)
Content-Type: application/json
**422**: Validation Error
Content-Type: application/json
**Example Response:**
```json
{
"detail": [
{
"loc": [],
"msg":…Analyze Prop Model a single player's prop vs tonight's FanDuel line -> edge. ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **422**: Validation Error Content-Type: application/json **Example Response:** ```json { "detail": [ { "loc": [], "msg":…
| Parámetro | Tipo | Descripción |
|---|---|---|
| name* | string | — |
| prop | string | — |
| threshold | integer | — |
| season | integer | — |
betting_scan_edgesScan Edges
Tonight's prop board ranked by model edge (VALUE first).
### Responses:
**200**: Successful Response (Success Response)
Content-Type: application/json
**422**: Validation Error
Content-Type: application/json
**Example Response:**
```json
{
"detail": [
{
"loc": [],
"msg": "Message…Scan Edges Tonight's prop board ranked by model edge (VALUE first). ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **422**: Validation Error Content-Type: application/json **Example Response:** ```json { "detail": [ { "loc": [], "msg": "Message…
| Parámetro | Tipo | Descripción |
|---|---|---|
| prop | string | — |
| min_edge | number | — |
| limit | integer | — |
| threshold | integer | — |
| coors | boolean | — |
| season | integer | — |
betting_best_betsBest Bets
THE board sweep — scans EVERY main prop market (HR/RBI/hit/total_bases/
2+hits/stolen_base) in one call and returns the top edges across all of them,
not just home runs. Power props carry the Savant validation (CONFIRMED power
ranked above neutral/noise). Use this for an open 'what's hot…Best Bets THE board sweep — scans EVERY main prop market (HR/RBI/hit/total_bases/ 2+hits/stolen_base) in one call and returns the top edges across all of them, not just home runs. Power props carry the Savant validation (CONFIRMED power ranked above neutral/noise). Use this for an open 'what's hot…
| Parámetro | Tipo | Descripción |
|---|---|---|
| min_edge | number | — |
| limit | integer | — |
betting_build_parlayBuild Parlay
Deterministic parlay analysis for BOTH leg shapes. Body:
{legs:[...], ticket_odds?}. PROP legs {name, prop, threshold} keep the
legacy correlation-aware EV. GAME-side legs (ML / run line / total / team
total / F5, selected by the `market` field) — the slips users actually
paste — are…Build Parlay Deterministic parlay analysis for BOTH leg shapes. Body: {legs:[...], ticket_odds?}. PROP legs {name, prop, threshold} keep the legacy correlation-aware EV. GAME-side legs (ML / run line / total / team total / F5, selected by the `market` field) — the slips users actually paste — are…
| Parámetro | Tipo | Descripción |
|---|---|---|
| legs* | array | — |
| ticket_odds | integer | — |
betting_log_betLog Bet
Record a bet you placed (per user) so we can track P&L + CLV over time.
Body: {uid, market, selection, odds (American), stake, line?, prop?, team?,
game?, book?}. Append-only — this is the evidence base that PROVES edge.
### Responses:
**200**: Successful Response (Success Response)
Cont…Log Bet Record a bet you placed (per user) so we can track P&L + CLV over time. Body: {uid, market, selection, odds (American), stake, line?, prop?, team?, game?, book?}. Append-only — this is the evidence base that PROVES edge. ### Responses: **200**: Successful Response (Success Response) Cont…
| Parámetro | Tipo | Descripción |
|---|---|---|
| uid* | string | — |
| market* | string | — |
| selection* | string | — |
| odds* | integer | — |
| stake* | number | — |
| line | number | — |
| prop | string | — |
| team | string | — |
| game | string | — |
| book | string | — |
betting_my_betsMy Bets
A user's bet history + P&L / CLV summary. avg_clv_pct > 0 over time = you're
beating the closing line = real edge (the only durable proof).
### Responses:
**200**: Successful Response (Success Response)
Content-Type: application/json
**422**: Validation Error
Content-Type: application/js…My Bets A user's bet history + P&L / CLV summary. avg_clv_pct > 0 over time = you're beating the closing line = real edge (the only durable proof). ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **422**: Validation Error Content-Type: application/js…
| Parámetro | Tipo | Descripción |
|---|---|---|
| uid* | string | — |
betting_settle_betSettle Bet
Settle a logged bet. Body: {uid, bet_id, result: won|lost|push,
closing_odds?}. closing_odds lets us compute CLV (did you beat the close).
### Responses:
**200**: Successful Response (Success Response)
Content-Type: application/json
**422**: Validation Error
Content-Type: application/…Settle Bet Settle a logged bet. Body: {uid, bet_id, result: won|lost|push, closing_odds?}. closing_odds lets us compute CLV (did you beat the close). ### Responses: **200**: Successful Response (Success Response) Content-Type: application/json **422**: Validation Error Content-Type: application/…
| Parámetro | Tipo | Descripción |
|---|---|---|
| uid* | string | — |
| bet_id* | string | — |
| result* | string | — |
| closing_odds | integer | — |
betting_cross_bookCross Book
Cross-book value: FanDuel vs DraftKings (DK pulled via ESPN's public API,
no key/WS). LINE_SHOP (the books hang different numbers — take the easier
side) and PRICE_SHOP (better price, same line) are CONFIRMED edges, no model
needed. Arbitrage is NOT auto-reported (needs over/under sides…Cross Book Cross-book value: FanDuel vs DraftKings (DK pulled via ESPN's public API, no key/WS). LINE_SHOP (the books hang different numbers — take the easier side) and PRICE_SHOP (better price, same line) are CONFIRMED edges, no model needed. Arbitrage is NOT auto-reported (needs over/under sides…
| Parámetro | Tipo | Descripción |
|---|---|---|
| prop | string | — |
betting_game_linesGame Lines
GAME markets — moneyline / run total / run line for today's MLB games. This
answers the 'quién gana / cuántas carreras / pronóstico Yankees vs Toronto'
questions that player props CAN'T (V12 used to just refuse them). Optional
team filter ('Yankees', 'NYY'). MARKET data from ESPN's publ…Game Lines GAME markets — moneyline / run total / run line for today's MLB games. This answers the 'quién gana / cuántas carreras / pronóstico Yankees vs Toronto' questions that player props CAN'T (V12 used to just refuse them). Optional team filter ('Yankees', 'NYY'). MARKET data from ESPN's publ…
| Parámetro | Tipo | Descripción |
|---|---|---|
| team | string | — |
| date | string | — |
betting_marketMarket
FULL FanDuel market board for a team's game — EVERY market with real odds +
de-vig fair price, so NO market question goes unanswered. Game lines (ML /
total / run line), FIRST 5 INNINGS (F5), TEAM TOTALS, NRFI/YRFI, alternate
lines, AND the full player-prop menu (HR / 2+ HR / hit / 2+ hits…Market FULL FanDuel market board for a team's game — EVERY market with real odds + de-vig fair price, so NO market question goes unanswered. Game lines (ML / total / run line), FIRST 5 INNINGS (F5), TEAM TOTALS, NRFI/YRFI, alternate lines, AND the full player-prop menu (HR / 2+ HR / hit / 2+ hits…
| Parámetro | Tipo | Descripción |
|---|---|---|
| team* | string | — |
| date | string | — |
betting_sharpSharp
SHARP value — FanDuel vs PINNACLE (the sharpest book, ~2% hold). Pinnacle's
de-vigged line ≈ TRUE probability, so this is the most reliable value signal in
the kit, NO model needed: edge_vs_sharp = FD's price minus the sharp's true
prob; POSITIVE means FanDuel pays MORE than fair (real value…Sharp SHARP value — FanDuel vs PINNACLE (the sharpest book, ~2% hold). Pinnacle's de-vigged line ≈ TRUE probability, so this is the most reliable value signal in the kit, NO model needed: edge_vs_sharp = FD's price minus the sharp's true prob; POSITIVE means FanDuel pays MORE than fair (real value…
| Parámetro | Tipo | Descripción |
|---|---|---|
| team* | string | — |
| date | string | — |
betting_game_modelGame Model
MODEL the GAME run markets — TEAM TOTALS (over/under) and NRFI/YRFI — vs
the FanDuel line, MARKET-ANCHORED: expected_runs = the book's de-vigged
implied mean + 0.25×(structural model − book), and every edge is computed vs
the FAIR (de-vigged) probability, never the raw vig price. The st…Game Model MODEL the GAME run markets — TEAM TOTALS (over/under) and NRFI/YRFI — vs the FanDuel line, MARKET-ANCHORED: expected_runs = the book's de-vigged implied mean + 0.25×(structural model − book), and every edge is computed vs the FAIR (de-vigged) probability, never the raw vig price. The st…
| Parámetro | Tipo | Descripción |
|---|---|---|
| team* | string | — |
| date | string | — |
betting_matchupMatchup
GROUNDING — the real game for a team today: probable pitchers + the POSTED
lineup (ACTUAL player names from MLB statsapi) + the market line + the CONTEXT
a pro reasons with: home-plate UMPIRE (strike zone → totals/Ks), the INJURY
report (who's OUT / Day-To-Day), and BULLPEN health (ERA / b…Matchup GROUNDING — the real game for a team today: probable pitchers + the POSTED lineup (ACTUAL player names from MLB statsapi) + the market line + the CONTEXT a pro reasons with: home-plate UMPIRE (strike zone → totals/Ks), the INJURY report (who's OUT / Day-To-Day), and BULLPEN health (ERA / b…
| Parámetro | Tipo | Descripción |
|---|---|---|
| team* | string | — |
| date | string | — |
betting_market_moversMarket Movers
MARKET pattern (not model opinion): how FanDuel lines MOVED today, from the
captured snapshots. A line that shortened = money coming in (sharp/news); a
drift = money off. This is the 'obvious opportunity' signal — market-confirmed,
independent of our unproven model. Needs accumulated…Market Movers MARKET pattern (not model opinion): how FanDuel lines MOVED today, from the captured snapshots. A line that shortened = money coming in (sharp/news); a drift = money off. This is the 'obvious opportunity' signal — market-confirmed, independent of our unproven model. Needs accumulated…
| Parámetro | Tipo | Descripción |
|---|---|---|
| prop | string | — |
| min_move | number | — |
| date | string | — |
34 de 34 herramientas publicaron una descripción.
Los nombres y descripciones de las herramientas los escribe el publicador y se muestran literalmente como texto inerte. Son las cadenas que un cliente MCP pasa al modelo, así que Forge las analiza en busca de patrones de inyección de prompts — cualquier hallazgo aparece junto al análisis de seguridad de arriba. «Privilegiada» es una coincidencia de palabra clave en el nombre de la herramienta, no una auditoría de lo que hace: un nombre inofensivo puede hacer cualquier cosa.
AI-driven DFS lineup optimizer for MLB & NBA — build FanDuel & DraftKings lineups via MCP.
Los nombres enlazados abren el índice de Forge con todas las entradas que se observó que exponen esa herramienta. Ver todas las herramientas indexadas.
Esta entrada no publica ningún paquete de npm, así que Forge no tiene un árbol de dependencias para ella. Es una carencia de cobertura, no una afirmación de que no tenga dependencias.