sharpapi-mcp
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| SHARPAPI_KEY | Yes | Your SharpAPI key. Get a free key at https://sharpapi.io |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_sportsA | List the sports SharpAPI covers, with live and upcoming event counts for each. Call this first to discover valid sport ids for the other tools. |
| list_sportsbooksA | List the sportsbooks SharpAPI normalizes, with their ids. Use the returned ids for the |
| list_eventsA | List events (games) with ids, start times and teams. Use this to find an event id before fetching odds for it. |
| get_oddsA | Get normalized odds across sportsbooks. Returns American and decimal prices plus implied probability, one row per book/market/selection, so prices are directly comparable between books. Results are paginated at 100 rows by default; pass the cursor from pagination.next_cursor to fetch the next page when pagination.has_more is true. |
| get_best_oddsB | Get the best available price per selection across all covered books. This is the line shopping view: one row per selection rather than one per book. |
| get_arbitrageB | Find cross-book arbitrage opportunities: sets of prices whose combined implied probability is under 100%, so backing every outcome locks a margin. Requires a Hobby plan or above. |
| get_evB | Find positive expected value (+EV) bets: prices that beat the fair probability implied by the wider market. Each opportunity carries a fairProbability field, which is the de-vigged number. Requires a Pro plan or above. |
| get_middlesC | Find middle opportunities: two prices on opposite sides with a gap where both bets can win. Sorted by quality unless told otherwise. |
| get_event_oddsA | Get all odds for a specific event across every covered sportsbook. Returns the complete set of rows for that event in one call — no pagination. Use list_events to find event ids. To narrow by book, pass sportsbook. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 9 tools
The analytics tools (get_arbitrage, get_ev, get_middles) and discovery tools (list_sports, list_sportsbooks, list_events) each have clearly distinct purposes. The main soft spot is the odds trio: get_odds, get_event_odds, and get_best_odds all return prices, and an agent must read carefully to know that get_odds is paginated/book-row oriented, get_event_odds is event-scoped and unpaginated, and get_best_odds collapses to one row per selection.
All nine tools follow a clean snake_case verb_noun convention (get_*/list_*), with consistent resource naming (odds, event_odds, best_odds, sports, sportsbooks, events). No style mixing or vague verbs.
Nine tools is well within the ideal 3-15 range and each one earns its place: three discovery tools, three odds retrieval views, and three betting-analysis views. Nothing feels redundant or bolted on.
The surface covers the core lifecycle: discover sports/books/events, fetch normalized odds, and derive best-price, arbitrage, EV, and middle views. Minor gaps exist — there is no dedicated market/selection listing tool (markets only appear implicitly in odds rows), no line-movement or historical odds, and no tool to check plan/quota despite several tools being plan-gated.