Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

Statbotics

NPM · @WITHINFOCUS/STATBOTICS-MCP-SERVER · SCANNED SEP 20

Statbotics MCP Server

+1 this week 93 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security98
  • No malware found by supply-chain analysis.Pass
  • No known CVEs affecting this package version or its production dependencies.Pass
  • No install/post-install scripts declared.Pass
  • 56 of 139 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency97
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Cryptographically verified build provenance (signed, bound to withinfocus/statbotics-mcp-server). View diagnostics → Pass
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 43 days ago).Pass
  • Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability67
  • AI-judged instruction clarity (excellent).Pass
  • Context-footprint check failed: tool/resource definitions use about 3861 tokens (~275/item across 14 items; 14 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • No destabilizing schema changes in the last 30 days.Pass
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • We read all 14 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
  • An AI judge read all 14 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Install

How do I install the Statbotics MCP server?

Statbotics runs locally as an npm package, launched with npx -y @withinfocus/statbotics-mcp-server. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

npm · @withinfocus/statbotics-mcp-server

# add to Claude Code
claude mcp add withinfocus-statbotics -- npx -y @withinfocus/statbotics-mcp-server
// .cursor/mcp.json
{
  "mcpServers": {
    "withinfocus-statbotics": {
      "command": "npx",
      "args": [
        "-y",
        "@withinfocus/statbotics-mcp-server"
      ]
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "withinfocus-statbotics": {
      "command": "npx",
      "args": [
        "-y",
        "@withinfocus/statbotics-mcp-server"
      ]
    }
  }
}
# add to Codex CLI
codex mcp add withinfocus-statbotics -- npx -y @withinfocus/statbotics-mcp-server
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "withinfocus-statbotics": {
      "type": "local",
      "command": [
        "npx",
        "-y",
        "@withinfocus/statbotics-mcp-server"
      ],
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add withinfocus-statbotics --command npx --arg -y --arg @withinfocus/statbotics-mcp-server
# ~/.hermes/config.yaml
mcp_servers:
  withinfocus-statbotics:
    command: "npx"
    args: ["-y", "@withinfocus/statbotics-mcp-server"]
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "withinfocus-statbotics": {
      "Transport": "stdio",
      "Command": "npx",
      "Arguments": [
        "-y",
        "@withinfocus/statbotics-mcp-server"
      ]
    }
  }
}
# add to Vellum
assistant mcp add withinfocus-statbotics -t stdio -c npx -a -y @withinfocus/statbotics-mcp-server
// mcp.json
{
  "mcpServers": {
    "withinfocus-statbotics": {
      "command": "npx",
      "args": [
        "-y",
        "@withinfocus/statbotics-mcp-server"
      ]
    }
  }
}
Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 20 Sept 26 +1
    • Stability: 0.97 → pass security
  • 18 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

  • 16 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Sept 26 −3
    • Stability: pass → 0.83 functional
  • 14 Sept 26 +1
    • Stability: 0.97 → pass security
  • 12 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 90 to 93. That category is still filling its 30-day observation window: 27 days of observed history at the previous scan, 28 at this one. The score rises as the window fills, whether or not the server changes.

  • 10 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 83 to 87. That category is still filling its 30-day observation window: 25 days of observed history at the previous scan, 26 at this one. The score rises as the window fills, whether or not the server changes.

  • 8 Sept 26 −3
    • Stability: pass → 0.80 functional
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 20 Sept 2026 · Analysed npm/@withinfocus/statbotics-mcp-server@1.2.0

Provenance Verified

A signed build attestation was found and verified, binding this exact artifact to the source repository it claims to come from.

Result Verified
Ecosystem npm
Reason Verified
Discovered via Registry attestation endpoint
Source repo withinfocus/statbotics-mcp-server
Certificate issuer https://token.actions.githubusercontent.com
Certificate SAN https://github.com/withinfocus/statbotics-mcp-server/.github/workflows/publish.yml@refs/heads/main
Rekor log index 2372132460
Predicate type https://slsa.dev/provenance/v1
Subject digest sha512:c86fd754f08d78fe03f055b08b08863fea2862a5229decb94d851cacc9afc31eb75778fb7e0cf13e702b1da1080a80398a1da3c70a15fb502075cb09e

Background: How many MCP packages publish verified provenance →

Dependencies 139 packages
Packages resolved 139
Stale 56
Tree resolution Complete

Background: SBOMs and build attestations, explained →

MCP tools · 14 exposed · ~3,861 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
get_event ~208

Look up a single FIRST Robotics Competition (FRC) event by its event key. Returns metadata (event name, year, week, type, location, dates, district), aggregate EPA stats for participating teams, qualification and playoff status, and Statbotics predictions for the event (e.g. winner probabilities). Event keys follow the format `<year><event-code>`, e.g. "2024flor" (FLOR = Orlando regional 2024), "2024necmp" (New England district championship 2024), "2024cmptx" (Houston champs 2024). Use this to answer "what happened at 2024flor?", "show predictions for 2024cmptx", or to get context (week, type, location) for an event you have the key for. For browsing events by season, district, or week, use get_events.

NameTypeReqDescription
eventstringyesEvent key, e.g. 2024flor

No output schema declared.

No examples provided.

get_events ~410

List FIRST Robotics Competition (FRC) events with optional filters - the discovery tool for finding event keys and browsing the season schedule. Returns an array of events with name, key, dates, location, week, type, EPA stats, and predictions. Filter by `year` (4-digit, >=2002), `country`, `state`, `district`, `type` (regional, district, district_cmp, champs_div, einstein, offseason), and `week` (0-8 of the season; 8 = championship). Sort with `metric`/`ascending` and paginate with `limit`/`offset`. Use this to answer "what regionals were in California in 2024?", "list all week 1 events this year", or "find the FRC championship divisions" (year=YEAR, type="champs_div"). If you need a single event you already know, use get_event.

NameTypeReqDescription
ascendingbooleanWhether to sort in ascending order. Default is ascending.
countrystringCapitalized country name, e.g. USA or Canada.
districtstringDistrict abbreviation. One of: ca, fch, fim, fin, fit, fma, fnc, fsc, isr, ne, ont, pch, pnw, win.
limitintegerMaximum number of results to return (1-1000). Default is 1000.
metricstringHow to sort the returned values. Any column in the table is valid.
offsetintegerOffset from the first result to return.
statestringCapitalized two-letter state code, e.g. NC.
typestringOne of: regional, district, district_cmp, champs_div, einstein, or offseason.
weekintegerWeek of the competition season. 8 is CMP.
yearintegerFour-digit year (2002 onwards)

No output schema declared.

No examples provided.

get_match ~214

Look up a single FIRST Robotics Competition (FRC) match by its match key. Returns full match detail: red and blue alliance team lists, final scores by alliance and component (auto, teleop, endgame, fouls), ranking points awarded, win/tie outcome, the Statbotics pre-match win probability and predicted score, and elimination flag. Match keys follow the format `<event-key>_<match-code>`, e.g. "2024flor_qm20" (qualification match 20), "2024flor_sf2m1" (semifinal 2 match 1), "2024flor_f1m3" (finals match 3). Use this to answer "who won 2024flor_qm20?", "what was the predicted vs actual score?", or to get alliance compositions for a known match. For browsing many matches, use get_matches.

NameTypeReqDescription
matchstringyesMatch key, e.g. 2024flor_qm20

No output schema declared.

No examples provided.

get_matches ~334

List FIRST Robotics Competition (FRC) matches with optional filters. Returns an array of match records (alliances, scores, predictions, EPA-based win probabilities, elim flag). Filter by `team` (every match a team played in), `year`, `event` (every match at one event), `week` (0-8), and `elim` (true for playoff/elimination matches only, false for qualifications only). Sort with `metric`/`ascending` and paginate with `limit`/`offset`. Use this to answer "show all of team 254's matches in 2024", "list every elim match at 2024cmptx", or "find the highest-scoring matches of week 6". For per-team match contributions (a team's individual EPA in a match), use get_team_matches.

NameTypeReqDescription
ascendingbooleanWhether to sort in ascending order. Default is ascending.
elimbooleanWhether the match is an elimination match.
eventstringEvent key, e.g. 2024flor
limitintegerMaximum number of results to return (1-1000). Default is 1000.
metricstringHow to sort the returned values. Any column in the table is valid.
offsetintegerOffset from the first result to return.
teamintegerTeam number (no prefix), e.g. 86
weekintegerWeek of the competition season. 8 is CMP.
yearintegerFour-digit year (2002 onwards)

No output schema declared.

No examples provided.

get_team ~186

Look up the Statbotics profile for a single FIRST Robotics Competition (FRC) team by team number. Returns lifetime/career data for that team: team name, rookie year, location (city, state/province, country), active status, current and historical EPA ratings, normalized EPA (norm_epa), career win/loss/tie record, and career win rate. Use this to answer "tell me about FRC team 254", "where is team 2056 based?", or "what is team 1678's career EPA?". The team number is the bare integer with no FRC/frc prefix (e.g. 86, not "frc86"). For per-season detail, use get_team_year. For filtering or browsing many teams, use get_teams.

NameTypeReqDescription
teamintegeryesTeam number (no prefix), e.g. 86

No output schema declared.

No examples provided.

get_team_event ~181

Get one team's performance at one specific FIRST Robotics Competition (FRC) event. Returns the team's qualification rank, qualification record (W-L-T), playoff alliance and result, EPA at this event (start, end, mean, breakdown by score component), and award list. Requires both `team` (integer, no prefix) and `event` (event key like "2024flor"). Use this to answer "how did team 2056 do at 2024onham?", "what was team 254's EPA at champs?", or "what awards did team 1114 win at their district championship?". For browsing many team-event combinations, use get_team_events.

NameTypeReqDescription
eventstringyesEvent key, e.g. 2024flor
teamintegeryesTeam number (no prefix), e.g. 86

No output schema declared.

No examples provided.

get_team_events ~434

List FIRST Robotics Competition (FRC) team-event records with flexible filters. Each row represents one team's performance at one event (rank, record, EPA, awards). Filter any combination of `team` (one team across all events), `year`, `event` (all teams at one event - great for getting an event's full team list with stats), `country`, `state`, `district`, `type` (regional, district, district_cmp, champs_div, einstein, offseason), and `week` (0-8). Sort with `metric`/`ascending` and paginate with `limit`/`offset`. Use this to answer "show every event team 254 has attended in 2024", "list all teams at 2024flor with their ranks", or "rank teams by EPA across all 2024 district championships".

NameTypeReqDescription
ascendingbooleanWhether to sort in ascending order. Default is ascending.
countrystringCapitalized country name, e.g. USA or Canada.
districtstringDistrict abbreviation. One of: ca, fch, fim, fin, fit, fma, fnc, fsc, isr, ne, ont, pch, pnw, win.
eventstringEvent key, e.g. 2024flor
limitintegerMaximum number of results to return (1-1000). Default is 1000.
metricstringHow to sort the returned values. Any column in the table is valid.
offsetintegerOffset from the first result to return.
statestringCapitalized two-letter state code, e.g. NC.
teamintegerTeam number (no prefix), e.g. 86
typestringOne of: regional, district, district_cmp, champs_div, einstein, or offseason.
weekintegerWeek of the competition season. 8 is CMP.
yearintegerFour-digit year (2002 onwards)

No output schema declared.

No examples provided.

get_team_match ~179

Get a single team's contribution to a single FIRST Robotics Competition (FRC) match - the per-robot view of one match. Returns which alliance the team was on (red/blue), the team's EPA going into the match, the team's predicted score contribution by component, and post-match outcome flags. Useful for scouting and post-match analysis: "how much did team 2056 contribute to alliance score in 2024onham_sf2m1?". Requires both `team` (integer, no prefix) and `match` (match key like "2024flor_qm20"). For listing many team-match rows, use get_team_matches.

NameTypeReqDescription
matchstringyesMatch key, e.g. 2024flor_qm20
teamintegeryesTeam number (no prefix), e.g. 86

No output schema declared.

No examples provided.

get_team_matches ~337

List per-team match contributions across many FIRST Robotics Competition (FRC) matches. Each row is one team's involvement in one match (alliance, pre-match EPA, predicted contribution, outcome). Filter by `team` (one team's entire match log), `year`, `event`, `week` (0-8), `match` (a single match key - returns one row per team in that match), and `elim` (true for elimination matches only). Sort with `metric`/`ascending` and paginate with `limit`/`offset`. Use this to build a scouting timeline ("every match team 254 played in 2024 with their EPA contribution"), compare alliance partners, or compute per-team averages over a range of matches.

NameTypeReqDescription
ascendingbooleanWhether to sort in ascending order. Default is ascending.
elimbooleanWhether the match is an elimination match.
eventstringEvent key, e.g. 2024flor
limitintegerMaximum number of results to return (1-1000). Default is 1000.
matchstringMatch key, e.g. 2024flor_qm20
metricstringHow to sort the returned values. Any column in the table is valid.
offsetintegerOffset from the first result to return.
teamintegerTeam number (no prefix), e.g. 86
weekintegerWeek of the competition season. 8 is CMP.
yearintegerFour-digit year (2002 onwards)

No output schema declared.

No examples provided.

get_team_year ~190

Get one team's performance summary for one specific FIRST Robotics Competition (FRC) season. Returns the team's EPA breakdown for that year (start, pre-playoffs, end, max, mean, ranks/percentiles), win/loss/tie record and win rate, count and list of events attended, district points, and award totals. Use this to answer "how did team 2056 do in 2023?", "what was team 254's peak EPA in 2018?", or "how many events did team 1114 attend in 2024?". Requires both team number (integer, no prefix) and a 4-digit year >= 2002. For multi-team or multi-year browsing, use get_team_years.

NameTypeReqDescription
teamintegeryesTeam number (no prefix), e.g. 86
yearintegeryesFour-digit year (2002 onwards)

No output schema declared.

No examples provided.

get_team_years ~363

List per-season FIRST Robotics Competition (FRC) team statistics with flexible filters - useful for cross-team or cross-year analysis. Returns an array of team-year records (each row is one team's stats for one season: EPA, record, ranks, awards, district points). Filter by `team` (a single team across many seasons), `year` (all teams in one season), `country`, `state`, and `district`. Combine filters - e.g. team+year is equivalent to get_team_year. Sort with `metric`/`ascending` and paginate with `limit`/`offset`. Use this to answer "show team 254 in every season", "rank all teams by EPA in 2023", or "find the strongest teams in the New England district in 2024".

NameTypeReqDescription
ascendingbooleanWhether to sort in ascending order. Default is ascending.
countrystringCapitalized country name, e.g. USA or Canada.
districtstringDistrict abbreviation. One of: ca, fch, fim, fin, fit, fma, fnc, fsc, isr, ne, ont, pch, pnw, win.
limitintegerMaximum number of results to return (1-1000). Default is 1000.
metricstringHow to sort the returned values. Any column in the table is valid.
offsetintegerOffset from the first result to return.
statestringCapitalized two-letter state code, e.g. NC.
teamintegerTeam number (no prefix), e.g. 86
yearintegerFour-digit year (2002 onwards)

No output schema declared.

No examples provided.

get_teams ~393

List FIRST Robotics Competition (FRC) teams from the Statbotics database with optional filters. Returns an array of team profiles (number, name, location, rookie year, active flag, career EPA stats, career win rate). Filter by `country` (e.g. "USA", "Canada"), `state` (two-letter code, e.g. "NC", "CA"), `district` (one of ca, fch, fim, fin, fit, fma, fnc, fsc, isr, ne, ont, pch, pnw, win), and `active` (true to limit to teams that competed in the last year). Sort with `metric`/`ascending` (e.g. metric="norm_epa", ascending=false to find the strongest active teams) and paginate with `limit`/`offset`. Use this to answer "which teams in Texas are most successful?", "list all teams in the FIM district", or "find the top 50 teams by normalized EPA".

NameTypeReqDescription
activebooleanWhether the team has played in the last year.
ascendingbooleanWhether to sort in ascending order. Default is ascending.
countrystringCapitalized country name, e.g. USA or Canada.
districtstringDistrict abbreviation. One of: ca, fch, fim, fin, fit, fma, fnc, fsc, isr, ne, ont, pch, pnw, win.
limitintegerMaximum number of results to return (1-1000). Default is 1000.
metricstringHow to sort the returned values. Any column in the table is valid.
offsetintegerOffset from the first result to return.
statestringCapitalized two-letter state code, e.g. NC.

No output schema declared.

No examples provided.

get_year ~196

Look up Statbotics season summary statistics for a single FIRST Robotics Competition (FRC) year. Returns aggregate metrics for the game played that year: EPA (Expected Points Added) percentile breakpoints (mean, median, 75th/90th/95th/99th), score component averages, foul rates, RP (ranking point) rates, and the count of teams, events, and matches recorded. Use this to answer questions like "what was the average score in the 2024 FRC season?", "what EPA put a team in the top 10% in 2019?", or to calibrate per-year scoring before comparing teams across seasons. Data is available for years 2002 onward; pre-2016 seasons have less detail because the EPA model was less granular. For comparing many seasons in one call, use get_years instead.

NameTypeReqDescription
yearintegeryesFour-digit year (2002 onwards)

No output schema declared.

No examples provided.

get_years ~236

List Statbotics season summary statistics across multiple FIRST Robotics Competition (FRC) years in a single call. Returns the same per-season aggregates as get_year (EPA percentiles, scoring averages, foul/RP rates, counts) but as an array, with optional sorting and pagination. Use this to chart trends over time, e.g. "how have average match scores evolved from 2002 to today?", "which seasons had the highest top-1% EPA?", or to dump the full season catalog for downstream analysis. Sort with `metric` (any returned column name, e.g. `epa_max`, `score_mean`) and `ascending`; paginate with `limit` (1-1000, default 1000) and `offset`.

NameTypeReqDescription
ascendingbooleanWhether to sort in ascending order. Default is ascending.
limitintegerMaximum number of results to return (1-1000). Default is 1000.
metricstringHow to sort the returned values. Any column in the table is valid.
offsetintegerOffset from the first result to return.

No output schema declared.

No examples provided.

Common questions

What is the Statbotics MCP server?

Statbotics is an MCP server listed in the public MCP registry as io.github.withinfocus/statbotics. Statbotics MCP Server. This page covers its npm package (@withinfocus/statbotics-mcp-server).

Is the Statbotics MCP server safe to use?

Statbotics scores 93 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 20 September 2026. It declares no install or post-install scripts. Its build provenance is signed and verified. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the Statbotics MCP server expose?

Statbotics exposes 14 tools: get_year, get_years, get_team, get_teams, get_team_year, and 9 more. Their descriptions and schemas cost roughly 3,861 tokens of context every time the server is loaded.

Is the Statbotics MCP server still maintained?

Statbotics is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the Statbotics MCP server under?

Statbotics declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.