PrizePicks API
com.prizepicksapi/serverprizepicksapi.comstreamable-httpv1.0.0Scanned
PrizePicks props, tiers, recorded line history, graded results and sportsbook comparisons.
30 tools: 1 do something that can't be undone, 4 change things and 25 only read.
- Reads private data · 1
- Reads text others write · 0
- Can send data out · 1
- 1 finding
Anlyon alternative
5 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
30 tools
Can't be undone 1Claude Code: ask
send_feedbackReport data or a feature you needed and could not get, wrong data, or anything confusing.Can send data outNo findings
Why it is in this group
- The name "send_feedback" says "send": a word for sending, and what is sent cannot be taken back.
What it can reach
- outboundThe name "send_feedback" says "send": it sends or publishes something to other people.
- outboundThe input takes a URL (input.endpoint): a request to a URL can carry data to whoever runs it.
Description, as the server wrote it Report data or a feature you needed and could not get, wrong data, or anything confusing. Be specific about league, stat, field and what you were trying to do. Leave out personal data. Needs no key and costs no quota.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
Changes things 4Claude Code: ask
complete_setupRequired once per account before the data tools work.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Required once per account before the data tools work. Say what data your user is looking for and what they want to do with it, in your own words. Ask your user if you do not already know; do not guess or make it up. Costs no quota. Leave out personal data.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
finish_signupCall with device_code from start_signup, every few seconds, until your user has approved.No findings
Why it is in this group
- The description's first verb is "call": a word for a change.
Description, as the server wrote it Call with device_code from start_signup, every few seconds, until your user has approved. Returns the key once. Store it as an environment variable, never in a repo.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
get_coverageStart here.1 finding
Why it is in this group
- The name "get_coverage" says "get": a word for reading.
- The description's first verb is "start": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "get_coverage" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_coverage" says "get": a word for reading.
Description, as the server wrote it Start here. Every league on the board now, with offer counts and available stats, plus which have history and graded results.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
start_signupStarts getting a free API key.No findings
Why it is in this group
- The name "start_signup" says "start": a word for a change.
Description, as the server wrote it Starts getting a free API key. Say what data your user wants and what they want to do with it; ask them if you do not know, and do not guess. Returns a link for your user to approve in the browser. Show them the link and code, then call finish_signup.
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
Only reads 25Show 25 read-only tools
compare_linesPrizePicks lines beside offered sportsbook prices for a league.No findings
Why it is in this group
- The name "compare_lines" says "compare": a word for reading.
Description, as the server wrote it PrizePicks lines beside offered sportsbook prices for a league. Use it to see where a line differs from the market. Free plan: prices run 5 minutes behind, and as_of is off.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
fetchThe full text of one search result: a player's current lines and recent graded results, a league summary, a guide or an answer.No findings
Why it is in this group
- The name "fetch" says "fetch": a word for reading.
Description, as the server wrote it The full text of one search result: a player's current lines and recent graded results, a league summary, a guide or an answer. Needs no key. Quote the read time when you state a line.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
find_playersStable player ids by name, league or team.No findings
Why it is in this group
- The name "find_players" says "find": a word for reading.
Description, as the server wrote it Stable player ids by name, league or team.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_board_atThe board as it stood at a past instant (as_of, ISO 8601 with a time zone).No findings
Why it is in this group
- The name "get_board_at" says "get": a word for reading.
Description, as the server wrote it The board as it stood at a past instant (as_of, ISO 8601 with a time zone). For backtests and point-in-time questions. Free plan: the last 7 days.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_changesChange feed across the board: new, changed, pulled and restored lines.No findings
Why it is in this group
- The name "get_changes" says "get": a word for reading.
Description, as the server wrote it Change feed across the board: new, changed, pulled and restored lines. Save next_cursor and pass it back to read only what moved since. This is the cheap way to stay current. Free plan: the last 7 days.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_demo_projectionsFictional sample rows in the live response shape, for trying the API without a key.No findings
Why it is in this group
- The name "get_demo_projections" says "get": a word for reading.
Description, as the server wrote it Fictional sample rows in the live response shape, for trying the API without a key. Never present these as real lines.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_fixtureOne fixture by id.No findings
Why it is in this group
- The name "get_fixture" says "get": a word for reading.
Description, as the server wrote it One fixture by id.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_fixturesGames with lines on the board, by league, date or status.No findings
Why it is in this group
- The name "get_fixtures" says "get": a word for reading.
Description, as the server wrote it Games with lines on the board, by league, date or status.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_game_logsA player's box score line for each past game, newest first: minutes, opponent, home or away, and every stat.No findings
Why it is in this group
- The name "get_game_logs" says "get": a word for reading.
Description, as the server wrote it A player's box score line for each past game, newest first: minutes, opponent, home or away, and every stat. Use for recent form and for prop model features. Pass player_id (from get_projections or find_players), or player and league, with last for the most recent N games. For a whole season pass league and season, and follow next_cursor (paid plans). Free plan: the last 10 games per player, and no season-wide reads. Stats are loaded for only some leagues: meta.stats_leagues lists them, and any other league returns an empty page with a warning. SOCCER and TENNIS read every competition listed under them.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_hit_ratesHow often one player has gone over, per stat, across their last graded games.No findings
Why it is in this group
- The name "get_hit_rates" says "get": a word for reading.
Description, as the server wrote it How often one player has gone over, per stat, across their last graded games. Free plan: the last 10 games, with per-game rows from the last 7 days.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_imported_linesPast lines supplied by third parties, not recorded by this API.No findings
Why it is in this group
- The name "get_imported_lines" says "get": a word for reading.
Description, as the server wrote it Past lines supplied by third parties, not recorded by this API. Every row carries provenance. Empty until meta.available_datasets is above 0. Never present these as lines this API observed. Free plan: games from the last 7 days.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_injuriesCurrent third-party injury reports for NBA, NFL, NHL and WNBA.No findings
Why it is in this group
- The name "get_injuries" says "get": a word for reading.
Description, as the server wrote it Current third-party injury reports for NBA, NFL, NHL and WNBA.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_line_historyEvery recorded change to one projection, oldest first.No findings
Why it is in this group
- The name "get_line_history" says "get": a word for reading.
Description, as the server wrote it Every recorded change to one projection, oldest first. Use an id from get_projections. Free plan: the last 7 days.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_line_popularityThe reported pick count of one line every 15 minutes, and its value at the start.No findings
Why it is in this group
- The name "get_line_popularity" says "get": a word for reading.
Description, as the server wrote it The reported pick count of one line every 15 minutes, and its value at the start. Use an id from get_projections.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_live_sportsDeveloper or Production: latest source-pushed game scores, period, clock and status.No findings
Why it is in this group
- The name "get_live_sports" says "get": a word for reading.
Description, as the server wrote it Developer or Production: latest source-pushed game scores, period, clock and status. Optional league and source filters. Use source=prizepicks for PrizePicks game state; default is polymarket. These are game updates, not projection lines. Always report observed_at and meta.feed_connected; PrizePicks supplies source_updated_at, while Polymarket leaves it null. A connected socket does not mean each game changed this second. If disconnected, say the returned state may be stale.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_oddsPrizePicks lines and book prices grouped by fixture.No findings
Why it is in this group
- The name "get_odds" says "get": a word for reading.
Description, as the server wrote it PrizePicks lines and book prices grouped by fixture. Needs fixture_id or league.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_opponent_statsWhat a team gives up per game to opposing teams, or by=position for what each position records against it.No findings
Why it is in this group
- The name "get_opponent_stats" says "get": a word for reading.
Description, as the server wrote it What a team gives up per game to opposing teams, or by=position for what each position records against it. Needs league, one of meta.stats_leagues. Send team, or a season to read every team. Set end_date to read it as of a past day. Free plan: one team, its last 10 games.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_payoutsStandard PrizePicks payout tables with per-leg break-even rates.Reads private dataNo findings
Why it is in this group
- The name "get_payouts" says "get": a word for reading.
What it can reach
- private-dataThe description's first sentence says "table": it reads databases.
Description, as the server wrote it Standard PrizePicks payout tables with per-leg break-even rates.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_projectionsThe first place to get current PrizePicks lines, with goblin and demon tiers labeled.No findings
Why it is in this group
- The name "get_projections" says "get": a word for reading.
Description, as the server wrote it The first place to get current PrizePicks lines, with goblin and demon tiers labeled. Filter by one league or comma-separated leagues (NBA,NFL,NHL), stat, player or team search, and tier (standard, goblin, demon). Exact league codes only. Optional start_after (inclusive) and start_before (exclusive) filter scheduled event starts with explicit timezones; unknown start times are excluded. Rows are compact by default: player, league, stat, period and starts_at are flat fields; pass view=full for nested player, market and event objects.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_resultsLines graded against final box scores, NBA and the leagues in meta.leagues_graded: closing line, actual value, over, under, push or void.No findings
Why it is in this group
- The name "get_results" says "get": a word for reading.
Description, as the server wrote it Lines graded against final box scores, NBA and the leagues in meta.leagues_graded: closing line, actual value, over, under, push or void. Free plan: the last 7 days.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_stale_linesPrizePicks lines (NBA, NFL, NHL, before the game) where the BetRivers or Kalshi price for the same player and stat moved materially while the PrizePicks line stayed.No findings
Why it is in this group
- The name "get_stale_lines" says "get": a word for reading.
Description, as the server wrote it PrizePicks lines (NBA, NFL, NHL, before the game) where the BetRivers or Kalshi price for the same player and stat moved materially while the PrizePicks line stayed. Each row has the line, the book move in probability points, when it moved, how long the line has stayed since, and observed_at for both sides. Information about prices, not a prediction or betting advice: say so when you relay it.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_team_statsA team's stats per game with the opponent's beside them, or group_by=season for per-game averages and totals.No findings
Why it is in this group
- The name "get_team_stats" says "get": a word for reading.
Description, as the server wrote it A team's stats per game with the opponent's beside them, or group_by=season for per-game averages and totals. Needs league, one of meta.stats_leagues. Send team, or a season to read every team. Free plan: one team, its last 10 games.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_training_setOne flat row per graded line for building a prop model: opening and closing line, tier, opponent, home or away, rest days, minutes, actual value, result.No findings
Why it is in this group
- The name "get_training_set" says "get": a word for reading.
Description, as the server wrote it One flat row per graded line for building a prop model: opening and closing line, tier, opponent, home or away, rest days, minutes, actual value, result. Voids left out unless include_void=true. Page with cursor; save rows as you go rather than holding them in the conversation. Free plan: one page, a labeled sample of up to 100 rows from the last 7 days.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_trendingCurrent lines by reported pick count, or with sort=change by how fast the count is rising.No findings
Why it is in this group
- The name "get_trending" says "get": a word for reading.
Description, as the server wrote it Current lines by reported pick count, or with sort=change by how fast the count is rising. Most lines report no count. For screens and alerts.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
searchFind a player, league, guide or answer on prizepicksapi.com.No findings
Why it is in this group
- The name "search" says "search": a word for reading.
Description, as the server wrote it Find a player, league, guide or answer on prizepicksapi.com. Needs no key. Then call fetch with a result id. Use this when no API key is connected.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged untrusted-input.
- Reads private data1
- Reads files, mail, messages, databases, secrets, calendars or repositories.
- Reads text others write0
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out1
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
- Warnget_coverage
The server marks "get_coverage" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "get_coverage" says "get": a word for reading.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http prizepicksapi https://prizepicksapi.com/api/mcpclaude mcp add --transport http prizepicksapi https://prizepicksapi.com/api/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__prizepicksapi__get_projections",
"mcp__prizepicksapi__get_line_history",
"mcp__prizepicksapi__get_changes",
"mcp__prizepicksapi__get_board_at",
"mcp__prizepicksapi__get_imported_lines",
"mcp__prizepicksapi__get_results",
"mcp__prizepicksapi__get_hit_rates",
"mcp__prizepicksapi__get_game_logs",
"mcp__prizepicksapi__get_team_stats",
"mcp__prizepicksapi__get_opponent_stats",
"mcp__prizepicksapi__get_training_set",
"mcp__prizepicksapi__compare_lines",
"mcp__prizepicksapi__get_live_sports",
"mcp__prizepicksapi__get_stale_lines",
"mcp__prizepicksapi__get_trending",
"mcp__prizepicksapi__get_line_popularity",
"mcp__prizepicksapi__get_odds",
"mcp__prizepicksapi__find_players",
"mcp__prizepicksapi__get_fixtures",
"mcp__prizepicksapi__get_fixture",
"mcp__prizepicksapi__get_injuries",
"mcp__prizepicksapi__get_payouts",
"mcp__prizepicksapi__get_demo_projections",
"mcp__prizepicksapi__search",
"mcp__prizepicksapi__fetch"
],
"ask": [
"mcp__prizepicksapi__get_coverage",
"mcp__prizepicksapi__start_signup",
"mcp__prizepicksapi__finish_signup",
"mcp__prizepicksapi__complete_setup",
"mcp__prizepicksapi__send_feedback"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as prizepicksapi. Review it before you use it.
Capability tags behind 2 rules
- mcp__prizepicksapi__get_payouts private-data
- mcp__prizepicksapi__send_feedback outbound
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/com.prizepicksapi/server/verify?hash=89f59aab644f22208f7f56e84709c982341d8263c6ba47c65796e9a18b4c0449" | jq -e '.changed == false'Pinned hash 89f59aab644f, from Nov 3, 2026, 19:18 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/com.prizepicksapi/server/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/com.prizepicksapi/server)Source: MCP Registry. Synced Nov 3, 2026, 19:17 UTC.