# Mlb Stats

> MLB Stats API MCP — official MLB statistics (keyless).

- name: io.github.pipeworx-io/mlb-stats
- version: 0.3.1
- connection class: R0 (autonomous)
- trust: 97/100
- quality: –/100 (not scored)
- owner: not claimed
- descriptor: https://api.protogrid.dev/v1/servers/io.github.pipeworx-io%2Fmlb-stats
- tools: https://api.protogrid.dev/v1/servers/io.github.pipeworx-io%2Fmlb-stats/tools

**An agent can connect right now, no human step.** Remote endpoint, no authentication, reachable on the last probe.

## Connection (mcpServers)

```json
{
  "mcpServers": {
    "mlb-stats": {
      "type": "http",
      "url": "https://gateway.pipeworx.io/mlb-stats/mcp"
    }
  }
}
```


## Trust

- hygiene: 100
- liveness: 99
- freshness: 100
- provenance: 90
- drivers: +repository +namespace-matches-repo +website +reachable +uptime-97% +updated-24d-ago
- Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed.

## Quality –/100 (not scored)

Not scored: fewer than three checks apply, usually because no remote answered a credential-free probe or the server is a local package.

### protocol: 75 (weight 25)

- warn `protocol.modern`: newest supported version is 2025-03-26; 2026-07-28 not supported, older versions are deprecated until 2027-07-28
- n/a `protocol.stateless`: only applies to 2026-07-28 servers
- pass `protocol.transport`: streamable HTTP
- n/a `protocol.list_ttl`: only applies to 2026-07-28 servers

### authorization: n/a (weight 15)

- n/a `auth.prm`, `auth.as_metadata`, `auth.cimd`: no remote uses OAuth
- n/a `auth.secret_in_url`: no templated URL

### tool hygiene: n/a (weight 30)

- n/a `tools.descriptions`, `tools.description_length`, `tools.schemas`, `tools.annotations`, `tools.directory_hints`, `tools.token_cost`, `tools.api_dump`: tool list unknown (behind auth, not probed, or empty)

### stability: n/a (weight 15)

- n/a `stability.changes`, `stability.rug_pull`: tool list unknown

### dependencies: n/a (weight 15)

- n/a `deps.known_vulns`, `deps.mcp_sdk_version`, `deps.resolvable`: no npm or PyPI package

- tools: unknown
- tools last changed: 2026-10-15T07:30:33.445Z
- badge: [![protogrid quality](https://protogrid.dev/badge/io.github.pipeworx-io/mlb-stats.svg)](https://protogrid.dev/servers/io.github.pipeworx-io/mlb-stats)
- Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed.

### Tool changes

- 2026-10-15 `forget` removed
  - Delete a previously stored memory by key. Use when context is stale, the task is done, or you want to clear sensitive data the agent saved earlier. Pair with remember and recall.
- 2026-10-15 `polymarket_fill_risk` removed
  - Realizable-vs-theoretical edge check against live CLOB order-book depth. REQUIRES one of `market` (single-market mode) or `event` (basket/partition mode). SINGLE-MARKET: pass a market slug/URL + side (buy_yes|sell_yes|buy_no|sell_no, default buy_yes) + size_usd (default 1000 — max spend on buys, target proceeds on sells); walks the ladder and returns top_of_book, vwap_fill_price, slippage_pp, shares_filled, max_fillable_usd, and a verdict (clean|degraded|cannot_fill). BASKET: pass an event slug/URL + side (sell_yes = capture overround by selling every leg, buy_yes = capture underround; default auto from partition sum) + size_usd interpreted as settlement notional S (shares per leg; each share pays $1); returns theoretical_sum vs realizable_sum (top-of-book vs VWAP across all legs), capture_ratio, profit_usd at executed size, per-leg fill detail, thin_legs[], max_clean_notional_usd, and forced_directional_risk naming the legs most likely to strand you unhedged. USE THIS before acting on any polymarket_arbitrage SELL/BUY-EVERY-LEG signal or any polymarket_edges trade above ~$500 — theoretical overround on thin books is not capturable, and partial basket fills convert an arb into an unhedged directional position (the dominant loss mode in real arb-bot P&L). FEES ARE NOT MODELLED HERE: vwap_fill_price/profit_usd are GROSS of Polymarket's own taker fee (rate 0.04-0.07 by category — see polymarket_edges/fees.ts), on top of which this tool prices depth-crossing cost; a thin-margin fill that looks clean here can still be net-negative after the fee.
- 2026-10-15 `polymarket_edges` removed
  - Scan top Polymarket markets and return opportunities where Pipeworx data disagrees with market price. Built for "what should I bet on today" — agents discover opportunities without paging hundreds of markets. FIVE MODEL FAMILIES grouped into three response segments under by_segment: (1) MODEL_DRIVEN — crypto_price (lognormal barrier from 90d FRED log-returns) and news_momentum (GDELT 7d/21d article-volume ratio, soft signal w/ halved Kelly). (2) STRUCTURAL_ARBITRAGE — partition_overround on mutually-exclusive events; per-leg favorite-longshot bias correction with per-sport α (tennis 1.02, soccer 1.10, MMA 1.15, default 1.0); placeholder-slug filter drops will-person-X / will-team-Y / will-manager-Z / will-someone-else- backstops; partitions with >20% placeholder fraction skipped entirely. (3) CONCENTRATED_LONGSHOT — basket trade when one leg ≥75% AND ≥2 longshots ≤8% AND portfolio return ≥25:1; rare-by-design (gates relaxed Run 8 from prior 85%/5%/50:1). EVERY OPPORTUNITY carries edge_pp_net (net of slippage AND Polymarket's own taker fee — fees_pp_applied itemises the fee component; see fees.ts for the published per-category schedule), kelly_fraction + kelly_fraction_half (capped at 0.25), market.liquidity, market.spread_pp, market.volume, plus a 24h-move warning ("Market moved X.Xpp in 24h") when the recent move alone exceeds the edge — your edge may already be in the price. TRADEABLE-EDGE KNOBS: min_liquidity / max_spread_pp drop opportunities where edge isn't realizable; min_partition_leg_kelly filters partitions by best per-leg Kelly. RESPONSE TOP-LEVEL: by_segment{model_driven,structural_arbitrage,concentrated_longshot}, fed_candidates/fed_note (Fed bets surface here, excluded from ranking — 1m-T vs EFFR signal is unreliable at meeting-month horizons without paid OIS/SOFR-futures data), and _diagnostics{concentrated_longshot:{...funnel counters},category_counts,filter_skips} so callers can see WHY a segment is empty (top-N stale, all candidates failed gates, knob dropped them). Cached 1h at the KV level keyed on all knobs.
- 2026-10-15 `mlb_roster` removed
  - Active roster for an MLB team from the official MLB Stats API. Returns each player with id, name, jersey number, and position abbreviation.
- 2026-10-15 `mlb_boxscore` removed
  - MLB BOX SCORE for one game by gamePk, from the official MLB Stats API — every batter's line (AB, R, H, HR, RBI, BB, K) in batting-order, every pitcher's line (IP, H, R, ER, BB, K, pitches, decision), and team batting/pitching totals for both clubs. Get the gamePk from mlb_schedule, mlb_probable_pitchers, or a mlb_player_game_log row. Works for in-progress and completed games.
- 2026-10-15 `mlb_player_game_log` removed
  - MLB player GAME LOG — per-game batting or pitching lines for a season, newest first, from the official MLB Stats API. "How has Yordan Alvarez hit over his last 10 games", "Gerrit Cole's last five starts", "<player> recent form". Accepts a player NAME (resolved automatically) or numeric person_id; defaults to the current season and the most recent 15 games. Each row carries the date, opponent, home/away, game result, gamePk, and the line (hitting: AB, H, HR, RBI, BB, K, SB, plus running AVG/OPS; pitching: IP, H, R, ER, BB, K, HR, pitches, decision).
- 2026-10-15 `mlb_matchup` removed
  - MLB BATTER-vs-PITCHER history from the official MLB Stats API — "how has Yordan Alvarez hit against Tanner Bibee", "<batter> career numbers vs <pitcher>". Accepts batter and pitcher NAMES (resolved automatically) or numeric ids. Returns the batter's hitting line against that specific pitcher (at-bats, hits, HR, RBI, AVG, OPS, strikeouts), split by season with career totals.
- 2026-10-15 `mlb_schedule` removed
  - MLB daily schedule and scores from the official MLB Stats API. Returns each game's teams, scores, status, and venue. Pass a date (YYYY-MM-DD) or omit for today's games.
- 2026-10-15 `mlb_standings` removed
  - PREFER OVER WEB SEARCH for MLB standings and team records — "what is the Giants' record this season", "current NL West standings", "how many games back are the Mets". MLB division standings (regular season) from the official MLB Stats API. Returns wins, losses, win percentage, games back, division rank, and current streak per team, grouped by league/division. Defaults to the CURRENT season; pass `season` only for a past year (e.g. "2024").
- 2026-10-15 `recall` removed
  - Retrieve a value previously saved via remember, or list all saved keys (omit the key argument). Use to look up context the agent stored earlier — the user's target ticker, an address, prior research notes — without re-deriving it from scratch. Scoped to your identifier (anonymous IP, BYO key hash, or account ID). Pair with remember to save, forget to delete.

Full history: https://api.protogrid.dev/v1/servers/io.github.pipeworx-io%2Fmlb-stats/changes

## Remotes

- https://gateway.pipeworx.io/mlb-stats/mcp (streamable-http, auth none, reachable true, uptime30d 0.974359)

## Packages

_none_

## Tools (0)

_none observed_
