Skip to main content
Glama
Sharp-API

sharpapi-mcp

Official
by Sharp-API

SharpAPI MCP Server

Listed on mcpservers.org

MCP server for SharpAPI. Exposes live sports betting odds, +EV, arbitrage and middles as Model Context Protocol tools, for compatible AI applications to query sports betting data.

Uses the official TypeScript SDK, @sharp-api/client, for HTTP requests.

Install

Install from GitHub:

npx github:Sharp-API/SharpAPI-MCP

The npm package is not published yet. Once it is:

npm install -g @sharp-api/mcp-server

Related MCP server: MCP Prediction Markets

Configure

Set SHARPAPI_KEY in the environment. Get a free key at https://sharpapi.io; the free tier serves DraftKings and FanDuel at 12 requests/min with no card.

The key is read from the environment only. There is deliberately no way to pass it as a tool argument: tool arguments are model-generated and end up in transcripts and logs.

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "sharpapi": {
      "command": "sharpapi-mcp",
      "env": { "SHARPAPI_KEY": "sk_your_key_here" }
    }
  }
}

Tools

tool

what it does

plan

list_sports

Sports covered, with live/upcoming counts. Start here to find valid sport ids.

any

list_sportsbooks

Book ids for the sportsbook argument.

any

list_events

Events with ids, start times, teams.

any

get_odds

Normalized odds across books: American, decimal, implied probability.

any

get_best_odds

Best price per selection across books. The line-shopping view.

any

get_arbitrage

Cross-book arbitrage: combined implied probability under 100%.

Hobby+

get_ev

+EV bets against fair probability. Carries fairProbability, the de-vigged number.

Pro+

get_middles

Two-sided gaps where both bets can win.

any

The API enforces plan requirements. The server returns API errors unchanged, including details about the required tier.

There is no separate no-vig tool. SharpAPI does not expose de-vigged odds as its own endpoint; the fair number arrives as fairProbability on each get_ev opportunity.

Notes

  • Tool errors are returned with isError so clients can handle rate limits and plan requirements.

  • Diagnostics are written to stderr; stdout is reserved for the MCP protocol.

License

MIT

Available Tools

8 tools
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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sportNo
leagueNo
min_profitNoMinimum profit percent, e.g. 1.5

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses the plan requirement and the core calculation, but does not mention side effects, read-only status, rate limits, or behavior when no arbitrage exists. This is partial but not comprehensive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler: the first defines the tool's core behavior and the second adds the plan requirement. Information is front-loaded with the verb and resource.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has no output schema and no annotations, and the description omits parameter descriptions and return format. It gives enough concept but not enough operational detail for an agent to call it correctly with filters and interpret results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 25%, and the description adds no parameter-level meaning. 'limit', 'sport', and 'league' are left undocumented in both schema and description, so the description fails to compensate for the low coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Find') and a clear resource ('cross-book arbitrage opportunities'), and defines the concept precisely with the combined implied probability under 100%, distinguishing it from sibling tools like get_ev and get_middles which target different edge concepts.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implicitly indicates use when arbitrage is sought, but does not contrast with sibling tools or state exclusions. The only explicit usage guidance is the plan requirement ('Requires a Hobby plan or above'), which is a constraint, not an alternative-selection rule.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_best_oddsA

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
eventNo
limitNo
sportNo
leagueNo
marketNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. It does disclose that the tool aggregates across all covered books, but it does not mention side effects, data freshness, pagination behavior, or whether it is a read-only operation. The basic query nature is implied but not explicit.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences. It delivers the core functionality and the key differentiator without any redundant or filler content.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

While the purpose is clear, the description lacks any explanation of parameter usage or expected return format beyond the single-row-per-selection hint. There is no output schema, so the description must compensate, but it does not provide enough detail for an agent to confidently use the tool without additional context.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All five parameters (event, limit, sport, league, market) have no descriptions in the schema. The tool description provides no explanation of what these parameters mean or how they affect the query. With 0% schema description coverage and no compensatory text, the parameters are entirely opaque.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: retrieving the best available price per selection across all covered books. It explicitly distinguishes itself from a per-book view, which sets it apart from sibling tools like get_odds.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description effectively contrasts this tool with the alternative per-book view ('one row per selection rather than one per book'), making it clear when to use this over get_odds. However, it does not explicitly state 'use this when you need best odds' or mention other alternatives.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sportNo
leagueNo
min_evNoMinimum EV percent, e.g. 2
sportsbookNo

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the burden of behavioral disclosure. It adds useful context: opportunities include a de-vigged fairProbability field and the tool requires a Pro plan. However, it omits other behavioral details such as output shape, pagination, defaults, or whether filtering is required, so it is only partially transparent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The definition is tight and front-loaded: the main purpose is in the first sentence, followed by a clarifying field explanation and the access requirement. No sentence is wasted, and the length is appropriate for the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Despite having five optional parameters, no output schema, no annotations, and several siblings, the description only explains the core concept and the fairProbability field. It does not specify how the filter parameters behave, what the response looks like, or how this tool relates to alternatives, leaving too much for the agent to infer.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 20%, and the description adds virtually no parameter-level meaning. The tool description does not explain limit, sport, league, sportsbook, or min_ev beyond what the schema already provides for one parameter. Since the description must compensate for poor schema coverage and does not, this is a significant gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly identifies the tool's job: finding +EV bets, with a specific definition ('prices that beat the fair probability implied by the wider market'). It is more specific than a tautology and the +EV concept separates it from siblings like get_arbitrage or get_best_odds, though it does not explicitly name any sibling.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The only usage-related note is the Pro plan requirement, which is a prerequisite rather than guidance on when to choose this tool over alternatives. It does not mention when to use this tool versus get_odds, get_best_odds, or get_arbitrage, and provides no exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_middlesA

Find middle opportunities: two prices on opposite sides with a gap where both bets can win. Sorted by quality unless told otherwise.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNo
limitNo
sportNo
leagueNo
marketNo
min_sizeNoMinimum middle width in points

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the transparency burden. It adds useful default-sort behavior ('Sorted by quality unless told otherwise') and clarifies the win condition for a middle. It does not disclose output shape, pagination, or data availability, but for a read-only 'get' tool this is not severely deficient.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: the first states the operation with a definition, and the second states the default ordering. There is no redundant detail or repetition of the schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has six optional parameters and no output schema, and most parameters receive no semantic explanation. The description defines the domain and default sort but does not cover filter usage, limit behavior, or what result shape to expect, so an agent cannot fully judge output without guessing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 17%, so the description must compensate. It only explains the default sort behavior, mapping to the sort parameter, and leaves limit, sport, league, market, and min_size semantically unexplained by either the schema or the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Find') and resource ('middle opportunities') and defines the concept precisely as two prices on opposite sides with a gap where both bets can win. This clearly distinguishes middles from sibling tools like get_arbitrage or get_odds, even without naming them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use is implied: call this tool when you want middle opportunities. However, it gives no explicit when-to-use versus alternatives such as get_arbitrage or get_ev, and no conditions that disfavor this tool.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
liveNoOnly in-play markets
eventNoEvent id from list_events
limitNo
sportNoSport id from list_sports
leagueNo
marketNoe.g. "moneyline", "spread", "total"
sportsbookNoRestrict to one book id

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description must carry behavioral disclosure. It does reveal the normalization behavior and the output row structure, which is useful. But it does not disclose defaults, edge cases, staleness, pagination, or how filters like live/limit/sportsbook actually affect results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The first sentence states the core action and scope; the second explains the output format and its value. Every word contributes to an agent's ability to understand and invoke the tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives a solid overview of what is returned, which matters because there is no output schema. However, with 7 optional filter parameters and no annotations, it does not explain default behavior (e.g., if no sportsbook or event is specified), nor why an agent would choose this over sibling odds-focused tools. More usage or filter-relationship guidance would make it complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 71%, so most parameters already have descriptions in the schema. The tool description adds little parameter-specific meaning; it only clarifies that results are row-per-book, which is output semantics rather than parameter guidance. The baseline of 3 is appropriate given the high schema coverage.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource: 'Get normalized odds across sportsbooks.' It further clarifies the output granularity ('one row per book/market/selection'), which distinguishes it from sibling tools like get_best_odds without needing to open their schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrasing 'so prices are directly comparable between books' implies the tool is meant for comparing odds across sportsbooks, which gives some usage context. However, it does not explicitly state when to use this tool over get_best_odds, get_arbitrage, or other siblings, nor does it mention any exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_eventsA

List events (games) with ids, start times and teams. Use this to find an event id before fetching odds for it.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoISO date, e.g. "2026-09-08"
liveNoOnly events currently in play
limitNo
sportNoSport id from list_sports, e.g. "baseball"
leagueNoLeague id, e.g. "mlb"

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

There are no annotations, so the description carries the behavioral disclosure burden. It reveals that the tool returns ids, start times, and teams, which is useful. However, it does not describe default date behavior, filtering semantics, response shape, pagination, or sorting, leaving notable behavioral gaps for a list tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The first sentence states the operation and outputs; the second gives the practical use case. Every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only listing tool with five optional parameters and no output schema, the description names purpose, usage, and returned fields, which covers most of what an agent needs. It does not mention defaults for date/limit or whether the response is an array, but the schema supplies parameter details and the tool is low complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 80%, so the baseline is 3. The description adds no parameter-level meaning beyond the schema; it only frames the overall use case. The limit parameter lacks a schema description and the description does not compensate for it, but the min/max constraints in the schema provide some guidance.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('List events (games)') and names the key returned fields: ids, start times, teams. It also states the main use case (finding an event id before fetching odds). It doesn't explicitly contrast with sibling list tools like list_sports or list_sportsbooks, so it misses the top score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear usage context: 'Use this to find an event id before fetching odds for it.' This tells an agent when to reach for this tool and how it fits into the odds workflow. It does not mention alternatives or exclusion conditions, so it falls short of full guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the burden of behavioral disclosure. The 'list' verb implies a read-only operation, and the description discloses that output includes live and upcoming event counts. However, it does not explicitly state that no data is modified or describe any edge-case behavior, though these gaps are minor for a simple list tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is exactly two sentences with no wasted words. The core function and output content are front-loaded in the first sentence, and the usage directive is placed in the second, making it immediately actionable for an agent.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity, zero parameters, and no output schema, the description provides enough detail about what the tool returns (sports with live/upcoming counts) and how to use it (call first for valid ids). Nothing critical is missing for an agent to invoke it correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the input schema trivially covers semantics. The description adds value by explaining that the output provides valid sport ids for use in other tools, which implicitly clarifies why no parameters are needed for this discovery call.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's verb ('List'), resource ('sports SharpAPI covers'), and distinguishing output (live and upcoming event counts). It also frames the tool's role as the discovery entry point for valid sport ids, distinguishing it from sibling tools like list_events or list_sportsbooks.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The guidance 'Call this first to discover valid sport ids for the other tools' explicitly tells the agent when to use this tool and positions it before the sibling tools. It does not name specific alternatives, but for a zero-parameter discovery tool, the sequencing instruction provides sufficient usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_sportsbooksA

List the sportsbooks SharpAPI normalizes, with their ids. Use the returned ids for the sportsbook argument elsewhere. Which books a key can actually read depends on its plan: the free tier serves DraftKings and FanDuel only.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It discloses that availability is plan-dependent and mentions the free-tier limitation, which is a behavioral trait not otherwise visible. The verb 'List' implies a read-only operation, though it doesn't explicitly state side-effect-free behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two concise sentences: the first states what the tool does, the second supplies usage guidance and plan caveats. No filler, front-loaded with the primary purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter list tool with no output schema, the description is complete: it explains what is listed, what the ids are for, and how plan restrictions affect results. An agent can call this tool correctly and understand its role within the sibling ecosystem.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool has zero parameters, so the schema fully covers parameter meaning by having none. The description adds value by explaining how the resulting ids feed into another argument, which is relevant even though this tool takes no inputs.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('List'), a specific resource ('sportsbooks SharpAPI normalizes'), and the key detail that ids are included. It clearly differentiates from siblings like list_sports and list_events by naming the domain object.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear operational context: returned ids should be used for the 'sportsbook' argument elsewhere, and plan-based access limits are explained. It doesn't mention explicit alternatives or when-not-to-use, but the guidance is concrete and useful.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv0.1.0
    • First observedget_arbitrage
    • First observedget_best_odds
    • First observedget_ev
    • First observedget_middles
    • First observedget_odds
    • First observedlist_events
    • First observedlist_sports
    • First observedlist_sportsbooks

TDQS

A3.7/5.0

Scored across 8 tools

Disambiguation4/5

The list_* tools are clearly distinct, and get_arbitrage, get_ev, and get_middles each target a unique betting opportunity type. However, get_odds and get_best_odds have similar names and both return odds, so an agent could initially confuse raw normalized odds with the line-shopping view.

Naming Consistency5/5

Tool names follow a clean and predictable pattern: list_* for discovery endpoints and get_* for odds/opportunity lookups. Even the abbreviated get_ev fits the naming scheme, and all names use consistent snake_case formatting.

Tool Count5/5

Eight tools is well-scoped for a sports betting odds API. The set covers discovery, odds retrieval, and specialized betting opportunity searches without unnecessary bloat or missing critical endpoints.

Completeness4/5

The toolkit covers the core workflow: discover sports and sportsbooks, find events, fetch normalized odds, and analyze opportunities. Minor gaps exist, such as no dedicated event-detail endpoint or historical odds endpoint, but these are not severe for the stated purpose.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Enables AI assistants to access sports betting odds data from 265+ bookmakers across 34 sports, including events, odds, historical data, arbitrage, and value bets.
    22
    257 npm
    1
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides search, trending, odds, arbitrage, and category browsing for prediction markets (Polymarket & Kalshi) via the Model Context Protocol, enabling AI agents to access live market data without API keys.
    5
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables fetching sportsbook odds, live scores, and event information across 70+ books and 30+ leagues, with tools to list sports, get scores, and discover events.
    191 npm
    MIT