NFL/NBA/MLB/NHL/PGA + DFS and prediction-market data. Browse free; query with a free API key.
Do not connect
A critical issue was found. Do not connect this server as-is.
Scanned 6 days ago
A server can change after it's graded. Re-run the automated scan to refresh this report.
This grade is deterministic and reproducible: the same server surface always yields the same grade under a given algorithm version. It is a real automated assessment computed by the MCPGrade engine from what the probe actually observed — not a fabricated or opinion score. It is not a manual human pentest, so it can miss context-specific risks.
Every signal below was measured directly by the automated probe. The grade is derived only from evidence like this — nothing is assumed.
The stat-api MCP server exposes 9 tools, focused primarily on database and web capabilities. Its published description reads: "NFL/NBA/MLB/NHL/PGA + DFS and prediction-market data". It communicates over Streamable HTTP using the 2026-07-28 protocol revision, and does not require authorization to connect. MCPGrade currently rates stat-api F — a critical issue was found and the server should not be connected as-is. Its most notable findings include "Cross-tool shadowing" and "Cross-tool shadowing". This report is a deterministic, reproducible automated assessment: the same observed surface always yields the same grade under a given algorithm version, and it is refreshed as new scans arrive and free to read — but it is not a substitute for a manual human security review. Always re-check stat-api's advertised tools, transport security, and authorization posture before connecting an autonomous agent or sharing sensitive context with it.
Add stat-api to an MCP client using the endpoint below. Review the grade and findings above before granting an autonomous agent access.
MCP endpoint
https://api.stat-api.com/mcpStreamable HTTP transport. This is the MCP endpoint, not a website — paste it into your MCP client server list rather than a browser.
Captured passively during the read-only scan. Click any value to find servers that match it.
The tools this server advertises via tools/list — names, purposes, and the parameters each accepts, exactly as enumerated read-only.
List every league/data group this API serves (nfl, nba, mlb, nhl, pga, dfs, kalshi, polymarket, reference) with table counts and availability. No credentials needed. Start here, then call list_tables.
List every queryable table in one league with a one-line summary each. No credentials needed. Follow with describe_table before querying.
Full contract for one table: fields with types and descriptions, the filters query_table accepts (with operators like __gte/__lte/__between/__like and required filter combinations), page-size limits,
Query any table. Returns `{"<table>": [rows], "limit": N, "next_from_id": M|null}`; page by re-calling with from_id set to the previous next_from_id until it is null. filters is a flat object of `fiel
Sorted worst-first. Each finding shows its severity, what it means, its OWASP MCP Top-10 mapping, and a recommended fix — the check id links to the exact methodology row that produced it.
tool: list_leagues
A tool description tries to alter the model’s use of another tool.
here, then call list_tables.RecommendationDescriptions must describe only their own tool.
tool: list_tables
A tool description tries to alter the model’s use of another tool.
ed. Follow with describe_table before querying.RecommendationDescriptions must describe only their own tool.
tool: describe_table
A tool description tries to alter the model’s use of another tool.
ns, the filters query_table accepts (with operators like __gte/__lte/__betwRecommendationDescriptions must describe only their own tool.
tool: describe_table
The text tells the model WHEN to call this tool relative to others ("always call first", "before any other tool", "chain to X tool") — a toxic-flow injection that hijacks the agent’s orchestration rather than describing the tool.
entials needed. Always call this before query_table — filters not listed here are rejecRecommendationTool metadata must describe only the tool, never sequence the agent’s calls.
tool: query_table
A tool description tries to alter the model’s use of another tool.
__op` keys from describe_table (e.g. {"season_id": 2024, "day__between": "2025RecommendationDescriptions must describe only their own tool.
tool: search_players
A tool description tries to alter the model’s use of another tool.
name filter via query_table. Returns player rows ordered by match quality.RecommendationDescriptions must describe only their own tool.
tool: games_on_date
A tool description tries to alter the model’s use of another tool.
ame envelope as query_table on the games table. NFL is week-based, not dateRecommendationDescriptions must describe only their own tool.
tool: graphql_query
A tool exposes a free-text/webhook/feedback parameter with no honest purpose — a classic exfil channel.
dl. Requires an API key; every row resolved anywhere in the tree countsRecommendationRemove side-channel parameters; constrain tool inputs.
tool: graphql_query
A tool description tries to alter the model’s use of another tool.
is huge) — use describe_table instead; the SDL is at https://api.stat-api.comRecommendationDescriptions must describe only their own tool.
tool: graphql_query
A database tool exposes a query/sql parameter that is a free-form string with no allow-list or parameterisation constraint — a raw-string injection surface. A tool exposing structured filters or an `enum` of named queries does not fire.
unconstrained query parameter "query"RecommendationExpose parameterised operations instead of a raw query string; never build queries from unvalidated model output.
tool: (server instructions)
A tool description tries to alter the model’s use of another tool.
ries. Workflow: list_leagues → list_tables(league) → describe_table(league,RecommendationDescriptions must describe only their own tool.
The server accepts tool enumeration (and likely invocation) with no authentication.
RecommendationRequire OAuth 2.1 authorization for any server exposing non-public tools.
tool: query_table
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "query_table"RecommendationScope tools to the minimum needed.
tool: graphql_query
The server advertises open-world / broadly-scoped capabilities.
no annotations on write-capable tool "graphql_query"RecommendationScope tools to the minimum needed.
Vantaj uptime monitoring via MCP — manage monitors, heartbeats, incidents, and status pages.
Unified gateway to Algeria's TKAWEN ecosystem: commerce, certification, and AI tools.
Provides access to the Cohereon Doctrine AI safety framework with governance components, tiered access, and agent onboarding.
Agentic rails for complex workflows with receipts, fees, and MCP tool access.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
Structural TC39 spec lookup for ECMA-262 and ECMA-402 in AI agents, SHA-pinned and offline-first.
Fetch a single row by primary key. Returns the row object. Requires an API key; costs 1 record of quota.
Fuzzy player-name search (typo-tolerant). Currently NBA only — for other leagues query the players table with a name filter via query_table. Returns player rows ordered by match quality. Requires an A
Games scheduled/played on one calendar date (US-Eastern) for nba, mlb, or nhl; defaults to today. Returns the same envelope as query_table on the games table. NFL is week-based, not date-based — for n
Run a GraphQL query against the same data with relations — nest from a game to its teams/players/odds in one call. Root fields are leagues (nfl, nba, …), each exposing its tables with the same filter
Your key's quota position: plan, monthly record limit, records used, remaining, and when the quota resets. Requires an API key; costs 1 record.