Flanj drift.flanj.io · daily contract watch

drift.flanj.io / servers / betslipdoctor

Server sheet · api · anonymous

BetSlipDoctor betslipdoctor

6 change events over 48 comparison days: 0 breaking, 19 warning and 6 info findings, each with the two contracts as served behind it.

watched since 2026-08-24 as of 2026-10-15 49 days observed 48 comparison days latest snapshot 2026-10-15

01 / the server

What the watch knows about it.

BetSlipDoctoroperator
apikind
anonymousauth posture
46tools listed
49days observed
2025-06-18MCP revision · floor, not ceiling
0 / 46outputSchema declared

Anonymous: the same call the watch makes, minus initialize. A server that answers “session required” insists on initialize first and is alive.

probe
curl -sS 'https://api.betslipdoctor.ai/api/mcp' -H 'content-type: application/json' -H 'accept: application/json, text/event-stream' -H 'mcp-protocol-version: 2025-06-18' --data '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | sed -n 's/^data: //p; t; /^{/p' | jq '.result.tools[].name'

02 / event timeline — every event, expanded

6 change events, newest first.

2026-10-13 → 2026-10-14 1 warning 1 tool
1 description-changedas served: 2026-10-13 → 2026-10-14on the index
warning wording description-changed The wording an agent reads to choose and call the tool changed; its behaviour may or may not have. #
prepare_sportsbook_handoff description
[…] if unknown. Returns full-slip or explicit individual-selection/manual fallbacks with expiry. Set sendToPhone=true only on an explicit customer request; this sends an ID-only push to that account’s registered devices. The phone opens BSD for review. Only an explicit customer click tap in BSD opens the destination; sportsbook; this tool never executes a wager or records placement.
as served: 2026-10-13 → 2026-10-14
2026-10-10 → 2026-10-11 4 warning 4 tools
4 description-changedas served: 2026-10-10 → 2026-10-11on the index
warning wording description-changed The wording an agent reads to choose and call the tool changed; its behaviour may or may not have. #
show_doctor_conversation description
[…] them. Show the saved result in an interactive BSD card inside ChatGPT. in the chat. Use this tool when the customer wants to see their […]
as served: 2026-10-10 → 2026-10-11
warning wording description-changed The wording an agent reads to choose and call the tool changed; its behaviour may or may not have. #
show_saved_grade description
[…] them. Show the saved result in an interactive BSD card inside ChatGPT. in the chat. Use this tool when the customer wants to see their […]
as served: 2026-10-10 → 2026-10-11
warning wording description-changed The wording an agent reads to choose and call the tool changed; its behaviour may or may not have. #
show_tail_feed description
[…] them. Show the saved result in an interactive BSD card inside ChatGPT. in the chat. Use this tool when the customer wants to see their […]
as served: 2026-10-10 → 2026-10-11
warning wording description-changed The wording an agent reads to choose and call the tool changed; its behaviour may or may not have. #
show_tail_post description
[…] them. Show the saved result in an interactive BSD card inside ChatGPT. in the chat. Use this tool when the customer wants to see their […]
as served: 2026-10-10 → 2026-10-11
2026-10-04 → 2026-10-05 2 warning 2 tools
2 description-changedas served: 2026-10-04 → 2026-10-05on the index
warning wording description-changed The wording an agent reads to choose and call the tool changed; its behaviour may or may not have. #
doctor_conversation description
[…] subject), threads, conversation (threadId), quota, quote (commandKey, threadId, current sequence, text), text, optional responseStyle learning/technical/roast), memory (current confirmed notes), remember (commandKey, explicitly requested note/correction), forget (commandKey, note id/current revision, explicit confirmation), start (commandKey, quoteId), job or events (jobId), or cancel (commandKey, […] carries the saved Doctor answer and the conversation stores it. Styles affect this reply only; omit to use the account default. Remember/forget require the customer explicitly asking to save, correct or remove that note; never infer mastery or save betting results as personal memory. The app enforces AI consent, tier, allowance, cost cap and […]
as served: 2026-10-04 → 2026-10-05
warning wording description-changed The wording an agent reads to choose and call the tool changed; its behaviour may or may not have. #
quote_doctor_reply description
[…] quote for text in the owned threadId at its current sequence. 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 […]
as served: 2026-10-04 → 2026-10-05
2026-09-30 → 2026-10-01 2 warning 2 tools
2 description-changedas served: 2026-09-30 → 2026-10-01on the index
warning wording description-changed The wording an agent reads to choose and call the tool changed; its behaviour may or may not have. #
get_todays_board description
[…] and the best posted price per selection across connected books. Read-only decision Decision support; never a guarantee and never a wager. The default board may reserve/spend odds-refresh units under the app rules; retries deduplicate only within the existing 60-second usage bucket. Set view: app for the current app Live board and […]
as served: 2026-09-30 → 2026-10-01
warning wording description-changed The wording an agent reads to choose and call the tool changed; its behaviour may or may not have. #
price_shop_slip description
[…] and how much the user's own line gives up. Only ever describes books with real posted data; read-only, never places a wager. May reserve/spend odds-refresh units under the app rules; retries deduplicate only within the existing 60-second usage bucket.
as served: 2026-09-30 → 2026-10-01
2026-09-22 → 2026-09-23 8 warning 5 tools
5 description-changed3 input-required-property-addedas served: 2026-09-22 → 2026-09-23on the index
warning wording description-changed The wording an agent reads to choose and call the tool changed; its behaviour may or may not have. #
get_history_summary description
[…] only from the user's own imported slips; nothing is fabricated. Set view: app for the current app History summary with its source, currency and limitation rules.
as served: 2026-09-22 → 2026-09-23
warning wording description-changed The wording an agent reads to choose and call the tool changed; its behaviour may or may not have. #
get_saved_reports description
Read your saved Grade job, exact paginated live progress, saved report, or job library. Use For current Grade, send version bsd-agent-grade-v1 actions list/job/progress/report. and action: list (optional limit 1-20 and cursor), job or report (jobId UUID required), or progress (jobId UUID required; optional after 0-1000000 and limit 1-100). Readiness requires a readable saved report. Unversioned report_id/limit reads are retained for For legacy reports only. only, omit version/action and send optional report_id and limit 1-25. Never mix current and legacy fields.
as served: 2026-09-22 → 2026-09-23
warning wording description-changed The wording an agent reads to choose and call the tool changed; its behaviour may or may not have. #
get_todays_board description
[…] Read-only decision support; never a guarantee and never a wager. Set view: app for the current app Live board and its provider, filters and cursor.
as served: 2026-09-22 → 2026-09-23
warning wording description-changed The wording an agent reads to choose and call the tool changed; its behaviour may or may not have. #
get_tracked_slips description
Read the authenticated user's tracked ticket trees and tracking lifecycle. Set view: app to read the current app saved-ticket library instead. Provider placement ids and sportsbook deep links are never returned.
as served: 2026-09-22 → 2026-09-23
warning wording description-changed The wording an agent reads to choose and call the tool changed; its behaviour may or may not have. #
grade_slip description
Quote the current Grade service Use version bsd-agent-grade-v1 and a unique commandKey (16-120 characters) for an existing saved ticket every action. quote requires depth plus exactly one of ticketId (saved UUID) or exact ticket (exact confirmed manual ticket, then ticket); funding is optional. start the requires quoteId. cancel requires jobId. A quote to reserve its disclosed allowance. Returns discloses the allowance; start reserves it and returns a durable job; use job. Use get_saved_reports to follow for progress and read the saved result. Requires bsd-agent-grade-v1. Text and legacy SGP inputs return migration_required.
as served: 2026-09-22 → 2026-09-23
warning input input-required-property-added A caller that does not send the new field is rejected, with no change on its own side. #
grade_slip inputaction
their contract · 2026-09-22
absent
their contract · 2026-09-23
{"enum":["quote","start","cancel"],"type":"string"}
location
input.action
as served: 2026-09-22 → 2026-09-23
warning input input-required-property-added A caller that does not send the new field is rejected, with no change on its own side. #
grade_slip inputcommandKey
their contract · 2026-09-22
absent
their contract · 2026-09-23
{"maxLength":120,"minLength":16,"pattern":"^[a-zA-Z0-9_-]+$","type":"string"}
location
input.commandKey
as served: 2026-09-22 → 2026-09-23
warning input input-required-property-added A caller that does not send the new field is rejected, with no change on its own side. #
grade_slip inputversion
their contract · 2026-09-22
absent
their contract · 2026-09-23
{"const":"bsd-agent-grade-v1","type":"string"}
location
input.version
as served: 2026-09-22 → 2026-09-23
2026-09-21 → 2026-09-22 2 warning 6 info 2 tools
6 input-optional-property-removed2 description-changedas served: 2026-09-21 → 2026-09-22on the index
warning wording description-changed The wording an agent reads to choose and call the tool changed; its behaviour may or may not have. #
get_saved_reports description
List the authenticated user's Read your saved diagnosis reports (newest first), Grade job, exact paginated live progress, saved report, or fetch one full report by id. Only ever the calling user's own reports. job library. Use bsd-agent-grade-v1 actions list/job/progress/report. Readiness requires a readable saved report. Unversioned report_id/limit reads are retained for legacy reports only.
as served: 2026-09-21 → 2026-09-22
info input input-optional-property-removed Depending on whether the new schema forbids unknown fields, a caller still sending it is ignored or rejected; the row says which. #
get_saved_reports inputlimit
their contract · 2026-09-21
{"description":"Compact list size (default 10).","maximum":25,"minimum":1,"type":"integer"}
their contract · 2026-09-22
absent
location
input.limit
as served: 2026-09-21 → 2026-09-22
info input input-optional-property-removed Depending on whether the new schema forbids unknown fields, a caller still sending it is ignored or rejected; the row says which. #
get_saved_reports inputreport_id
their contract · 2026-09-21
{"description":"Return this one report in full instead of the co…","type":"string"}
their contract · 2026-09-22
absent
location
input.report_id
full fragment
{"description":"Return this one report in full instead of the compact list.","type":"string"}
as served: 2026-09-21 → 2026-09-22
warning wording description-changed The wording an agent reads to choose and call the tool changed; its behaviour may or may not have. #
grade_slip description
Submit betslip text and get BetSlip Doctor's graded second opinion: rank, score, per-leg calls, ten-dimension checkup and sourced evidence. Entertainment/decision support only. Uses Quote the user's plan allowance exactly like grading in current Grade service for an existing saved ticket or exact confirmed manual ticket, then start the app. quote to reserve its disclosed allowance. Returns a durable job; use get_saved_reports to follow progress and read the saved result. Requires bsd-agent-grade-v1. Text and legacy SGP inputs return migration_required.
as served: 2026-09-21 → 2026-09-22
info input input-optional-property-removed Depending on whether the new schema forbids unknown fields, a caller still sending it is ignored or rejected; the row says which. #
grade_slip inputmode
their contract · 2026-09-21
{"description":"Research depth. 'fast' (default) answers quickly…","enum":["fast","deep"],"type":"string"}
their contract · 2026-09-22
absent
location
input.mode
full fragment
{"description":"Research depth. 'fast' (default) answers quickly; 'deep' fans out to every research provider.","enum":["fast","deep"],"type":"string"}
as served: 2026-09-21 → 2026-09-22
info input input-optional-property-removed Depending on whether the new schema forbids unknown fields, a caller still sending it is ignored or rejected; the row says which. #
grade_slip inputslipText
their contract · 2026-09-21
{"description":"The betslip as pasted text: one leg per line wit…","type":"string"}
their contract · 2026-09-22
absent
location
input.slipText
full fragment
{"description":"The betslip as pasted text: one leg per line with odds where known.","type":"string"}
as served: 2026-09-21 → 2026-09-22
info input input-optional-property-removed Depending on whether the new schema forbids unknown fields, a caller still sending it is ignored or rejected; the row says which. #
grade_slip inputstake
their contract · 2026-09-21
{"description":"Optional stake in dollars for payout context.","type":"number"}
their contract · 2026-09-22
absent
location
input.stake
as served: 2026-09-21 → 2026-09-22
info input input-optional-property-removed Depending on whether the new schema forbids unknown fields, a caller still sending it is ignored or rejected; the row says which. #
grade_slip inputticket
their contract · 2026-09-21
{"description":"Optional BSD two-level BetTicketContract. Use th…","type":"object"}
their contract · 2026-09-22
absent
location
input.ticket
full fragment
{"description":"Optional BSD two-level BetTicketContract. Use this for screenshot/manual parses and SGP trees.","type":"object"}
as served: 2026-09-21 → 2026-09-22

03 / tool inventory · as served on 2026-10-15

46 tools in the latest contract.

From the snapshot as served; descriptions shortened to their first sentence. “Changes” counts this server’s findings on the tool.

Tools in the latest snapshot with their input property counts, outputSchema declaration and finding counts
ToolDescriptionInputsRequiredoutputSchemaAnnotationsChanges
cancel_doctor_reply Cancel an owned Doctor jobId under the app cancellation and reservation rules. 2 2 none destructive · idempotent 0
cancel_grade Cancel an owned Grade jobId through the app service. 2 2 none destructive · idempotent 0
copy_tail_slip After the customer reviews every current leg and confirms the exact stake/currency/settlement fields, save the app’s owned Tail/Fade ticket using the preview binding and CONFIRM_… 14 14 none idempotent · openWorld 0
create_tracked_slip Create an owned ticket tree in building state with a stable client_mutation_id for retries. 2 2 none idempotent 0
doctor_conversation The app Doctor conversation. 18 2 none destructive · idempotent 1
export_betting_history Read one real CSV export page for the owned History filters. 2 1 none readOnly · idempotent 0
forget_doctor_note Remove the exact owned note only after the customer explicitly asks to forget it. 4 4 none destructive · idempotent 0
get_doctor_conversation Read the owned threadId, saved user messages, Doctor answers and jobs; optional before pages older messages. 2 1 none readOnly · idempotent 0
get_doctor_events Read saved events for the owned Doctor jobId, optionally after a sequence. 2 1 none readOnly · idempotent 0
get_doctor_job Read the owned Doctor jobId, including its real saved answer when available. 1 1 none readOnly · idempotent 0
get_doctor_memory Read this authenticated account’s confirmed notes, active status, current revisions and memory generation. 0 0 none readOnly · idempotent 0
get_doctor_quota Read this account’s current app consult allowance, held and used amounts, and reset information. 0 0 none readOnly · idempotent 0
get_grade_job Read the owned Grade jobId and its current durable status. 1 1 none readOnly · idempotent 0
get_grade_progress Read saved progress for the owned Grade jobId, with optional after sequence and limit 1-100. 3 1 none readOnly · idempotent 0
get_grade_report Return the verified immutable saved report for an owned completed Grade jobId. 1 1 none readOnly · idempotent 0
get_history_summary The authenticated user's imported betting-history ledger: W-L record, stake and net over lifetime/30d/7d windows, sync freshness, and their most recent bets. 5 0 none readOnly · idempotent 1
get_saved_reports For current Grade, send version bsd-agent-grade-v1 and action: list (optional limit 1-20 and cursor), job or report (jobId UUID required), or progress (jobId UUID required; optiona… 7 0 none readOnly · idempotent 4
get_tail_feed Read the app Tail feed with its account-filtered community, following, own, profile, bookmark or private-list visibility. 6 0 none readOnly · idempotent · openWorld 0
get_tail_post Read one app Tail postId visible to this account under the same moderation and privacy rules. 1 1 none readOnly · idempotent · openWorld 0
get_todays_board Live sports board: upcoming and in-play games with main-market prices (moneyline, spread, total) and the best posted price per selection across connected books. 7 0 none destructive · openWorld 2
get_tracked_slips Read the authenticated user's tracked ticket trees and tracking lifecycle. 4 0 none readOnly · idempotent 1
grade_slip Use version bsd-agent-grade-v1 and a unique commandKey (16-120 characters) for every action. 9 3 none destructive · idempotent · openWorld 9
list_doctor_conversations Read this account’s saved app Doctor threads. 0 0 none readOnly · idempotent 0
list_grade_jobs Read the authenticated account’s current Grade library, with optional limit 1-20 and account-bound cursor. 2 0 none readOnly · idempotent 0
open_doctor_conversation Persist an app Doctor thread, optionally attached to an owned ticket, report or history item. 4 1 none idempotent 0
prepare_sportsbook_handoff Prepare the existing app’s fresh, vetted direct sportsbook link for an owned saved ticket. 5 4 none openWorld 1
preview_tail_post Compute the exact app sharing preview and binding from an owned saved Grade report or Doctor exchange draft. 1 1 none readOnly · idempotent 0
preview_tail_slip Show current supported prices for tailing or fading one visible public post at the customer’s chosen bookId and jurisdiction. 4 4 none readOnly · idempotent · openWorld 0
price_shop_slip Compare posted prices across books for each leg of a slip (main markets). 1 1 none destructive · openWorld 1
publish_tail_post Submit the exact customer-approved draft and previewBinding to the app moderation queue. 6 6 none destructive · idempotent · openWorld 0
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. 5 4 none idempotent 1
quote_grade Persist a Grade quote for an owned saved ticketId or exactly one confirmed manual ticket, with the requested depth and optional funding. 5 2 none idempotent 0
remember_doctor_note Save only a preference, goal, constraint or context note the customer explicitly asked Doctor to remember. 2 2 none destructive · idempotent 0
revise_tracked_slip Overwrite the owned tracked ticket_id with the supplied ticket tree in building state. 4 4 none destructive · idempotent 0
show_betting_history Show the connected account’s recorded profit/loss chart and actual win/loss counts. 11 2 none readOnly · idempotent 0
show_doctor_conversation Read the owned threadId, saved user messages, Doctor answers and jobs; optional before pages older messages. 2 1 none readOnly · idempotent 1
show_history_records Show a bounded page of owned History records and their saved Grade association. 2 1 none readOnly · idempotent 0
show_saved_grade Return the verified immutable saved report for an owned completed Grade jobId. 1 1 none readOnly · idempotent 1
show_saved_slip Show an owned saved ticket with its exact single-book saved picks, odds and stake. 1 1 none readOnly · idempotent 0
show_tail_feed Read the app Tail feed with its account-filtered community, following, own, profile, bookmark or private-list visibility. 6 0 none readOnly · idempotent · openWorld 1
show_tail_post Read one app Tail postId visible to this account under the same moderation and privacy rules. 1 1 none readOnly · idempotent · openWorld 1
start_doctor_reply Start the owned consult quoteId after the customer has seen and accepted the quote. 2 2 none destructive · idempotent 0
start_grade Start the owned Grade quoteId after the customer has seen and accepted its allowance quote. 2 2 none destructive · idempotent · openWorld 0
tail_post Send version bsd-agent-tail-v1. 8 3 none destructive · idempotent · openWorld 0
tail_read Send version bsd-agent-tail-v1 and action feed (optional feed/profileId/listId/search/limit/cursor) or post (postId). 9 2 none readOnly · idempotent · openWorld 0
track_slip Create or revise one of the authenticated user's ticket trees. 4 2 none destructive · idempotent 0