V12 DFS
About
An MCP server that lets any AI agent build contest-ready MLB & NBA DFS lineups on FanDuel and DraftKings.
Details
- Author
- Unknown
- Categories
- Database, Other, AI
Jump to
DFS Optimizer for AI Agents — MCP Server + CLI
V12's lineup engine is one motor behind three interfaces: an MCP server, a JSON CLI, and an HTTP API. Any agent — Claude, Gemini, OpenClaw, or your own — can list slates, read the player pool, run a readiness pre-flight, and generate ranked, contest-ready NBA + MLB lineups through typed tool calls.
MCP serverJSON CLIHTTP APIStructured tool outputsNBA + MLB nativeAny MCP agent
One engine, three interfaces — and they can't drift
Most optimizers are a GUI you click. V12 is a motor you call. The same v12.core pipeline is exposed three ways: an MCP server for agents, a JSON CLI for shells and cron, and an HTTP API for services. There is no second implementation to fall out of sync — the dashboard, your agent, and a one-line shell command all generate the exact same lineups from the exact same code. Build on whichever interface fits your stack and trust they agree.
Point a Claude, Gemini, OpenClaw, or custom agent at the V12 MCP server and it discovers the tools automatically: list slates with lock times, pull the player pool with salaries and projections, run a readiness pre-flight that surfaces blockers and warnings before a run, generate ranked lineups with locks/avoids and contest-aware presets, and assemble the FanDuel entry-template CSV. Every tool returns a structured result, so the agent acts on data — not on a prose blob it has to scrape and hope it parsed right.
No agent? The CLI and API hit the same motor
You don't need an LLM in the loop. python -m v12.core.cli <subcommand> prints JSON to stdout for slates, odds, projections, ownership, simulation, and full lineup generation — pipe it to jq, schedule it in cron, or shell out from any language. The HTTP API (POST /v1/generate) does the same over the network with an API key. The agent path is a convenience layer on top of a CLI and API that stand on their own.
A real engine under the interface, not a wrapper
Behind every interface is an 8-pillar modular engine — data, config, projection, matchup, ownership, optimizer, simulator, ranker — each decoupled. A pure LP optimizer scales from a single lineup to 150 with injectable objectives; an MVN simulator with a PSD-corrected covariance matrix feeds the ranker. NBA and MLB are native today. We're deliberate about what's claimed: DraftKings and single-game/showdown formats are in progress and labeled honestly, not implied as finished.
Every run ships with the same pillars: pool, projections, ownership, simulation, ranker, and warnings.
Expose the engine over the Model Context Protocol. Your agent gets tools — list slates, read the pool, check readiness, generate lineups — with structured results instead of text it has to parse.
python -m v12.core.cli <subcommand> prints JSON to stdout. Pipe to jq, drop it in a cron, or call it from any language. No agent required to run the same engine.
The same pipeline behind a FastAPI app. Send a slate, preset, contest, and lineup count; get a ranked portfolio and a contest-ready upload back. API-key gated.
MCP, CLI, and HTTP all call v12.core.pipeline. They can't drift — the dashboard, an agent, and a shell script all get the exact same lineups from the exact same motor.
Tools return typed objects: slates with lock times, players with salary/position/projection, lineups with player IDs and salaries. The agent acts on data, not on a prose blob.
Data, config, projection, matchup, ownership, optimizer, simulator, ranker — decoupled. Pure LP optimizer, MVN simulator, NBA + MLB native, contest-aware presets.
Point your MCP client at the V12 MCP server. The agent discovers the available tools automatically and can immediately list today's slates, pull the player pool, run a readiness pre-flight, and generate lineups. Generation is API-key gated, so only your authenticated agent can spend a run.
Does it work with Claude, Gemini, OpenClaw, or custom agents?
Any agent that speaks MCP works — V12 doesn't care which model is driving. Claude, Gemini, OpenClaw, or a custom in-house agent all get the same typed tools. If your stack isn't agent-based at all, the CLI and HTTP API hit the identical engine.
Yes. The CLI (python -m v12.core.cli) prints JSON for every subcommand — slates, odds, projections, ownership, simulation, lineups, full generate — so you can wire it into a cron job or a pipeline with no LLM in the loop. The HTTP API does the same over the network.
What does the MCP server actually return for a lineup run?
A ranked portfolio: each lineup carries the player IDs, salaries, total projection, stack shape, and the FanDuel entry-template rows when a contest is selected — already structured so the agent can assemble an upload or reason about exposure without parsing text.
Is this a finished product or a roadmap pitch?
Finished and running in production today for NBA and MLB on FanDuel, across MCP, CLI, and HTTP. We're honest about scope: DraftKings and single-game/showdown formats are in progress and labeled as such rather than implied as done.
An MCP server that provides tools to interact with Powerdrill datasets, enabling smart AI data analysis and insights.
Interact with AskTable SaaS or local deployments to query data sources using natural language.
Access college football statistics from the College Football Data API.
Connect Legacy Databases to AI Agents via Model Context Protocol. Open-source bridge for LLM data analysis.
Financial data for AI agents. SEC XBRL fundamentals, insider trades, 13F holdings, treasury yields. Source-traced.
Access Formula 1 data, including race results, driver standings, and circuit information.
Access Fantasy Premier League (FPL) data and tools, including player information, team details, and gameweek data.
Access extensive Formula 1 statistics and information using the FastF1 library and OpenF1 API.
Access Formula One data and statistics, including race calendars, session results, driver data, lap times, telemetry, and championship standings.
Generect MCP connects your live lead database directly to AI models like OpenAI or Claude without exports or delays. It streams enriched, up-to-date contact data (titles, firmographics, signals) straight into prompts so LLMs can personalize, score, and recommend leads automatically in real time.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





