Developers · MCP
Connect an AI assistant
BetCrypto runs a remote MCP server, so an AI assistant can look up odds from every venue we track and compare them — and, with Premium, chart price history, find price gaps and follow whale trades. It calls the same API, under the same tiers and quota.
Two addresses
Both reach the same server and tools. They differ in how your assistant proves who it is.
Start here: no account needed
https://betcrypto.now/mcpThe address to add. The free tools answer at once, with no account. When your assistant calls a Premium tool, Claude asks you to sign in to BetCrypto, then carries on as your account. Clients that let you set headers can send an API key as an Authorization: Bearer header instead.
Sign in
https://betcrypto.now/mcp/accountYour assistant signs you in to BetCrypto as soon as it connects, then acts as your account: the free tier, or Premium if your account has it. Use this one for ChatGPT, Claude Code, Cursor and VS Code, which sign in when they connect.
Set up your assistant
Claude — web, desktop and mobile
In Claude, open Customize → Connectors, choose + and then Add custom connector, and paste the address below. The free tools work straight away; the first time you ask for something Premium, Claude shows a Connect button to sign in to BetCrypto. On Team and Enterprise plans, an owner adds it under Organization settings → Connectors first.
https://betcrypto.now/mcpChatGPT
Turn on developer mode in ChatGPT's settings (on the web, for Plus, Pro, Business, Enterprise and Education plans), then create an app for a remote MCP server: paste the sign-in address and choose OAuth — or the keyless address with no authentication.
OpenAI's developer mode guide ↗Claude Code
Add the sign-in address, then run /mcp inside Claude Code and follow the steps in your browser to sign in:
claude mcp add --transport http betcrypto https://betcrypto.now/mcp/accountOr send an API key instead of signing in:
claude mcp add --transport http betcrypto https://betcrypto.now/mcp \
--header "Authorization: Bearer $BETCRYPTO_API_KEY"Cursor
Add this to ~/.cursor/mcp.json, or to .cursor/mcp.json in a project. Cursor signs in with OAuth when it connects:
{
"mcpServers": {
"betcrypto": {
"url": "https://betcrypto.now/mcp/account"
}
}
}Or send an API key read from your environment:
{
"mcpServers": {
"betcrypto": {
"url": "https://betcrypto.now/mcp",
"headers": {
"Authorization": "Bearer ${env:BETCRYPTO_API_KEY}"
}
}
}
}VS Code
Add this to .vscode/mcp.json, or to your user configuration (MCP: Open User Configuration). VS Code opens a browser to sign in the first time it connects:
{
"servers": {
"betcrypto": {
"type": "http",
"url": "https://betcrypto.now/mcp/account"
}
}
}Or send an API key, which VS Code asks for once and stores securely:
{
"inputs": [
{
"type": "promptString",
"id": "betcrypto-api-key",
"description": "BetCrypto API key",
"password": true
}
],
"servers": {
"betcrypto": {
"type": "http",
"url": "https://betcrypto.now/mcp",
"headers": {
"Authorization": "Bearer ${input:betcrypto-api-key}"
}
}
}
}Other clients
Any client that supports remote MCP servers over Streamable HTTP works. Give it either address and, if it lets you set headers, Authorization: Bearer with your API key.
Things to ask
Once it's connected, ask in your own words and the assistant picks the tools. For example:
- “What are the odds the Fed cuts rates at its next meeting, and where is it cheapest to buy?”Uses search_eventsget_event
- “Which NFL games kick off today in New York, busiest in the last 24 hours first?”Uses search_events
- “Where do the prediction-market venues disagree most right now?”Uses search_events
- “Summarise today's prediction-market brief.”Uses get_market_news
- “How have the odds on Bitcoin reaching $150k moved on each venue this month?”Uses search_eventsget_price_history
- “Find price gaps that still make money after fees and pay back within a week.”Uses find_price_gaps
- “What were the biggest whale trades in the last 24 hours?”Uses list_whale_trades
Tools
Premium tools are listed to everyone. Called before you have signed in, they ask your assistant to sign you in; called without Premium, they answer with what Premium adds and what it costs, for the assistant to pass on.
search_events
KeylessFind events by words, category, venue, kickoff day or volume, with each one's most likely outcomes and their consensus probability.
querystring- Words in the event title or its tags.
statusstring- The market's lifecycle, not the game's: upcoming, live, ended or settled. Leave it out for everything still open.One of
upcomingliveendedsettled game_statusstring- The game itself: scheduled, in_progress or final. Events that aren't games drop out.One of
scheduledin_progressfinal categorystring- A category slug from list_categories. Sub-categories are included.
platformstring- One or more venue slugs from list_platforms, comma-separated. Matches any of them unless platform_match is all.
platform_matchstring- any (the default), or all: only events listed on every venue in platform.One of
anyall kickoff_daystring- Only games kicking off today, tomorrow or in the week (today and the next six days), read in timezone, games under way included. Events without a kickoff drop out.One of
todaytomorrowweek kickoff_fromstring- Only games kicking off at or after this date or date-time, read in timezone.
kickoff_tostring- Only games kicking off at or before this date or date-time, read in timezone. A bare date runs to its end.
timezonestring- The IANA timezone dates are read in and kickoff_local is given in, such as America/New_York. Defaults to UTC.
min_volume_usdnumber- Only events with at least this much lifetime volume, in USD, across venues.
sortstring- Lifetime volume (the default), volume in the last 24 hours, soonest kickoff, newest, or the widest disagreement between venues.One of
volumevolume_24hkickoffnewestdisagreement limitinteger- Events per page (default 10), up to your tier's largest page.
outcomes_per_eventinteger- How many of each event's most likely outcomes to return (default 5).
pageinteger- Page number, from 1.
get_event
KeylessOne event: its markets, and every venue's quote and link for the main market.
slugstring · required- The event's slug, from search_events.
marketstring- A market key from the event's markets, or all. Leave it out for the main market; other markets need Premium.
list_categories
KeylessCategories, with how many open events each has.
No arguments.
list_platforms
KeylessThe venues BetCrypto aggregates.
No arguments.
get_market_news
KeylessThe latest market briefs, or one in full.
slugstring- A brief's slug from the list, to read it in full.
localestring- The language to read it in: en (default), es, pt, ru, ja, ko, zh_CN or zh_HK. Falls back to English.
limitinteger- How many briefs to list (default 5).
my_access
KeylessYour tier and limits and, below Premium, what upgrading adds.
No arguments.
get_price_history
♛ PremiumPrice history for each outcome on each venue, from 24 hours to all time.
slugstring · required- The event's slug.
marketstring- A market key from get_event. Leave it out for the main market.
rangestring- How far back to go (default 7d).One of
24h7d30d3mo6moall pointsinteger- Most points per outcome per venue (default 24, up to 500). Fewer points keep the answer small.
find_price_gaps
♛ PremiumCross-venue price gaps you can trade, ranked by profit after both venues' fees.
profitable_onlyboolean- Only gaps that still make money after fees.
categorystring- A category slug.
platformstring- One or more venue slugs, comma-separated.
max_hold_daysinteger- Only gaps whose money comes back within this many days.One of
1730 sortstring- Realizable dollars (the default), edge per contract, return on capital, volume, or shortest hold.One of
realizableedgecapitalvolumehold limitinteger- How many gaps (default 10).
list_whale_trades
♛ PremiumWhale-sized trades, by event, venue, window or size.
eventstring- Only trades on this event slug.
platformstring- One or more venue slugs, comma-separated.
time_windowstring- How far back to go (default 24h).One of
24h7d30dall min_size_usdnumber- The smallest trade to include, in USD.
limitinteger- How many trades (default 10).
get_accuracy
♛ PremiumHow often each venue's favourite wins, and how well calibrated its prices are.
No arguments.
What the server tells your assistant
Every client receives these instructions, in English, when it connects: how to read prices, what needs Premium, and how to handle links and requests for advice.
BetCrypto aggregates prediction markets (Polymarket, Kalshi, Gemini, Novig, Limitless, Azuro and Polymarket US) into canonical events, so one real-world question shows every venue's price side by side.
How to read prices (all 0-1, i.e. implied probability):
- implied_probability on an outcome is the cross-venue consensus: the median midpoint among the liquid venues with a comparable quote, and venue_spread says how far they disagree. Quote it when someone asks "what are the odds".
- best_buy_price / best_buy_platform is the cheapest place to buy that outcome.
- In per-venue quotes, compare venues on mid_price only where comparable is true. venue_price is venue-defined (an ask on Kalshi, a midpoint on Polymarket) and differencing it across venues measures bid-ask width, not disagreement.
- quote_age_seconds says how long ago the venue last confirmed a quote. A quote marked stale (older than 90 s in play, 20 min before the game, 6 h otherwise) counts toward none of the outcome's numbers; say so if you cite it.
- kickoff_at is when a game starts (UTC); game_status says whether the game is scheduled, in_progress or final. status is the market's lifecycle, so a game that hasn't started reads live while it trades. ends_at is when trading closes, not when the question resolves.
Access: without a key you get discovery tools (search_events, get_event main market, list_categories, list_platforms, get_market_news), shared per IP, cached 60 s. get_price_history, find_price_gaps, list_whale_trades, get_accuracy and non-main markets need Premium. Calling a Premium tool before the person has signed in asks your client to sign them in to BetCrypto (OAuth). When a tool says Premium is required or a limit was reached, call my_access and pass the upgrade offer on to the person you are helping; do not retry in a loop.
Links: every url in results goes through betcrypto.now/go/..., which forwards to the venue. Share those links as they are.
BetCrypto is an odds-comparison and information service. It accepts no wagers and gives no betting or financial advice; say so if asked for a recommendation, and remind people that prediction-market availability depends on where they live.Limits and errors
- Every tool call counts against the same per-minute and per-day quota as the API: per account when signed in or using a key, per IP address without one. Keyless results are shared and cached for 60 seconds.
- If a Premium tool says Premium is required, the account your assistant signed in with isn't Premium, or the API key it sends belongs to one that isn't. Upgrade that account, or send a Premium key.