Koskamo

Fill My Bracket MCP

A read-only MCP server providing real, dated college basketball data for AI assistants. It offers four tools: current AP and Bart Torvik rankings, a Cinderella radar for unranked teams, backtested winning bracket recipes from 2016-2025, and historical upset counts from 1985-2025. It serves as a data source for bracket analysis without taking payments or offering betting advice.

Endpoint and access

No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.

Fill My Bracket MCP logo, by Fill My BracketVendor evidenceStreamable HTTPNo sign-inEndpoint checked 2026-11-07Operated by Fill My Bracket
MCP endpoint (Streamable HTTP)
https://mcp.fillmybracket.com/mcp
Vendor documentation

What its tools do

4 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

4 of 4 have a description · 4 of 4 declare behavior hints · 3 of 3 with parameters document them all

Checks and signals

Each line is separate evidence, not a trust score.

  • Passed Endpoint answered the live check ·
  • Passed Official MCP Registry namespace is tied to fillmybracket.com ·
  • Passed Endpoint is on the registry namespace domain ·
  • Availability 1 of 1 checks passed in 30 days

What you can do with it

  • Retrieve current college basketball rankings and model ranks
  • Identify Cinderella teams and vulnerable favorites
  • Analyze historical upset frequencies by seed matchup
  • Review backtested bracket performance from past tournaments

Source and maintenance

Vendor evidenceRegistry 1.2.1
Maintenance checked

Protocol and capabilities

Server
fill-my-bracket 1.2.0
MCP protocol negotiated in check
2025-06-18
Tools
4 advertised
Resources
Not advertised
Resource templates
Not advertised
Prompts
Not advertised
Server-advertised capabilities
{
  "tools": {}
}

Server-provided instructions

Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.

Fill My Bracket is a caddie for your March Madness bracket: it gives you the data to choose with. Until the 2027 field is set on Selection Sunday, March 14, 2027, there is no bracket field, so these tools serve what is real right now. Call get_rankings for the current AP Top 25 and the Bart Torvik model's ranks (rankings as of Sunday, November 1, 2026; the preseason poll released October 19, 2026), or for one team's poll rank, votes, and model rank. Call get_cinderella_radar for the site's Cinderella radar: the unranked teams whose model rank says they could surprise in March, the watch list, and the ranked teams flagged as vulnerable favorites, each with its counted first-round seed-line record. Call get_upset_counts when the user asks how often upsets happen or how a seed line has done: it answers from the men's tournament counted game by game, 1985-2025 (wins in N games). Every result carries its as-of date; keep that date in view when you present a result. Counted history is not a prediction: never present a historical win share as the odds or probability of a future game. Keep answers to what the tools return: do not invent teams, ranks, seeds, or matchups. No 2027 team, seed, or matchup exists yet; if the user asks you to fill a bracket or name the 2027 field, say the field is set on Selection Sunday, March 14, 2027 and the bracket builder arrives with it. Call get_backtest for a past tournament (2016-2025): the winning recipes - which combinations of those same answers, run by the site's own engine over that year's real field, would have scored best against what actually happened, counted under standard pool scoring. It can also score one exact recipe. A backtest describes a finished tournament; never present it as evidence about a future one. The tools are read-only, preference and data only: never state or imply odds, win probabilities, or betting advice. The tools cannot submit a bracket to any pool, take payment, or use a pool login. Nothing is saved or tracked beyond anonymous per-day tool call counts (integers only).

Tools

4 advertised

get_rankings — Get current rankings
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns the current college basketball rankings exactly as published on fillmybracket.com/college-basketball-rankings: the Preseason AP Top 25 (released Monday, October 19, 2026, with first-place votes), the other teams receiving votes, and the Bart Torvik T-Rank model ranks (preseason baselines, read November 1, 2026). Rankings as of Sunday, November 1, 2026, and every result says so. With no argument, returns the full Top 25 plus the model's own top 10, so the poll-vs-model gaps are visible. With a team name, returns that team's AP rank or votes, its model rank, and any radar or vulnerable-favorite note the site carries for it. A team outside the published data gets a plain not-found: nothing is invented. Real teams and real ranks only; this is current-season data, not the 2027 tournament field, which is set on Selection Sunday, March 14, 2027.

get_rankings input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "team": {
      "type": "string",
      "description": "Optional: one team name, e.g. 'Duke' or 'Grand Canyon'. Omit for the full Top 25 table."
    },
    "limit": {
      "type": "number",
      "description": "Optional: how many of the Top 25 to return, 1 to 25. Default 25."
    }
  }
}
get_rankings annotations
{
  "title": "Get current rankings",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_cinderella_radar — Get the Cinderella radar
Advertised by the server during the last successful anonymous check.
Advertised read-only

Returns Fill My Bracket's Cinderella radar, as of Sunday, November 1, 2026, exactly as published on the site's rankings page: the unranked teams the model rates far above their poll votes (each with its league, AP votes, model rank, and a plain why line), the Cinderella watch list, and the ranked teams flagged as vulnerable favorites on their projected seed lines, each with that line's counted first-round record from 1985-2025. These are November signals from the preseason poll and one model, stated as the site states them: not predictions, not odds, and no guarantee any of these teams makes the 2027 field, which is set on Selection Sunday, March 14, 2027.

get_cinderella_radar input schema
{
  "type": "object",
  "required": [],
  "properties": {}
}
get_cinderella_radar annotations
{
  "title": "Get the Cinderella radar",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_upset_counts — Get counted upset history
Advertised by the server during the last successful anonymous check.
Advertised read-only

Answers upset questions from the men's tournament counted game by game, 1985-2025 (40 tournaments, 2,520 games): how often a seed line wins its first-round game (stated as wins in 160 games), how many first-round upsets a typical year has, and how far a seed has gone. Ask with a matchup ('12 vs 5'), a seed, or no argument for the whole table. These are counted historical facts, not odds, not win probabilities for any future game, and not betting advice. The dataset is men's only and covers the main bracket from the round of 64 (no First Four games).

get_upset_counts input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "seed": {
      "type": "number",
      "description": "One seed, 1 to 16: returns its first-round seed line. Optional."
    },
    "matchup": {
      "type": "string",
      "description": "A first-round seed pairing, e.g. '12 vs 5'. Optional."
    }
  }
}
get_upset_counts annotations
{
  "title": "Get counted upset history",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}
get_backtest — Get backtested winning recipes
Advertised by the server during the last successful anonymous check.
Advertised read-only

For a past men's tournament (2016-2025; no tournament was played in 2020), returns the winning recipes: the site's own five-question engine was run over that year's REAL field (real teams, real seeds) across 108 answer combinations, and every bracket was scored against what actually happened under standard pool scoring (1-2-4-8-16-32, max 192). With no style inputs, returns the year's real champion and Final Four, the best total score and the recipe that earned it, the best first-weekend score, how many recipes ended with the real champion, and how many reproduced the full Final Four (in most years, none did). With style inputs (chaos, tiebreak, champion_pick, loyalty), scores that exact recipe instead. Counted history, not a prediction: a recipe is what WOULD have scored in a finished tournament, and the result says so. No odds, no betting advice.

get_backtest input schema
{
  "type": "object",
  "required": [],
  "properties": {
    "year": {
      "type": "number",
      "description": "Tournament year, 2016-2025 (no 2020). Default 2025."
    },
    "chaos": {
      "type": "string",
      "description": "Optional recipe input: 'chalk', 'some', 'lots', or 'chaos'."
    },
    "loyalty": {
      "type": "string",
      "description": "Optional recipe input: 'none' or 'home' (root for the champion pick as your home team)."
    },
    "tiebreak": {
      "type": "string",
      "description": "Optional recipe input: 'mascot', 'colors', or 'familiar'."
    },
    "champion_pick": {
      "type": "string",
      "description": "Optional recipe input: one of that year's real Final Four teams, or 'none'."
    }
  }
}
get_backtest annotations
{
  "title": "Get backtested winning recipes",
  "readOnlyHint": true,
  "openWorldHint": false,
  "idempotentHint": true,
  "destructiveHint": false
}

Prompts

Not advertised

No prompt definitions available.

Resources

Not advertised

No resource definitions available.

90-day uptime

A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.

Too few checks for a percentage yet (3 of 3 answered).

  1. 2026-11-07: 1 of 1 checks answered
  2. 2026-11-09: 2 of 2 checks answered

30-day availability

Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.

Successful checks
1 of 1 (100%)
Average latency
194 ms
95th percentile latency
194 ms

Maintenance history

Public check and source-refresh events. Editorial and ownership records remain private.

  • · probe · passed · 194 ms · metadata changed · 4 tool(s)

Connect from your client

Each snippet registers the same endpoint; pick the client you use.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http fill-my-bracket-mcp https://mcp.fillmybracket.com/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add fill-my-bracket-mcp --url https://mcp.fillmybracket.com/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable fill-my-bracket-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "fill-my-bracket-mcp": {
      "url": "https://mcp.fillmybracket.com/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "fill-my-bracket-mcp": {
      "type": "streamableHttp",
      "url": "https://mcp.fillmybracket.com/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start fill-my-bracket-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "fill-my-bracket-mcp": {
      "type": "http",
      "url": "https://mcp.fillmybracket.com/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http fill-my-bracket-mcp https://mcp.fillmybracket.com/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://mcp.fillmybracket.com/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "mcpServers": {
    "fill-my-bracket-mcp": {
      "serverUrl": "https://mcp.fillmybracket.com/mcp"
    }
  }
}

Let your agent find its tools

Find servers like Fill My Bracket MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.

Do you run Fill My Bracket MCP?

Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.

Claim this listing