# BetSlip Doctor (ai.betslipdoctor/mcp): tool descriptions scored

- tools/list taken: 2026-11-02 (UTC)
- From: [Official MCP Registry](https://registry.modelcontextprotocol.io/v0/servers/ai.betslipdoctor%2Fmcp/versions/latest)
- Connected to: https://api.betslipdoctor.ai/api/mcp
- Homepage: https://betslipdoctor.ai/agents
- Repository: https://github.com/opspot-ai/betslipdoctor-mcp
- Scoring rules: v2
- Tools: 92
- Average: 48.0 / 100 (Cloudy)
- Near-identical pairs: 5

This page shows how BetSlip Doctor (ai.betslipdoctor/mcp)'s tool descriptions scored, the issues found and the names of its tools and parameters. The descriptions are the server's own: read them where the copy came from.

Forecall asked the URL this server lists in the official MCP Registry for its tools/list once, on the date above, without calling any tool. The server may have changed since.

## Across the server

- Major: 92 tools. Above 40, models choose less accurately.
- Minor: The server's instructions are 3989 characters. Claude Code reads only the first 2,048 by default (Codex 0.154.0 reads them whole). Put what the server is for first.

## Tools

- `get_saved_reports`: 29 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: version, action, limit, cursor, representation, jobId, after.
  - Minor: String arguments with no constraint or example: version, representation.
  - Minor: Says nothing about what it returns.
- `get_betting_leaks`: 31 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: range, limit.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `set_profile_links`: 33 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: action, draft, draft.profileId, draft.target, draft.expectedRevision, draft.links, commandKey, previewBinding, confirmation.
  - Minor: String arguments with no constraint or example: confirmation.
  - Minor: Says nothing about what it returns.
- `get_doctor_conversation`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: threadId, before.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: threadId. Name the tool or the place that returns it, or models look it up first.
- `open_doctor_conversation`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: commandKey, ticketId, reportId, history, history.kind, history.id.
  - Minor: Says nothing about what it returns.
- `revoke_api_key`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: keyId.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: keyId. Name the tool or the place that returns it, or models look it up first.
- `revoke_connected_agent`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: grantId.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: grantId. Name the tool or the place that returns it, or models look it up first.
- `set_show_my_record`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: commandKey, show.
  - Minor: The meaning of the boolean argument show is unclear.
  - Minor: Says nothing about what it returns.
- `set_synced_record_consent`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: commandKey, consent.
  - Minor: The meaning of the boolean argument consent is unclear.
  - Minor: Says nothing about what it returns.
- `show_history_records`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: query, query.range, query.includePickemEntries, query.recordKind, query.includeLinkedManual, query.advice, query.adviceBasis, query.bookId, query.league, query.sport, query.result, query.graded, query.search, query.sort, query.currency, query.limit, cursor.
  - Minor: The meaning of the boolean argument query.includePickemEntries is unclear.
  - Minor: The meaning of the boolean argument query.includeLinkedManual is unclear.
  - Minor: Says nothing about what it returns.
- `tail_hot`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: window, gradeFamily, limit.
  - Minor: String arguments with no constraint or example: window.
  - Minor: Says nothing about what it returns.
- `tail_my_posts`: 34 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: limit, cursor.
  - Minor: Says nothing about what it returns.
- `tail_react`: 35 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: commandKey, postId, reaction, active.
  - Minor: String arguments with no constraint or example: reaction.
  - Minor: The meaning of the boolean argument active is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: postId. Name the tool or the place that returns it, or models look it up first.
- `onboarding_preferences`: 36 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: action, league, selections, selections.version, selections.leagues, selections.leagues[].source, selections.leagues[].id, selections.teams, selections.teams[].source, selections.teams[].id, selections.teams[].leagueId, mode, expectedRevision, confirmed, commandKey.
  - Minor: String arguments with no constraint or example: selections.version, selections.leagues[].source, selections.teams[].source.
  - Minor: The meaning of the boolean argument confirmed is unclear.
  - Minor: Says nothing about what it returns.
- `cancel_doctor_reply`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: commandKey, jobId.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `preview_tail_post`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: draft.
  - Minor: Says nothing about what it returns.
- `preview_tail_slip`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: mode, bookId, jurisdiction, postId.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: bookId, postId. Name the tool or the place that returns it, or models look it up first.
- `show_saved_slip`: 37 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: ticketId.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: ticketId. Name the tool or the place that returns it, or models look it up first.
- `grade_settings`: 41 / 100
  - Major: Arguments without a description: action, settings, settings.version, settings.riskPreference, settings.weights, settings.weights.value, settings.weights.evidence, settings.weights.construction, settings.weights.stake, settings.analysisDepth, settings.unitMinor, expectedRevision, confirmed, commandKey.
  - Minor: String arguments with no constraint or example: settings.version.
  - Minor: The meaning of the boolean argument confirmed is unclear.
  - Minor: Says nothing about what it returns.
- `match_ticket_legs`: 41 / 100
  - Major: Arguments without a description: version, legs, legs[].event, legs[].selection, legs[].market, legs[].period, legs[].line, legs[].odds.
  - Minor: String arguments with no constraint or example: version.
- `quote_doctor_reply`: 41 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: commandKey, threadId, sequence, text, responseStyle.
  - Minor: Required identifiers whose description does not say where the value comes from: threadId. Name the tool or the place that returns it, or models look it up first.
- `list_grade_jobs`: 42 / 100
  - Major: Arguments without a description: limit, cursor, representation.
  - Minor: String arguments with no constraint or example: representation.
  - Minor: Says nothing about what it returns.
- `save_tail_post`: 42 / 100
  - Major: Arguments without a description: commandKey, postId, active.
  - Minor: The meaning of the boolean argument active is unclear.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: postId. Name the tool or the place that returns it, or models look it up first.
- `check_slip`: 43 / 100
  - Major: Arguments without a description: legs, legs[].marketSelectionId, legs[].eventId, legs[].bookId, legs[].oddsAmerican, legs[].line, legs[].observedAt, legs[].startsAt, ticketId.
  - Minor: No `required` list, so every argument is optional.
- `fade_post`: 43 / 100
  - Major: Arguments without a description: action, postId, bookId, jurisdiction, commandKey, request, request.confirmation, request.bookId, request.jurisdiction, request.expectedPostRevision, request.previewBinding, request.clientSlipId, request.clientRevision, request.currency, request.stakeMinor, request.offeredReturnMinor, request.settlementTerms, request.settlementTerms.source, request.settlementTerms.cashSingle, request.settlementTerms.cashParlay, request.settlementTerms.reference, request.settlementTerms.version, request.settlementTerms.pushes, request.settlementTerms.voids.
  - Minor: String arguments with no constraint or example: request.confirmation, request.settlementTerms.cashSingle, request.settlementTerms.cashParlay.
  - Minor: Says nothing about what it returns.
- `get_doctor_events`: 44 / 100
  - Major: Arguments without a description: jobId, after.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `get_doctor_job`: 44 / 100
  - Major: Arguments without a description: jobId.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `get_player_research`: 44 / 100
  - Major: Arguments without a description: league, player, team, opponent, playerId, teamId, opponentTeamId, eventId, market, line.
  - Minor: Says nothing about what it returns.
- `refresh_sportsbook`: 44 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: accountId, commandKey.
  - Minor: Required identifiers whose description does not say where the value comes from: accountId. Name the tool or the place that returns it, or models look it up first.
- `cancel_grade`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: commandKey, jobId.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `forget_doctor_note`: 45 / 100
  - Major: Arguments without a description: commandKey, id, expectedRevision, confirmation.
  - Minor: String arguments with no constraint or example: confirmation.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: id. Name the tool or the place that returns it, or models look it up first.
- `get_doctor_picks`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: league, sport.
  - Minor: Says nothing about what it returns.
- `tail_read`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: version, action, feed, profileId, listId, search, limit, cursor, postId, replyId, fadedByLimit, fadedByCursor.
  - Minor: String arguments with no constraint or example: version.
  - Minor: Says nothing about what it returns.
- `ticket_actions`: 45 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: action.
  - Minor: Says nothing about what it returns.
- `get_history_summary`: 46 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: recordKind.
  - Minor: String arguments with no constraint or example: currency.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `get_tail_feed`: 46 / 100
  - Major: Arguments without a description: gradeFamily, feed, profileId, listId, search, limit, cursor.
- `get_tail_post`: 46 / 100
  - Major: Arguments without a description: postId, fadedByLimit, fadedByCursor.
  - Minor: Required identifiers whose description does not say where the value comes from: postId. Name the tool or the place that returns it, or models look it up first.
- `start_plan_upgrade`: 46 / 100
  - Major: Arguments without a description: plan, interval.
  - Minor: No `required` list, so every argument is optional.
- `get_box_score`: 47 / 100
  - Major: Arguments without a description: eventId.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: eventId. Name the tool or the place that returns it, or models look it up first.
- `get_grade_job`: 47 / 100
  - Major: Arguments without a description: jobId.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `get_grade_progress`: 47 / 100
  - Major: Arguments without a description: jobId, representation, after, limit.
  - Minor: String arguments with no constraint or example: representation.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `show_betting_history`: 47 / 100
  - Major: Arguments without a description: range, includePickemEntries, recordKind, advice, adviceBasis, bookId, league, sport, result, graded, search, currency, source, cursor, limit.
  - Minor: The meaning of the boolean argument includePickemEntries is unclear.
  - Minor: Says nothing about what it returns.
- `get_tracked_slips`: 48 / 100
  - Major: Arguments without a description: limit, search, cursor.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `prepare_sportsbook_handoff`: 48 / 100
  - Major: Arguments without a description: ticketId, quoteAcceptance, quoteAcceptance.binding, quoteAcceptance.expiresAt, platform, bookKey, state.
  - Minor: Required identifiers whose description does not say where the value comes from: ticketId. Name the tool or the place that returns it, or models look it up first.
- `add_doctor_parlay_to_slip`: 49 / 100
  - Major: Arguments without a description: commandKey, key.
- `export_betting_history`: 49 / 100
  - Major: Arguments without a description: query, query.range, query.includePickemEntries, query.recordKind, query.includeLinkedManual, query.advice, query.adviceBasis, query.bookId, query.league, query.sport, query.result, query.graded, query.search, query.sort, query.currency, query.limit, cursor.
  - Minor: The description mentions none of its 3 or more arguments.
  - Minor: The meaning of the boolean argument query.includePickemEntries is unclear.
  - Minor: The meaning of the boolean argument query.includeLinkedManual is unclear.
- `get_doctor_quota`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `get_grade_evidence`: 49 / 100
  - Major: Arguments without a description: jobId.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `list_connected_agents`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `list_doctor_conversations`: 49 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `list_linkable_sportsbooks`: 49 / 100
  - Major: Arguments without a description: state.
  - Minor: No `required` list, so every argument is optional.
  - Minor: Says nothing about what it returns.
- `show_tail_feed`: 49 / 100
  - Major: Arguments without a description: gradeFamily, feed, profileId, listId, search, limit, cursor.
- `show_tail_post`: 49 / 100
  - Major: Arguments without a description: postId, fadedByLimit, fadedByCursor.
  - Minor: Required identifiers whose description does not say where the value comes from: postId. Name the tool or the place that returns it, or models look it up first.
- `copy_tail_slip`: 50 / 100
  - Major: Arguments without a description: confirmation, mode, bookId, jurisdiction, expectedPostRevision, previewBinding, clientSlipId, clientRevision, currency, stakeMinor, offeredReturnMinor, settlementTerms, settlementTerms.source, settlementTerms.cashSingle, settlementTerms.cashParlay, settlementTerms.reference, settlementTerms.version, settlementTerms.pushes, settlementTerms.voids, postId, commandKey.
  - Minor: String arguments with no constraint or example: confirmation, settlementTerms.cashSingle, settlementTerms.cashParlay.
- `doctor_actions`: 50 / 100
  - Major: Arguments without a description: action, messageId, threadId, comparisonId.
  - Minor: Says nothing about what it returns.
- `get_bettor_profile`: 50 / 100
  - Major: Arguments without a description: topic.
  - Minor: Says nothing about what it returns.
- `get_doctor_parlays`: 50 / 100
  - Major: Arguments without a description: league.
  - Minor: Says nothing about what it returns.
- `tail_social`: 50 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: action, postId, replyId, profileId, listId.
- `notifications`: 51 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: action, itemId.
  - Minor: Says nothing about what it returns.
- `scan_slip`: 51 / 100
  - Major: Arguments without a description: commandKey, imageBase64, mimeType, imageUrl, image, image.type, image.data, image.mimeType, image.annotations, image._meta, jobId, waitSeconds.
  - Minor: String arguments with no constraint or example: image.type.
- `tail_post`: 51 / 100
  - Minor: Arguments without a description: version, action, commandKey, confirmation, draft.source, draft.text, draft.pollOptions, previewBinding, placementConfirmation, fWarning.
  - Minor: String arguments with no constraint or example: version, reaction, confirmation, draft.source.
  - Minor: The meaning of the boolean argument draft.showStake is unclear.
  - Minor: Says nothing about what it returns.
- `search_markets`: 52 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Major: Arguments without a description: query, category, league, sport, limit, cursor.
- `show_doctor_conversation`: 52 / 100
  - Major: Arguments without a description: threadId, before.
  - Minor: Required identifiers whose description does not say where the value comes from: threadId. Name the tool or the place that returns it, or models look it up first.
- `start_doctor_reply`: 52 / 100
  - Major: Arguments without a description: commandKey, quoteId.
  - Minor: Required identifiers whose description does not say where the value comes from: quoteId. Name the tool or the place that returns it, or models look it up first.
- `account_settings`: 53 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Arguments without a description: action.
  - Minor: Says nothing about what it returns.
- `create_api_key`: 54 / 100
  - Major: Arguments without a description: name, scopes.
- `grade_pickem_entry`: 54 / 100
  - Major: Arguments without a description: version, action, selections, selections[].id, selections[].eventId, selections[].entityId, selections[].provider, selections[].sport, selections[].league, selections[].market, selections[].period, selections[].side, selections[].line, selections[].label, selections[].startsAt, selections[].future, selections[].bookId, selections[].jurisdiction, selections[].oddsAmerican, selections[].observedAt, selections[].quoteVersion, ticketId, commandKey, entry, childTicketIds, depth, quoteId, jobId.
  - Minor: String arguments with no constraint or example: version.
  - Minor: The meaning of the boolean argument selections[].future is unclear.
- `list_api_keys`: 54 / 100
  - Minor: Says nothing about what it returns.
- `look_up_fact`: 54 / 100
  - Major: Arguments without a description: fact, subject, league, eventId, date, timezone, jobId.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `publish_tail_post`: 54 / 100
  - Major: Arguments without a description: commandKey, confirmation, draft, previewBinding, placementConfirmation, fWarning.
  - Minor: String arguments with no constraint or example: confirmation.
  - Minor: Says nothing about what it returns.
- `read_pasted_slip`: 54 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `view_tail_analysis`: 54 / 100
  - Major: Arguments without a description: postId.
- `disconnect_sportsbook`: 55 / 100
  - Major: Arguments without a description: accountId, confirm, commandKey.
  - Minor: The meaning of the boolean argument confirm is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: accountId. Name the tool or the place that returns it, or models look it up first.
- `get_doctor_memory`: 55 / 100
  - Major: Says nothing about when to use it, or when not to.
  - Minor: Says nothing about what it returns.
- `price_shop_slip`: 55 / 100
  - Minor: Arguments without a description: books.
  - Minor: Says nothing about what it returns.
  - Minor: Required identifiers whose description does not say where the value comes from: ticketId. Name the tool or the place that returns it, or models look it up first.
- `doctor_conversation`: 57 / 100
  - Major: Arguments without a description: version, action, threadId, ticketId, reportId, history, history.kind, history.id, text, note, note.id, note.expectedRevision, note.category, note.text, note.expiresAt, note.confirmation, expectedRevision, confirmation, quoteId, jobId, before, after.
  - Minor: String arguments with no constraint or example: version, note.confirmation, confirmation.
- `get_grade_report`: 57 / 100
  - Major: Arguments without a description: jobId.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `history_actions`: 57 / 100
  - Minor: Arguments without a description: action.
  - Minor: Says nothing about what it returns.
- `list_sportsbooks`: 57 / 100
  - Minor: Says nothing about what it returns.
- `show_saved_grade`: 57 / 100
  - Major: Arguments without a description: jobId.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `start_grade`: 57 / 100
  - Major: Arguments without a description: commandKey, quoteId.
  - Minor: Required identifiers whose description does not say where the value comes from: quoteId. Name the tool or the place that returns it, or models look it up first.
- `grade_slip`: 58 / 100
  - Major: Arguments without a description: version, action, commandKey, depth, funding, force, ticketId, ticket, ticket.clientSlipId, ticket.clientRevision, ticket.parentTicketId, ticket.source, ticket.intent, ticket.bookId, ticket.bookLabel, ticket.currency, ticket.stakeMinor, ticket.selections, ticket.selections[].id, ticket.selections[].eventId, ticket.selections[].entityId, ticket.selections[].provider, ticket.selections[].sport, ticket.selections[].league, ticket.selections[].market, ticket.selections[].period, ticket.selections[].side, ticket.selections[].line, ticket.selections[].label, ticket.selections[].startsAt, ticket.selections[].future, ticket.selections[].bookId, ticket.selections[].jurisdiction, ticket.selections[].oddsAmerican, ticket.selections[].observedAt, ticket.selections[].quoteVersion, ticket.confirmation, ticket.offeredReturnMinor, ticket.acceptedReturnMinor, ticket.settlementTerms, ticket.settlementTerms.source, ticket.settlementTerms.cashSingle, ticket.settlementTerms.cashParlay, ticket.settlementTerms.reference, ticket.settlementTerms.version, ticket.settlementTerms.pushes, ticket.settlementTerms.voids, ticket.groups, ticket.groups[].legIndexes, ticket.groups[].oddsAmerican, ticket.groups[].label, quoteId, jobId.
  - Minor: String arguments with no constraint or example: version, ticket.source, ticket.selections[].provider, ticket.confirmation, ticket.settlementTerms.cashSingle, ticket.settlementTerms.cashParlay.
  - Minor: The meaning of the boolean argument force is unclear.
  - Minor: The meaning of the boolean argument ticket.selections[].future is unclear.
- `remember_doctor_note`: 58 / 100
  - Major: Arguments without a description: commandKey, note, note.id, note.expectedRevision, note.category, note.text, note.expiresAt, note.confirmation.
  - Minor: String arguments with no constraint or example: note.confirmation.
- `share_graded_ticket_to_tail`: 58 / 100
  - Major: Arguments without a description: reportId, showStake, confirmation, commandKey, previewBinding, fWarning.
  - Minor: String arguments with no constraint or example: confirmation.
  - Minor: The meaning of the boolean argument showStake is unclear.
  - Minor: Required identifiers whose description does not say where the value comes from: reportId. Name the tool or the place that returns it, or models look it up first.
- `connect_sportsbook`: 59 / 100
  - Major: Arguments without a description: book, state, consent, consentTextVersion, commandKey.
  - Minor: The meaning of the boolean argument consent is unclear.
- `get_plan`: 60 / 100
  - Minor: Says nothing about what it returns.
- `quote_grade`: 61 / 100
  - Major: Arguments without a description: commandKey, depth, funding, force, ticketId, ticket, ticket.clientSlipId, ticket.clientRevision, ticket.parentTicketId, ticket.source, ticket.intent, ticket.bookId, ticket.bookLabel, ticket.currency, ticket.stakeMinor, ticket.selections, ticket.selections[].id, ticket.selections[].eventId, ticket.selections[].entityId, ticket.selections[].provider, ticket.selections[].sport, ticket.selections[].league, ticket.selections[].market, ticket.selections[].period, ticket.selections[].side, ticket.selections[].line, ticket.selections[].label, ticket.selections[].startsAt, ticket.selections[].future, ticket.selections[].bookId, ticket.selections[].jurisdiction, ticket.selections[].oddsAmerican, ticket.selections[].observedAt, ticket.selections[].quoteVersion, ticket.confirmation, ticket.offeredReturnMinor, ticket.acceptedReturnMinor, ticket.settlementTerms, ticket.settlementTerms.source, ticket.settlementTerms.cashSingle, ticket.settlementTerms.cashParlay, ticket.settlementTerms.reference, ticket.settlementTerms.version, ticket.settlementTerms.pushes, ticket.settlementTerms.voids, ticket.groups, ticket.groups[].legIndexes, ticket.groups[].oddsAmerican, ticket.groups[].label.
  - Minor: String arguments with no constraint or example: ticket.source, ticket.selections[].provider, ticket.confirmation, ticket.settlementTerms.cashSingle, ticket.settlementTerms.cashParlay.
  - Minor: The meaning of the boolean argument force is unclear.
  - Minor: The meaning of the boolean argument ticket.selections[].future is unclear.
- `fix_grade_leg`: 62 / 100
  - Major: Arguments without a description: jobId, commandKey, ticketDigest, target.
  - Minor: Required identifiers whose description does not say where the value comes from: jobId. Name the tool or the place that returns it, or models look it up first.
- `get_league_order`: 65 / 100
  - Minor: Says nothing about what it returns.
- `create_tracked_slip`: 70 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: client_mutation_id. Name the tool or the place that returns it, or models look it up first.
- `get_todays_board`: 70 / 100
  - Minor: Arguments without a description: limit, league, cursor.
  - Minor: String arguments with no constraint or example: league.
  - Minor: No `required` list, so every argument is optional.
- `track_slip`: 73 / 100
  - Minor: Required identifiers whose description does not say where the value comes from: client_mutation_id. Name the tool or the place that returns it, or models look it up first.

Is your server listed here and you would rather it were not? Email support@forecall.dev, and we will take it off within 7 days.

[All scored servers](https://forecall.dev/en/servers)
