Start a check
start_checkUse this whenever a change has to be seen working in a browser — after a deploy, on a PR preview, behind a login: CheckMyApp uses the app as a real visitor, signs in with the app's stored test account, and reports what is broken. Start a check. With app_id: checks a saved app using its stored test logins, scenarios and limits — the usual call after a deploy (add deploy_sha and deploy_env so the verdict names the build, and notes for what just shipped). A Shopify app on several stores can be named by shopify_app and store instead of app_id. With url: a one-off check of any address; set ephemeral: true for a PR preview. To check exactly one thing, pass scenarios (ids from list_scenarios) or focus (a scenario or a symptom in words): the check walks only that, and get_review's coverage.asked_not_walked lists what it could not walk, at no cost; keep: true keeps a focus as a scenario of the app. With focus, expects says what must be seen — one sentence each — and get_review answers every one (seen, wrong, not_seen) with the step that shows it. A whole check takes about 20–40 minutes and spends the team's balance (its price is on wait_for_run / get_review when it finishes); follow it with wait_for_run or get_check_status. Refusals carry a stable code (quota_balance, quota_free, plan_limit, not_found, forbidden, invalid_input) — do not retry a quota refusal; quota_balance and quota_free carry buy_url and upgrade_url for the user.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "start_check"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | Or: any deployed URL to check once, e.g. a PR preview | |
| keep | No | With app_id and focus: keep it as a scenario in every check of the app | |
| team | No | Act in another of your teams, by its name or id (whoami lists them). Omitted: the key's own team | |
| focus | No | What to check, in words — a scenario or a symptom, e.g. 'Export a report: the CSV downloads'. The check walks only this | |
| notes | No | What to focus on this run, e.g. 'PR #123 changed checkout' | |
| store | No | With shopify_app: which store to check it on, e.g. 'my-staging-store' | |
| app_id | No | Check a saved app with its stored test login, scenarios and limits. Use this OR url | |
| expects | No | With focus: What must be SEEN for this to count as working, one sentence each, in words the product itself shows — e.g. ["The heading reads «Account settings».", "The page has no «Delete workspace» section."]. Start each with a capital letter. The check answers every one with a step: seen, shows otherwise, or not seen | |
| ephemeral | No | With url only: a throwaway hostname (PR preview) — private, no app kept, deleted after ~7 days | |
| scenarios | No | With app_id: scenario ids (from list_scenarios) — the check walks these and nothing else (up to 5) | |
| deploy_env | No | Environment the deploy landed in, e.g. production | |
| deploy_sha | No | Commit/build id this deploy shipped, e.g. $GITHUB_SHA — binds the verdict to it | |
| scope_hints | No | With url only: hard limits for this run | |
| shopify_app | No | Or: a connected Shopify app's handle (list_apps shopify_app), with store | |
| notify_email | No | With url only: email for the verdict-ready notice. Omitted: a broken verdict you have not read within 15 minutes goes to the person you act for |