Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

BetSlip Doctor

by opspot-aiversion 1.4.0i★ –iRuns in the cloud
Registry nameai.betslipdoctor/mcp

Install

Overview

Description from the maker (original English)

Your agent grades every slip A+ to F-, links your books and tracks your record. No wager placement.

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Runs in the cloud
  • Transport: Streamable HTTP
  • Category: Clinics & health

Install

Pick the AI app you use, then copy the settings.

Before you install

You need

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

Works in Claude on the web, desktop and mobile:

  1. Open Settings → Connectors
  2. Press Add custom connector
  3. Paste the address below and press Add
  4. If it asks you to sign in, sign in with the maker
SettingsConnectors1+ Add2https://…3
https://api.betslipdoctor.ai/api/mcp

Run this in your terminal

claude mcp add --transport http betslipdoctor https://api.betslipdoctor.ai/api/mcp

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "betslipdoctor": {
      "url": "https://api.betslipdoctor.ai/api/mcp"
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "betslipdoctor": {
      "type": "http",
      "url": "https://api.betslipdoctor.ai/api/mcp"
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

ChatGPT connects only to servers on the internet:

  1. Open ChatGPT on the web → Settings → Connectors (Apps)
  2. Press Create or Add (some plans need Developer mode under Advanced first)
  3. Paste the address below, give it a name and save
  4. If it asks you to sign in, sign in with the maker
SettingsConnectors1+ Create2https://…3
https://api.betslipdoctor.ai/api/mcp

Menu names can differ slightly by plan and over time.

Your choice stays on this device in a cookie; no account needed.

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

Tool names and descriptions exactly as the server reported them on Nov 7, 2026. The maker wrote them, not us; we show them as plain text.

  • get_tracked_slips

    Read the authenticated account's saved-ticket library: the same list the app shows (GET tickets), newest first, with optional search, limit 1-20 and cursor. Provider placement ids and sportsbook deep links are never returned.

  • track_slip

    After the customer asks to save it, save one ticket to the authenticated account's saved slips through the app's own save (POST tickets), with the app ticket contract (the same ticket object quote_grade accepts). Keep client_mutation_id stable for retries. It stores the slip only

  • get_todays_board

    The app Live board (GET live/board): upcoming and in-play games, each with mainLines: its DraftKings game lines (slot, line, odds), optional league or sport, limit 1-20 and cursor. sport reads a sport chip's board across its leagues (SPRT_tennis, SPRT_soccer, SPRT_golf; tennis an

  • grade_slip

    Combined form of quote_grade, start_grade and cancel_grade (same fields, same answers): version bsd-agent-grade-v1, action quote, start or cancel, and a commandKey. Paid plans can run Fast, Pro (wire depth deep) or Elite at the quoted price. If the Grade returns no letter, the un

  • get_saved_reports

    Read the saved Grade jobs and reports behind list_grade_jobs, get_grade_job, get_grade_progress, get_grade_groups, get_grade_report and get_grade_evidence. This combined tool requires version bsd-agent-grade-v1 and action list, job, progress, groups, report or evidence; the indiv

  • get_history_summary

    The authenticated account's app History summary (GET history/summary): record, stake and net over the chosen range, with its source, currency and limitation rules. Numbers come only from the account's own records; nothing is fabricated. category reads the other History pages the

  • price_shop_slip

    Compare books on a saved slip, exactly the app's Compare books (POST tickets/compare-books): each leg's current price at up to 5 books (books: book ids; default the slip's own book, DraftKings and FanDuel), the best price for the bettor and how much the slip's own price gives up

  • doctor_conversation

    Read or change a Doctor conversation with version bsd-agent-doctor-v1 and an action; the individual Doctor tools omit version and action. Show a quote and get the customer’s yes before starting a reply; remember or forget a note only when they explicitly ask. Read the saved resul

  • tail_read

    Read Tail with version bsd-agent-tail-v1 and an action. The individual tools get_doctor_picks, get_doctor_parlays, get_league_order, get_tail_feed, tail_hot, tail_my_posts and get_tail_post omit version and action. More Tail reads on their app routes: timeline: GET tail/timeline

  • tail_post

    Preview or change Tail with version bsd-agent-tail-v1 and an action; the individual Tail tools omit version and action. Make changes only when the customer asks. Publish only after showing the exact preview and getting their yes; publishing never places a wager.

  • grade_pickem_entry

    Use action settlement with ticketId to read this owned entry’s result (history.read also required). Use bsd-pickem-grade-v2. check returns per-pick availability without research or a model call; letters are not scored yet. quote saves the owned Power or complete Flex child-ticket

  • quote_grade

    Quote a Grade for an owned saved ticketId or one confirmed manual ticket (which it may save), at the requested depth and optional funding. Returns the app’s allowance quote and starts nothing: show it before start_grade. A slip already graded answers existing_grade (its jobId and

  • start_grade

    Start the owned Grade quoteId after the customer has seen and accepted its allowance quote. Reserves app allowance and queues the same durable Grade job; consent, tier, plan usage and admission rules apply. Optional doctorThreadId: the owned Doctor conversation whose parlay this

  • cancel_grade

    Cancel an owned Grade jobId through the app service. Stops eligible work and releases its remaining reservation under the existing app rules; cannot undo provider work already performed. Reuse its commandKey on every retry.

  • list_grade_jobs

    Read the authenticated account’s current Grade library, with optional limit 1-20 and account-bound cursor. Each row’s headline is its Rocky letter and report.rockyGradeSummary its label and score. When letterFine is present, show it; otherwise show letter. Never starts research.

  • get_grade_job

    Read the owned Grade jobId and its current durable status. Never starts or resumes work.

  • get_grade_progress

    Read saved progress for the owned Grade jobId, with optional after sequence and limit 1-100. Progress is not proof that a saved report is ready; never starts work.

  • get_grade_groups

    Read the owned Grade job’s group scores as they become available. Status is pending, partial or final; partial scores can change and are not a saved final report. Does not start work.

  • get_grade_report

    Return the verified saved report for a completed Grade this account owns, by jobId. Returns unavailable until the saved report is readable; never grades again. headline carries the saved coarse letter and, for newer Grades, letterFine; show letterFine when present, otherwise lett

  • get_grade_evidence

    Return the evidence behind an owned completed Grade jobId: each claim checked (price, injury and lineup, matchup, form, line move, situational, weather, correlation), its sources with tier 1-5, age and supports/contradicts tag, unknowns, and whether it was verified. Never grades

  • open_doctor_conversation

    Persist an app Doctor thread, optionally attached to an owned ticket, report or history item. Does not start a reply or spend a consult allowance. Reuse its commandKey on every retry.

  • list_doctor_conversations

    Read this account’s saved app Doctor threads. Does not generate an answer.

  • get_doctor_conversation

    Read the owned threadId, saved user messages, Doctor answers and jobs; optional before pages older messages. Does not generate a new answer.

  • get_doctor_quota

    Read this account’s current app consult allowance, held and used amounts, and reset information. Does not reserve a consult.

  • get_bettor_profile

    Read this authenticated account’s bettor model, optionally filtered by topic: confirmed notes and revisions, separately attributed Honcho inferred context, source IDs when supplied, generation, recall state and as-of. Unavailable inference stays unavailable. Memory and AI consent

  • get_doctor_memory

    Read this authenticated account’s confirmed notes, active status, current revisions and memory generation. Longer-term Honcho personalization is recalled inside consults. These notes are user-reported preferences and lessons, not authoritative betting outcomes.

  • remember_doctor_note

    Save only a preference, goal, constraint or context note the customer explicitly asked Doctor to remember. Corrections require the exact owned note id and expectedRevision from get_doctor_memory. note.confirmation must be save_for_future_consults. Do not silently infer mastery or

  • forget_doctor_note

    Remove the exact owned note only after the customer explicitly asks to forget it. Requires current id/expectedRevision and confirmation forget_for_future_consults. Rotates inferred memory under the existing account service; saved conversations remain separately retained until del

  • quote_doctor_reply

    Persist an app consult quote for text in the owned threadId at its current sequence, with optional responseStyle learning/technical/roast for this reply. Omit for the account default. Returns the allowance quote without starting a reply. Show the quote before requesting a start.

  • start_doctor_reply

    Start the owned consult quoteId after the customer has seen and accepted the quote. Reserves app allowance and queues the existing Doctor job; app AI consent, tier, plan usage, cost cap and admission rules apply. Does not return an answer before it is saved. Reuse its commandKey

  • get_doctor_job

    Read the owned Doctor jobId, including its real saved answer when available. Never generates or restarts a reply.

  • get_doctor_events

    Read saved events for the owned Doctor jobId, optionally after a sequence. Never starts a consult.

  • cancel_doctor_reply

    Cancel an owned Doctor jobId under the app cancellation and reservation rules. Cannot undo a reply or provider work already completed. Reuse its commandKey on every retry.

  • get_doctor_parlays

    Read the Doctor’s posted parlays for one league (e.g. LGUE_nfl): 2-3 legs on different games, each B+ or better when posted. Upcoming first with the newest regrade (currentGrade), then recent WON/LOST/PUSH results and the parlays record. Items carry parlayType (lock = 2 legs, moo

  • get_league_order

    Read BetSlip Doctor’s league order right now: the same leagues in the same order as the app’s league strip (its Home and Odds chips: games in play first, then the soonest tip within 6 hours, then games in the next 24 hours); Tennis, Soccer and Golf are sport chips and carry their

  • get_doctor_picks

    Read today’s saved Doctor picks and recent settled WON/LOST/PUSH results. Each item carries league (first leg’s league id), sport (first leg’s sport id) and leagues (every leg’s league), the same fields the app’s league tabs filter by, for every reader. Optional league (e.g. LGUE

  • get_tail_feed

    Doctor ticket posts include result WON/LOST/PUSH when settled, null otherwise. Read the app Tail feed with its account-filtered community, following, own, profile, bookmark or private-list visibility. Uses app moderation, mutes and account-bound cursor rules; does not post.

  • add_doctor_parlay_to_slip

    Put one of the Doctor’s posted parlays (key from get_doctor_parlays) on this account’s slip in one step, with a unique commandKey. Checks every leg’s current price at the parlay’s book, saves the parlay as a private unplaced ticket and returns its legs (marketSelectionId, oddsAme

  • tail_react

    Add (active true) or remove (active false) this account’s fire reaction on a Tail postId, with a unique commandKey. One fire per account per post; fire feeds Hot picks. Reuse its commandKey on every retry.

  • save_tail_post

    Save (active true) or unsave (active false) a Tail postId for this account, with a unique commandKey: the app’s Save on a post and on another bettor’s Tail Grade report. Private to this account; read saved posts with get_tail_feed feed bookmarks. Never places a wager. Reuse its c

  • share_graded_ticket_to_tail

    Share an owned saved Grade report to Tail with nothing to type. Call with reportId and omit confirmation to get the exact preview and previewBinding: show it to the customer. After their explicit yes, call again with confirmation PUBLISH_POST, commandKey and that previewBinding (

  • tail_my_posts

    Read this account’s own Tail posts (newest first, cursor paging) with its record setting and post count (recordSettings: showRecord, postCount). Does not post.

  • set_synced_record_consent

    Turn on (consent true) or off (default) the use of this account’s connected-sportsbook bets on its public record, with a unique commandKey. On: posted picks settle from the connected sportsbook, and the results and units show on the profile, posts and the Top list. Off: posts set

  • set_show_my_record

    Turn “Show my record” on (default) or off with show true/false and a unique commandKey. Off hides the W-L, units and ROI from everyone but the account owner (zero record on posts, out of Top lists); posts stay public. Reuse its commandKey on every retry.

  • tail_hot

    Read Hot picks: graded Tail posts of the last 24 hours ranked by fire reactions and tails (recency-weighted), the Doctor’s current pick pinned first. Optional gradeFamily A-F filters by letter. Same visibility, moderation and mutes as the app; does not post.

  • get_tail_post

    Doctor ticket posts include result WON/LOST/PUSH when settled, null otherwise. Read one app Tail postId visible to this account under the same moderation and privacy rules. Supply fadedByLimit (1-25) or fadedByCursor to include the permitted public confirmed-Fade profile page. Ma

  • preview_tail_post

    Compute the exact app sharing preview and binding from an owned saved Grade report or Doctor exchange draft. Does not publish. Show the returned preview to the customer before requesting publication.

  • publish_tail_post

    Submit the exact customer-approved draft and previewBinding to the app moderation queue. Requires confirmation PUBLISH_POST, placementConfirmation and fWarning. Shares approved content with the Tail community when moderation allows; this irreversible send never places a wager. Re

  • create_tracked_slip

    After the customer asks to save it, save one app ticket (the quote_grade ticket contract) to this account's saved slips through the app's POST tickets, with a stable client_mutation_id for retries. Stores the slip only; never prepares or places a wager.

  • onboarding_preferences

    Read the current league catalog and per-league team membership, or read/save your leagues and teams. Use original source-qualified IDs. Logos are unavailable. Get the current revision before a confirmed set: merge imports device selections with account order first; replace saves

  • fade_post

    Preview actual supported opposite selections for a visible Tail post at the customer’s bookId and jurisdiction. Unavailable legs remain unavailable; this is not the mathematical complement of a parlay. After explicit customer review, confirm with the original preview binding, pos

  • view_tail_analysis

    Open the visible post’s original saved full Grade or Doctor analysis using the app’s existing paid research access. Requires Tail and saved-report read consent. A subscription_required response means the customer needs the approved upgrade flow; do not start research or substitut

  • grade_settings

    Read or save this account’s Grade risk preference, analysis depth and unit size. Saving requires the exact confirmed settings, current revision and a stable command key. Risk preference is separate from computed report risk. No Grade or research starts.

  • set_profile_links

    Preview then explicitly confirm your own profile links. Supply draft {profileId,target: profile,expectedRevision,links:[{platform,handle?,url?}]}. Array order is display order; omit a platform to remove it. Use [] for no links. One per platform: x, instagram, tiktok, youtube, dis

  • list_sportsbooks

    Read this account’s linked sportsbooks exactly as the app shows them: whether sportsbook linking is allowed, each account (accountId, book, region, betsSynced), its connection (verified, paused, reconnect_required, revoked, disabled, unknown), needsReconnect, its last check and l

  • connect_sportsbook

    Return a 10-minute betslipdoctor.ai link (linkUrl, expiresAt) for the customer to open and finish connecting a sportsbook. The app checks the requested book and optional two-letter state; without a state it uses the account’s state when known, otherwise the sportsbook list opens.

  • refresh_sportsbook

    Check an owned linked sportsbook accountId for new bets, the same import the app runs: queues one history check for the account’s linked books (each allowed sportsbook is asked for its newest bets) and returns the check id and its state. Repeats within 30 seconds are refused with

  • disconnect_sportsbook

    Disconnect an owned linked sportsbook accountId, the same as the app’s Disconnect: BSD imports for it stop at once and the link to your sportsbook is removed in the background. Requires confirm true after the customer explicitly asks; without it nothing changes. Saved bets stay i

  • search_markets

    Search the same way the app’s Home and Live search does. query is the typed text (a team, game, player or market name, e.g. "Bears" or "Rasmussen"); category is games (default), players or markets. Optional league (LGUE_ id) or sport (SPRT_ id) narrows it, limit is 1-20 and curso

  • get_box_score

    Read the in-play or final score and box score for one game (eventId from search_markets or the board), the same read as the app’s Live game page: status (in_progress, final or suspended), period and clock, each team’s score and period-by-period line, team statistics, and player s

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 8, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified against the domain betslipdoctor.ai (the registry checks domain ownership)

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • ✓ Pass

    Endpoint responds

    Responded in 249 ms (HTTP 200)

  • – Not applicable

    Sign-in with OAuth

    No sign-in needed

  • ✓ Pass

    No hidden instructions in tool descriptions

    Read 60 tool descriptions and found no hidden instructions to the AI

Compared with others in Clinics & healthi

  • More stars than 0% of the other 1023 servers in this category
  • Published to the registry more recently than 61% of the other 1023 servers in this category
  • Basic checks equal to or better than 100% of the other 1023 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is BetSlip Doctor safe?

It passed 3 of 3 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

The registry does not list a required key, though some servers ask you to sign in on first use.

Does it run on my computer or in the cloud?

It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.

Is it still maintained?

The GitHub repo last changed –, and the latest version (1.4.0) reached the registry 17 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.

What can I use instead?

In the same category: Mirobody, FHIR MCP Server, Google Health MCP

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Mirobody

by thetahealth

Lab results to LOINC codes and UCUM units, symptoms and diagnoses to ICPC-3. Offline, no API key.

Runs on your computer★ 1,408Apache-2.0Updated today
Install

MCP server providing seamless access to FHIR APIs for AI tools and healthcare applications

Runs on your computer★ 137Apache-2.0Updated 10 days ago
Install

Google Health MCP

by davidmosiah

Privacy-first unofficial Google Health API v4 MCP server for health, sleep, activity, HR agents

Runs on your computer★ 79MITUpdated 4 months ago
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

BetSlip Doctor MCP server

Bet slip grader, parlay tracker, bet tracker and Tail community for AI assistants. Connect Claude, ChatGPT, Cursor, VS Code, Gemini CLI or any MCP client to your own BetSlip Doctor account and ask, in plain words: *"Grade this parlay before I bet it." "Show my record this month." "What's new on Tail?"*

https://api.betslipdoctor.ai/api/mcp

Streamable HTTP. OAuth 2.1 with PKCE and dynamic client registration. This repository holds docs, examples and client manifests only: no server code, no credentials.

What it does

  • Grades a bet slip before you place it. A letter from A+ to F-, a score out of 100 (Value 30, Research 40, Slip construction 20, Stake fit 10) from up to 100 research questions in 10 groups, with sources. How the grade system works.
  • Tracks parlays and singles. Same-game parlays stay one pick with their legs inside; settlement keeps push, void, cash out and dead heat. Parlay tracker.
  • Reads your betting history. Recorded profit and loss, win rate and the win-loss split for 1W, 1M, 3M, 1Y or All; CSV export. Bet tracker.
  • Reads and posts to Tail, the community where slips carry their Grade. Tail or fade a post into your own unplaced slip. Tail community.
  • Talks to the Doctor about any saved Grade, and can fix a weak slip in up to 3 moves.
  • Compares posted prices at up to 5 sportsbooks and prepares a sportsbook link that opens only when you tap it.

46 tools. Full list: TOOLS.md. Cards (saved Grade, Doctor conversation, History chart, Tail post, saved slip) render inline in hosts that support MCP Apps.

Connect

ClientHow
Claude (web, desktop)Customize → Connectors → Add custom connector → paste the URL → Register automatically → sign in
ChatGPTchatgpt.com/plugins → Add custom MCP server → Public endpoint → paste the URL → sign in
Claude Codeclaude plugin marketplace add opspot-ai/betslipdoctor-mcp then claude plugin install betslip-doctor@betslip-doctor
CursorSettings → MCP → Add, or use plugin.json + mcp.json from this repo
VS Codecode --add-mcp '{"name":"betslip-doctor","type":"http","url":"https://api.betslipdoctor.ai/api/mcp"}'
Gemini CLIgemini extensions install https://github.com/opspot-ai/betslipdoctor-mcp
Anything elseStreamable HTTP + OAuth discovery: docs/connect.md

Step-by-step with pictures: https://betslipdoctor.ai/agents

Who can use it

  • A BetSlip Doctor account on the Pro ($19.99/month) or Elite ($49.99/month) plan for agent access. Plans and the free tier: https://betslipdoctor.ai/pricing
  • Adults of legal sports-betting age in the United States (21+ in most states).

What it will never do

Place a bet, move money, change billing or privacy settings, or ask for a sportsbook login. Every Grade and Doctor job that spends allowance is quoted first. Outputs are entertainment and decision support, never a guarantee or financial advice. If gambling stops being fun, call 1-800-522-4700 (NCPG).

Try it

examples/prompts.md has prompts by task. examples/discovery.sh lists the tools without signing in.

Files

  • server.json: the MCP Registry manifest (ai.betslipdoctor/mcp).
  • llms.txt: the same facts for language models (live copy).
  • plugin.json, mcp.json: Agent Plugins standard (Cursor, Codex).
  • .claude-plugin/, .mcp.json: Claude Code plugin and marketplace.
  • gemini-extension.json, GEMINI.md: Gemini CLI extension.
  • skills/bsd-workflow/SKILL.md: how an agent should read, grade and post.
  • docs/: connection guide, public HTTP API guide, screenshots (sample data).

Privacy: https://betslipdoctor.ai/privacy · Terms: https://betslipdoctor.ai/legal · Support: support@betslipdoctor.ai

Ask PopNx