BetSlip Doctor

Read, grade, and track a subscriber's betslips with preserved truth and no wager placement.

使うべきか

品質と安全性

A
説明の品質
99%
スキーマの完全性
78%
命名の品質
95%
ポイズニングのリスク
80%
権限の一致
100%
プロトコルへの準拠
100%

検出事項(3)

  • HIGHTool poisoning patterns detected
  • MEDIUMTool description contains suspicious base64-like encoded stringtail_read 内
  • LOWTool 'price_shop_slip' description lacks action verbprice_shop_slip 内

ツール定義とプロトコルへの準拠に関する自動分析に基づいています。

コンテキストコスト

~12,459トークン数(ツール定義)
~2.6 KB一般的なレスポンスサイズ
注意への影響は大きい(128k コンテキストの 9.73%)

これは、サーバーのツールがモデルのコンテキストに読み込まれるたびに消費されるおおよそのトークン数です。数が多いほど、ほかのタスクに使える注意が減ります。

インストール

ワンクリックインストール

これを `claude_desktop_config.json` ファイルに追加してください:

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

リモートエンドポイント

https://api.betslipdoctor.ai/api/mcpstreamable-http

できること

ツール一覧

ツール(32)

🟢 読み取り専用🟡 書き込み🔴 削除⚪ 不明
🟢get_tracked_slips(limit, view, search, cursor)

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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Legacy tracked trees: max 50. Current app view: max 20."
    },
    "view": {
      "type": "string",
      "enum": [
        "app"
      ],
      "description": "Use current app saved-ticket library; omit for tracked trees."
    },
    "search": {
      "type": "string",
      "maxLength": 128,
      "description": "Current app view only."
    },
    "cursor": {
      "type": "string",
      "maxLength": 1000,
      "description": "Current app view only."
    }
  },
  "additionalProperties": false
}
🔴track_slip(client_mutation_id, ticket_id, expected_revision, ticket)

Create or revise one of the authenticated user's ticket trees. This stores truth state only; it never places, prepares, or hands off a wager.

入力スキーマ

{
  "type": "object",
  "properties": {
    "client_mutation_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160,
      "description": "Caller-generated idempotency key."
    },
    "ticket_id": {
      "type": "string",
      "description": "Server ticket id when revising an existing tracked slip."
    },
    "expected_revision": {
      "type": "integer",
      "minimum": 1,
      "description": "Required with ticket_id; stale writes fail with a conflict."
    },
    "ticket": {
      "type": "object",
      "description": "BSD two-level BetTicketContract. SGP children stay nested under one outer pick."
    }
  },
  "required": [
    "client_mutation_id",
    "ticket"
  ],
  "additionalProperties": false
}
🔴get_todays_board(leagues, limit, offset, view, category, ...)

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. 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 its provider, filters and cursor.

入力スキーマ

{
  "type": "object",
  "properties": {
    "leagues": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "description": "League labels to filter by, e.g. ['MLB','NFL']. Omit for all leagues."
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 50,
      "description": "Legacy main-market board: max 50. Current app games view: max 20."
    },
    "offset": {
      "type": "integer",
      "minimum": 0,
      "description": "Window offset for paging (default 0)."
    },
    "view": {
      "type": "string",
      "enum": [
        "app"
      ],
      "description": "Use the current app Live board; omit for the legacy main-market board."
    },
    "category": {
      "type": "string",
      "enum": [
        "games"
      ],
      "description": "Current app games board only; current event prices are a separate app read."
    },
    "league": {
      "type": "string",
      "description": "Current app view only."
    },
    "cursor": {
      "type": "string",
      "maxLength": 800,
      "description": "Current app view only."
    }
  },
  "additionalProperties": false
}
🔴grade_slip(version, action, commandKey, depth, funding, ...)

Use version bsd-agent-grade-v1 and a unique commandKey (16-120 characters) for every action. quote requires depth plus exactly one of ticketId (saved UUID) or ticket (exact confirmed manual ticket); funding is optional. start requires quoteId. cancel requires jobId. A quote discloses the allowance; start reserves it and returns a durable job. Use get_saved_reports for progress and the saved result. Text and legacy SGP inputs return migration_required.

入力スキーマ

{
  "type": "object",
  "properties": {
    "version": {
      "type": "string",
      "const": "bsd-agent-grade-v1"
    },
    "action": {
      "type": "string",
      "enum": [
        "quote",
        "start",
        "cancel"
      ]
    },
    "commandKey": {
      "type": "string",
      "minLength": 16,
      "maxLength": 120,
      "pattern": "^[a-zA-Z0-9_-]+$"
    },
    "depth": {
      "type": "string",
      "enum": [
        "fast",
        "smart",
        "deep",
        "elite"
      ]
    },
    "funding": {
      "default": "auto",
      "type": "string",
      "enum": [
        "auto",
        "weekly",
        "bug_bounty"
      ]
    },
    "ticketId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "ticket": {
      "type": "object",
      "properties": {
        "clientSlipId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200,
          "pattern": "^[a-zA-Z0-9_.:@/-]+$"
        },
        "clientRevision": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000000
        },
        "parentTicketId": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "source": {
          "type": "string",
          "const": "manual"
        },
        "intent": {
          "type": "string",
          "enum": [
            "singles",
            "parlay"
          ]
        },
        "bookId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200,
          "pattern": "^[a-zA-Z0-9_.:@/-]+$"
        },
        "bookLabel": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "currency": {
          "type": "string",
          "pattern": "^[A-Z]{3}$"
        },
        "stakeMinor": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000000000
        },
        "selections": {
          "minItems": 1,
          "maxItems": 25,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200,
                "pattern": "^[a-zA-Z0-9_.:@/-]+$"
              },
              "eventId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200,
                "pattern": "^[a-zA-Z0-9_.:@/-]+$"
              },
              "entityId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200,
                "pattern": "^[a-zA-Z0-9_.:@/-]+$"
              },
              "provider": {
                "type": "string",
                "const": "manual"
              },
              "sport": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200,
                "pattern": "^[a-zA-Z0-9_.:@/-]+$"
              },
              "league": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200,
                    "pattern": "^[a-zA-Z0-9_.:@/-]+$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "market": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200,
                "pattern": "^[a-zA-Z0-9_.:@/-]+$"
              },
              "period": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200,
                    "pattern": "^[a-zA-Z0-9_.:@/-]+$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "side": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200,
                "pattern": "^[a-zA-Z0-9_.:@/-]+$"
              },
              "line": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?\\d{1,8}(\\.\\d{1,4})?$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "label": {
                "type": "string",
                "minLength": 1,
                "maxLength": 300
              },
              "startsAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "future": {
                "type": "boolean",
                "const": true
              },
              "bookId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200,
                "pattern": "^[a-zA-Z0-9_.:@/-]+$"
              },
              "jurisdiction": {
                "type": "string",
                "minLength": 2,
                "maxLength": 32
              },
              "oddsAmerican": {
                "type": "integer",
                "minimum": -1000000,
                "maximum": 1000000
              },
              "observedAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "quoteVersion": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200,
                    "pattern": "^[a-zA-Z0-9_.:@/-]+$"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "id",
              "eventId",
              "entityId",
              "provider",
              "sport",
              "league",
              "market",
              "period",
              "side",
              "line",
              "label",
              "startsAt",
              "bookId",
              "jurisdiction",
              "oddsAmerican",
              "observedAt",
              "quoteVersion"
            ],
            "additionalProperties": false
          }
        },
        "confirmation": {
          "type": "string",
          "const": "exact_fields_confirmed"
        },
        "offeredReturnMinor": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 1000000000000
            },
            {
              "type": "null"
            }
          ]
        },
        "acceptedReturnMinor": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 1000000000000
            },
            {
              "type": "null"
            }
          ]
        },
        "settlementTerms": {
          "type": "object",
          "properties": {
            "source": {
              "type": "string",
              "enum": [
                "provider",
                "book_document",
                "user_reported",
                "unknown"
              ]
            },
            "cashSingle": {
              "type": "string",
              "const": "win_loss_refund"
            },
            "reference": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 500
                },
                {
                  "type": "null"
                }
              ]
            },
            "version": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200,
                  "pattern": "^[a-zA-Z0-9_.:@/-]+$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "pushes": {
              "type": "string",
              "enum": [
                "refund",
                "reprice",
                "lose",
                "unknown"
              ]
            },
            "voids": {
              "type": "string",
              "enum": [
                "refund",
                "reprice",
                "unknown"
              ]
            }
          },
          "required": [
            "source",
            "reference",
            "version",
            "pushes",
            "voids"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "clientSlipId",
        "clientRevision",
        "source",
        "intent",
        "bookId",
        "currency",
        "stakeMinor",
        "selections",
        "confirmation",
        "offeredReturnMinor",
        "acceptedReturnMinor",
        "settlementTerms"
      ],
      "additionalProperties": false
    },
    "quoteId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "jobId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "version",
    "action",
    "commandKey"
  ],
  "additionalProperties": false
}
🟢get_saved_reports(version, action, limit, cursor, jobId, ...)

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; optional after 0-1000000 and limit 1-100). Readiness requires a readable saved report. For legacy reports only, omit version/action and send optional report_id and limit 1-25. Never mix current and legacy fields.

入力スキーマ

{
  "type": "object",
  "properties": {
    "version": {
      "type": "string",
      "const": "bsd-agent-grade-v1"
    },
    "action": {
      "type": "string",
      "enum": [
        "list",
        "job",
        "progress",
        "report"
      ]
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "cursor": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    },
    "jobId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "after": {
      "default": 0,
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "report_id": {
      "type": "string",
      "description": "Legacy saved report ID; omit version and action."
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢get_history_summary(recent, view, range, recordKind, currency)

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. Numbers come 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.

入力スキーマ

{
  "type": "object",
  "properties": {
    "recent": {
      "type": "integer",
      "minimum": 0,
      "maximum": 20,
      "description": "Legacy-only: how many recent bets to include (default 5). Do not send with view: app."
    },
    "view": {
      "type": "string",
      "enum": [
        "app"
      ],
      "description": "Use the current app History summary; omit for legacy imported history."
    },
    "range": {
      "type": "string",
      "enum": [
        "1w",
        "1m",
        "3m",
        "ytd",
        "all"
      ],
      "description": "Current app view only."
    },
    "recordKind": {
      "type": "string",
      "enum": [
        "all",
        "import",
        "manual"
      ],
      "description": "Current app view only."
    },
    "currency": {
      "type": "string",
      "description": "Current app view only; ISO 4217 code."
    }
  },
  "additionalProperties": false
}
🔴price_shop_slip(legs)

Compare posted prices across books for each leg of a slip (main markets). Reports every book's quote, the best price for the bettor, and how much the user's own line gives up. Only describes books with real posted data; never places a wager. May reserve/spend odds-refresh units under the app rules; retries deduplicate only within the existing 60-second usage bucket.

入力スキーマ

{
  "type": "object",
  "properties": {
    "legs": {
      "type": "array",
      "minItems": 1,
      "maxItems": 12,
      "items": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "description": "Leg description, e.g. 'Yankees moneyline' or 'Brewers -1.5'."
          },
          "odds": {
            "type": "number",
            "description": "The american odds the user is on (e.g. -120), if known."
          },
          "book": {
            "type": "string",
            "description": "The book the user is on (e.g. 'draftkings'), if known."
          }
        },
        "required": [
          "query"
        ],
        "additionalProperties": false
      }
    }
  },
  "required": [
    "legs"
  ],
  "additionalProperties": false
}
🔴doctor_conversation(version, action, commandKey, threadId, ticketId, ...)

The app Doctor conversation. Send version bsd-agent-doctor-v1 and one action: open (commandKey, optional owned subject), threads, conversation (threadId), quota, quote (commandKey, threadId, current sequence, text), start (commandKey, quoteId), job or events (jobId), or cancel (commandKey, jobId). Keep each write commandKey stable on retry. Show the quote before start; a succeeded job carries the saved Doctor answer and the conversation stores it. The app enforces AI consent, tier, allowance, cost cap and worker admission. Do not claim an answer until the saved result is readable.

入力スキーマ

{
  "type": "object",
  "properties": {
    "version": {
      "type": "string",
      "const": "bsd-agent-doctor-v1"
    },
    "action": {
      "type": "string",
      "enum": [
        "open",
        "threads",
        "conversation",
        "quota",
        "quote",
        "start",
        "job",
        "events",
        "cancel"
      ]
    },
    "commandKey": {
      "type": "string",
      "minLength": 16,
      "maxLength": 120,
      "description": "Stable key for one write action and all its retries."
    },
    "threadId": {
      "type": "string",
      "format": "uuid"
    },
    "ticketId": {
      "type": [
        "string",
        "null"
      ],
      "format": "uuid"
    },
    "reportId": {
      "type": [
        "string",
        "null"
      ],
      "format": "uuid"
    },
    "history": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "import",
            "manual"
          ]
        },
        "id": {
          "type": "string",
          "format": "uuid"
        }
      },
      "required": [
        "kind",
        "id"
      ],
      "additionalProperties": false
    },
    "sequence": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1998,
      "description": "Current thread sequence from conversation."
    },
    "text": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4000
    },
    "quoteId": {
      "type": "string",
      "format": "uuid"
    },
    "jobId": {
      "type": "string",
      "format": "uuid"
    },
    "before": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2001
    },
    "after": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "required": [
    "version",
    "action"
  ],
  "additionalProperties": false
}
🟢tail_read(version, action, feed, profileId, listId, ...)

Send version bsd-agent-tail-v1 and action feed (optional feed/profileId/listId/search/limit/cursor) or post (postId). Read the same account-filtered Tail feed or one visible post as the BSD app. Moderation, follows, mutes, private lists and cursor binding use the app service.

入力スキーマ

{
  "type": "object",
  "properties": {
    "version": {
      "type": "string",
      "const": "bsd-agent-tail-v1"
    },
    "action": {
      "type": "string",
      "enum": [
        "feed",
        "post"
      ]
    },
    "feed": {
      "type": "string",
      "enum": [
        "community",
        "for_you",
        "following",
        "own",
        "profile",
        "bookmarks",
        "list"
      ]
    },
    "profileId": {
      "type": "string",
      "format": "uuid"
    },
    "listId": {
      "type": "string",
      "format": "uuid"
    },
    "search": {
      "type": "string",
      "maxLength": 100
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25
    },
    "cursor": {
      "type": "string",
      "maxLength": 1500
    },
    "postId": {
      "type": "string",
      "format": "uuid"
    }
  },
  "required": [
    "version",
    "action"
  ],
  "additionalProperties": false
}
🔴tail_post(version, action, commandKey, confirmation, draft, ...)

Send version bsd-agent-tail-v1. Preview a draft from either an owned saved Grade report (reportId, text, showStake, placement) or saved Doctor exchange (source doctor_exchange, threadId, messageId, text) through the app service. Publish only after showing the exact preview and getting the customer’s confirmation. For action publish reuse the same draft and previewBinding, pass confirmation PUBLISH_POST, placementConfirmation, fWarning and a stable commandKey. Publishing enters the app moderation queue; it is not a wager.

入力スキーマ

{
  "type": "object",
  "properties": {
    "version": {
      "type": "string",
      "const": "bsd-agent-tail-v1"
    },
    "action": {
      "type": "string",
      "enum": [
        "preview",
        "publish"
      ]
    },
    "commandKey": {
      "type": "string",
      "minLength": 16,
      "maxLength": 120
    },
    "confirmation": {
      "type": "string",
      "const": "PUBLISH_POST"
    },
    "draft": {
      "type": "object",
      "description": "The exact app post draft: either a saved Grade report or a saved Doctor exchange.",
      "properties": {
        "reportId": {
          "type": "string",
          "format": "uuid",
          "description": "Owned saved Grade job ID for a ticket post."
        },
        "source": {
          "type": "string",
          "const": "doctor_exchange"
        },
        "threadId": {
          "type": "string",
          "format": "uuid",
          "description": "Owned Doctor thread for an exchange post."
        },
        "messageId": {
          "type": "string",
          "format": "uuid",
          "description": "Saved Doctor reply in that thread."
        },
        "text": {
          "type": "string",
          "maxLength": 280
        },
        "showStake": {
          "type": "boolean",
          "description": "Ticket post only."
        },
        "placement": {
          "type": "string",
          "enum": [
            "asking",
            "self_reported_placed"
          ],
          "description": "Ticket post only."
        },
        "pollOptions": {
          "type": "array",
          "minItems": 2,
          "maxItems": 4,
          "items": {
            "type": "string",
            "minLength": 1,
            "maxLength": 50
          }
        }
      },
      "required": [
        "text"
      ],
      "additionalProperties": false
    },
    "previewBinding": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "placementConfirmation": {
      "type": "string",
      "enum": [
        "NOT_PLACED",
        "SELF_REPORTED_PLACED"
      ]
    },
    "fWarning": {
      "type": [
        "string",
        "null"
      ],
      "enum": [
        "acknowledge",
        "dont_ask_again",
        null
      ]
    }
  },
  "required": [
    "version",
    "action",
    "draft"
  ],
  "additionalProperties": false
}
🟡quote_grade(commandKey, depth, funding, ticketId, ticket)

Persist a Grade quote for an owned saved ticketId or exactly one confirmed manual ticket, with the requested depth and optional funding. May save that manual ticket. Returns the app allowance quote; does not start work. Show the quote before requesting a start. Keep the caller-generated commandKey (16-120 characters) stable for this action and all retries. Action and version are fixed by this tool; do not supply them.

入力スキーマ

{
  "type": "object",
  "properties": {
    "commandKey": {
      "type": "string",
      "minLength": 16,
      "maxLength": 120,
      "pattern": "^[a-zA-Z0-9_-]+$"
    },
    "depth": {
      "type": "string",
      "enum": [
        "fast",
        "smart",
        "deep",
        "elite"
      ]
    },
    "funding": {
      "default": "auto",
      "type": "string",
      "enum": [
        "auto",
        "weekly",
        "bug_bounty"
      ]
    },
    "ticketId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "ticket": {
      "type": "object",
      "properties": {
        "clientSlipId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200,
          "pattern": "^[a-zA-Z0-9_.:@/-]+$"
        },
        "clientRevision": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000000
        },
        "parentTicketId": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        "source": {
          "type": "string",
          "const": "manual"
        },
        "intent": {
          "type": "string",
          "enum": [
            "singles",
            "parlay"
          ]
        },
        "bookId": {
          "type": "string",
          "minLength": 1,
          "maxLength": 200,
          "pattern": "^[a-zA-Z0-9_.:@/-]+$"
        },
        "bookLabel": {
          "type": "string",
          "minLength": 1,
          "maxLength": 80
        },
        "currency": {
          "type": "string",
          "pattern": "^[A-Z]{3}$"
        },
        "stakeMinor": {
          "type": "integer",
          "minimum": 0,
          "maximum": 1000000000000
        },
        "selections": {
          "minItems": 1,
          "maxItems": 25,
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200,
                "pattern": "^[a-zA-Z0-9_.:@/-]+$"
              },
              "eventId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200,
                "pattern": "^[a-zA-Z0-9_.:@/-]+$"
              },
              "entityId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200,
                "pattern": "^[a-zA-Z0-9_.:@/-]+$"
              },
              "provider": {
                "type": "string",
                "const": "manual"
              },
              "sport": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200,
                "pattern": "^[a-zA-Z0-9_.:@/-]+$"
              },
              "league": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200,
                    "pattern": "^[a-zA-Z0-9_.:@/-]+$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "market": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200,
                "pattern": "^[a-zA-Z0-9_.:@/-]+$"
              },
              "period": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200,
                    "pattern": "^[a-zA-Z0-9_.:@/-]+$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "side": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200,
                "pattern": "^[a-zA-Z0-9_.:@/-]+$"
              },
              "line": {
                "anyOf": [
                  {
                    "type": "string",
                    "pattern": "^-?\\d{1,8}(\\.\\d{1,4})?$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "label": {
                "type": "string",
                "minLength": 1,
                "maxLength": 300
              },
              "startsAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "future": {
                "type": "boolean",
                "const": true
              },
              "bookId": {
                "type": "string",
                "minLength": 1,
                "maxLength": 200,
                "pattern": "^[a-zA-Z0-9_.:@/-]+$"
              },
              "jurisdiction": {
                "type": "string",
                "minLength": 2,
                "maxLength": 32
              },
              "oddsAmerican": {
                "type": "integer",
                "minimum": -1000000,
                "maximum": 1000000
              },
              "observedAt": {
                "anyOf": [
                  {
                    "type": "string",
                    "format": "date-time",
                    "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d:[0-5]\\d(?:\\.\\d+)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$"
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "quoteVersion": {
                "anyOf": [
                  {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200,
                    "pattern": "^[a-zA-Z0-9_.:@/-]+$"
                  },
                  {
                    "type": "null"
                  }
                ]
              }
            },
            "required": [
              "id",
              "eventId",
              "entityId",
              "provider",
              "sport",
              "league",
              "market",
              "period",
              "side",
              "line",
              "label",
              "startsAt",
              "bookId",
              "jurisdiction",
              "oddsAmerican",
              "observedAt",
              "quoteVersion"
            ],
            "additionalProperties": false
          }
        },
        "confirmation": {
          "type": "string",
          "const": "exact_fields_confirmed"
        },
        "offeredReturnMinor": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 1000000000000
            },
            {
              "type": "null"
            }
          ]
        },
        "acceptedReturnMinor": {
          "anyOf": [
            {
              "type": "integer",
              "minimum": 0,
              "maximum": 1000000000000
            },
            {
              "type": "null"
            }
          ]
        },
        "settlementTerms": {
          "type": "object",
          "properties": {
            "source": {
              "type": "string",
              "enum": [
                "provider",
                "book_document",
                "user_reported",
                "unknown"
              ]
            },
            "cashSingle": {
              "type": "string",
              "const": "win_loss_refund"
            },
            "reference": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 500
                },
                {
                  "type": "null"
                }
              ]
            },
            "version": {
              "anyOf": [
                {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 200,
                  "pattern": "^[a-zA-Z0-9_.:@/-]+$"
                },
                {
                  "type": "null"
                }
              ]
            },
            "pushes": {
              "type": "string",
              "enum": [
                "refund",
                "reprice",
                "lose",
                "unknown"
              ]
            },
            "voids": {
              "type": "string",
              "enum": [
                "refund",
                "reprice",
                "unknown"
              ]
            }
          },
          "required": [
            "source",
            "reference",
            "version",
            "pushes",
            "voids"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "clientSlipId",
        "clientRevision",
        "source",
        "intent",
        "bookId",
        "currency",
        "stakeMinor",
        "selections",
        "confirmation",
        "offeredReturnMinor",
        "acceptedReturnMinor",
        "settlementTerms"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "commandKey",
    "depth"
  ],
  "additionalProperties": false
}
🔴start_grade(commandKey, quoteId)

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, credit and admission rules apply. Returns a job, not a completed answer. Keep the caller-generated commandKey (16-120 characters) stable for this action and all retries. Action and version are fixed by this tool; do not supply them.

入力スキーマ

{
  "type": "object",
  "properties": {
    "commandKey": {
      "type": "string",
      "minLength": 16,
      "maxLength": 120,
      "pattern": "^[a-zA-Z0-9_-]+$"
    },
    "quoteId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "commandKey",
    "quoteId"
  ],
  "additionalProperties": false
}
🔴cancel_grade(commandKey, jobId)

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. Keep the caller-generated commandKey (16-120 characters) stable for this action and all retries. Action and version are fixed by this tool; do not supply them.

入力スキーマ

{
  "type": "object",
  "properties": {
    "commandKey": {
      "type": "string",
      "minLength": 16,
      "maxLength": 120,
      "pattern": "^[a-zA-Z0-9_-]+$"
    },
    "jobId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "commandKey",
    "jobId"
  ],
  "additionalProperties": false
}
🟢list_grade_jobs(limit, cursor)

Read the authenticated account’s current Grade library, with optional limit 1-20 and account-bound cursor. Never starts research. Action and version are fixed by this tool; do not supply them.

入力スキーマ

{
  "type": "object",
  "properties": {
    "limit": {
      "default": 10,
      "type": "integer",
      "minimum": 1,
      "maximum": 20
    },
    "cursor": {
      "type": "string",
      "minLength": 1,
      "maxLength": 2000
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢get_grade_job(jobId)

Read the owned Grade jobId and its current durable status. Never starts or resumes work. Action and version are fixed by this tool; do not supply them.

入力スキーマ

{
  "type": "object",
  "properties": {
    "jobId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "jobId"
  ],
  "additionalProperties": false
}
🟢get_grade_progress(jobId, after, limit)

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. Action and version are fixed by this tool; do not supply them.

入力スキーマ

{
  "type": "object",
  "properties": {
    "jobId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "after": {
      "default": 0,
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    },
    "limit": {
      "default": 100,
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    }
  },
  "required": [
    "jobId"
  ],
  "additionalProperties": false
}
🟢get_grade_report(jobId)

Return the verified immutable saved report for an owned completed Grade jobId. Returns unavailable until the real saved report is readable; never grades again. Action and version are fixed by this tool; do not supply them.

入力スキーマ

{
  "type": "object",
  "properties": {
    "jobId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "jobId"
  ],
  "additionalProperties": false
}
⚪open_doctor_conversation(commandKey, ticketId, reportId, history)

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. Keep the caller-generated commandKey (16-120 characters) stable for this action and all retries. Action and version are fixed by this tool; do not supply them.

入力スキーマ

{
  "type": "object",
  "properties": {
    "commandKey": {
      "type": "string",
      "minLength": 16,
      "maxLength": 120,
      "pattern": "^[a-zA-Z0-9_-]+$"
    },
    "ticketId": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        {
          "type": "null"
        }
      ]
    },
    "reportId": {
      "anyOf": [
        {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        },
        {
          "type": "null"
        }
      ]
    },
    "history": {
      "type": "object",
      "properties": {
        "kind": {
          "type": "string",
          "enum": [
            "import",
            "manual"
          ]
        },
        "id": {
          "type": "string",
          "format": "uuid",
          "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
        }
      },
      "required": [
        "kind",
        "id"
      ],
      "additionalProperties": false
    }
  },
  "required": [
    "commandKey"
  ],
  "additionalProperties": false
}
🟢list_doctor_conversations

Read this account’s saved app Doctor threads. Does not generate an answer. Action and version are fixed by this tool; do not supply them.

入力スキーマ

{
  "type": "object",
  "properties": {},
  "required": [],
  "additionalProperties": false
}
🟢get_doctor_conversation(threadId, before)

Read the owned threadId, saved user messages, Doctor answers and jobs; optional before pages older messages. Does not generate a new answer. Action and version are fixed by this tool; do not supply them.

入力スキーマ

{
  "type": "object",
  "properties": {
    "threadId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "before": {
      "type": "integer",
      "minimum": 1,
      "maximum": 2001
    }
  },
  "required": [
    "threadId"
  ],
  "additionalProperties": false
}
🟢get_doctor_quota

Read this account’s current app consult allowance, held and used amounts, and reset information. Does not reserve a consult. Action and version are fixed by this tool; do not supply them.

入力スキーマ

{
  "type": "object",
  "properties": {},
  "required": [],
  "additionalProperties": false
}
🟢quote_doctor_reply(commandKey, threadId, sequence, text)

Persist an app consult quote for text in the owned threadId at its current sequence. Returns the allowance quote without starting a reply. Show the quote before requesting a start. Keep the caller-generated commandKey (16-120 characters) stable for this action and all retries. Action and version are fixed by this tool; do not supply them.

入力スキーマ

{
  "type": "object",
  "properties": {
    "commandKey": {
      "type": "string",
      "minLength": 16,
      "maxLength": 120,
      "pattern": "^[a-zA-Z0-9_-]+$"
    },
    "threadId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "sequence": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1998
    },
    "text": {
      "type": "string",
      "minLength": 1,
      "maxLength": 4000
    }
  },
  "required": [
    "commandKey",
    "threadId",
    "sequence",
    "text"
  ],
  "additionalProperties": false
}
🔴start_doctor_reply(commandKey, quoteId)

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, credit, cost cap and admission rules apply. Does not return an answer before it is saved. Keep the caller-generated commandKey (16-120 characters) stable for this action and all retries. Action and version are fixed by this tool; do not supply them.

入力スキーマ

{
  "type": "object",
  "properties": {
    "commandKey": {
      "type": "string",
      "minLength": 16,
      "maxLength": 120,
      "pattern": "^[a-zA-Z0-9_-]+$"
    },
    "quoteId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "commandKey",
    "quoteId"
  ],
  "additionalProperties": false
}
🟢get_doctor_job(jobId)

Read the owned Doctor jobId, including its real saved answer when available. Never generates or restarts a reply. Action and version are fixed by this tool; do not supply them.

入力スキーマ

{
  "type": "object",
  "properties": {
    "jobId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "jobId"
  ],
  "additionalProperties": false
}
🟢get_doctor_events(jobId, after)

Read saved events for the owned Doctor jobId, optionally after a sequence. Never starts a consult. Action and version are fixed by this tool; do not supply them.

入力スキーマ

{
  "type": "object",
  "properties": {
    "jobId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "after": {
      "type": "integer",
      "minimum": 0,
      "maximum": 1000000
    }
  },
  "required": [
    "jobId"
  ],
  "additionalProperties": false
}
🔴cancel_doctor_reply(commandKey, jobId)

Cancel an owned Doctor jobId under the app cancellation and reservation rules. Cannot undo a reply or provider work already completed. Keep the caller-generated commandKey (16-120 characters) stable for this action and all retries. Action and version are fixed by this tool; do not supply them.

入力スキーマ

{
  "type": "object",
  "properties": {
    "commandKey": {
      "type": "string",
      "minLength": 16,
      "maxLength": 120,
      "pattern": "^[a-zA-Z0-9_-]+$"
    },
    "jobId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "commandKey",
    "jobId"
  ],
  "additionalProperties": false
}
🟢get_tail_feed(feed, profileId, listId, search, limit, ...)

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. Action and version are fixed by this tool; do not supply them.

入力スキーマ

{
  "type": "object",
  "properties": {
    "feed": {
      "type": "string",
      "enum": [
        "community",
        "for_you",
        "following",
        "own",
        "profile",
        "bookmarks",
        "list"
      ]
    },
    "profileId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "listId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    },
    "search": {
      "type": "string",
      "maxLength": 100
    },
    "limit": {
      "type": "integer",
      "minimum": 1,
      "maximum": 25
    },
    "cursor": {
      "type": "string",
      "minLength": 1,
      "maxLength": 1500
    }
  },
  "required": [],
  "additionalProperties": false
}
🟢get_tail_post(postId)

Read one app Tail postId visible to this account under the same moderation and privacy rules. May contain another community member’s published content; does not post. Action and version are fixed by this tool; do not supply them.

入力スキーマ

{
  "type": "object",
  "properties": {
    "postId": {
      "type": "string",
      "format": "uuid",
      "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
    }
  },
  "required": [
    "postId"
  ],
  "additionalProperties": false
}
🟢preview_tail_post(draft)

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. Action and version are fixed by this tool; do not supply them.

入力スキーマ

{
  "type": "object",
  "properties": {
    "draft": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "source": {
              "type": "string",
              "const": "doctor_exchange"
            },
            "threadId": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            "messageId": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            "text": {
              "type": "string",
              "maxLength": 280
            },
            "pollOptions": {
              "minItems": 2,
              "maxItems": 4,
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 50
              }
            }
          },
          "required": [
            "source",
            "threadId",
            "messageId",
            "text"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "reportId": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            "text": {
              "type": "string",
              "maxLength": 280
            },
            "showStake": {
              "type": "boolean"
            },
            "placement": {
              "type": "string",
              "enum": [
                "asking",
                "self_reported_placed"
              ]
            },
            "pollOptions": {
              "minItems": 2,
              "maxItems": 4,
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 50
              }
            }
          },
          "required": [
            "reportId",
            "text",
            "showStake",
            "placement"
          ],
          "additionalProperties": false
        }
      ]
    }
  },
  "required": [
    "draft"
  ],
  "additionalProperties": false
}
🔴publish_tail_post(commandKey, confirmation, draft, previewBinding, placementConfirmation, ...)

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. Keep the caller-generated commandKey (16-120 characters) stable for this action and all retries. Action and version are fixed by this tool; do not supply them.

入力スキーマ

{
  "type": "object",
  "properties": {
    "commandKey": {
      "type": "string",
      "minLength": 16,
      "maxLength": 120,
      "pattern": "^[a-zA-Z0-9_-]+$"
    },
    "confirmation": {
      "type": "string",
      "const": "PUBLISH_POST"
    },
    "draft": {
      "anyOf": [
        {
          "type": "object",
          "properties": {
            "source": {
              "type": "string",
              "const": "doctor_exchange"
            },
            "threadId": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            "messageId": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            "text": {
              "type": "string",
              "maxLength": 280
            },
            "pollOptions": {
              "minItems": 2,
              "maxItems": 4,
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 50
              }
            }
          },
          "required": [
            "source",
            "threadId",
            "messageId",
            "text"
          ],
          "additionalProperties": false
        },
        {
          "type": "object",
          "properties": {
            "reportId": {
              "type": "string",
              "format": "uuid",
              "pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
            },
            "text": {
              "type": "string",
              "maxLength": 280
            },
            "showStake": {
              "type": "boolean"
            },
            "placement": {
              "type": "string",
              "enum": [
                "asking",
                "self_reported_placed"
              ]
            },
            "pollOptions": {
              "minItems": 2,
              "maxItems": 4,
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1,
                "maxLength": 50
              }
            }
          },
          "required": [
            "reportId",
            "text",
            "showStake",
            "placement"
          ],
          "additionalProperties": false
        }
      ]
    },
    "previewBinding": {
      "type": "string",
      "pattern": "^[a-f0-9]{64}$"
    },
    "placementConfirmation": {
      "type": "string",
      "enum": [
        "NOT_PLACED",
        "SELF_REPORTED_PLACED"
      ]
    },
    "fWarning": {
      "anyOf": [
        {
          "type": "string",
          "enum": [
            "acknowledge",
            "dont_ask_again"
          ]
        },
        {
          "type": "null"
        }
      ]
    }
  },
  "required": [
    "commandKey",
    "confirmation",
    "draft",
    "previewBinding",
    "placementConfirmation",
    "fWarning"
  ],
  "additionalProperties": false
}
🟡create_tracked_slip(client_mutation_id, ticket)

Create an owned ticket tree in building state with a stable client_mutation_id for retries. Stores truth only; never prepares or places a wager. Cannot revise an existing slip.

入力スキーマ

{
  "type": "object",
  "properties": {
    "client_mutation_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160,
      "description": "Caller-generated idempotency key."
    },
    "ticket": {
      "type": "object",
      "description": "BSD two-level BetTicketContract. SGP children stay nested under one outer pick."
    }
  },
  "required": [
    "client_mutation_id",
    "ticket"
  ],
  "additionalProperties": false
}
🔴revise_tracked_slip(client_mutation_id, ticket_id, expected_revision, ticket)

Overwrite the owned tracked ticket_id with the supplied ticket tree in building state. Requires expected_revision; stale writes fail with the same app conflict. Keep client_mutation_id stable for retries. Never prepares or places a wager.

入力スキーマ

{
  "type": "object",
  "properties": {
    "client_mutation_id": {
      "type": "string",
      "minLength": 1,
      "maxLength": 160,
      "description": "Caller-generated idempotency key."
    },
    "ticket_id": {
      "type": "string",
      "description": "Server ticket id when revising an existing tracked slip."
    },
    "expected_revision": {
      "type": "integer",
      "minimum": 1,
      "description": "Required with ticket_id; stale writes fail with a conflict."
    },
    "ticket": {
      "type": "object",
      "description": "BSD two-level BetTicketContract. SGP children stay nested under one outer pick."
    }
  },
  "required": [
    "client_mutation_id",
    "ticket",
    "ticket_id",
    "expected_revision"
  ],
  "additionalProperties": false
}

比較

同種のサーバーとの比較

同じカテゴリのほかのサーバーとこのサーバーを比較します。

ツール:0
ツール:0
ツール:0

コミュニティ

このサーバーを評価する

エビデンス

最近の観測

検証済みバージョンは記録されていませんツール 32 件
検証済みバージョンは記録されていませんツール 10 件
検証済みバージョンは記録されていませんツール 7 件