{"ok":true,"site":{"host":"moxscore.com","url":"https://moxscore.com/","type":"live","desc":"moxscore","tools":[{"name":"analyze_deck","kind":"act","impl":"imperative","description":"Analyze the current Commander decklist (or a provided list) and return health scores, category breakdown, card counts, bracket, curve, suggestions, combos summary, and the top weaknesses. Use this before recommending changes.","annotations":{"readOnlyHint":true,"destructiveHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"decklist":{"type":"string","description":"Commander decklist text. If omitted, analyze the deck currently on the page."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"propose_changes","kind":"act","impl":"imperative","description":"Propose up to 3 cuts and 3 additions to improve the weakest categories of the current analyzed deck. Does not modify the deck. Human must approve before apply_changes.","annotations":{"readOnlyHint":true,"destructiveHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"focus":{"type":"array","items":{"type":"string","enum":["ramp","draw","interaction","curve","wincons"]},"description":"Optional category names to prioritize. Defaults to the weakest scores."},"budget":{"type":"string","enum":["any","budget"],"description":"budget prefers commonly available staples. No price API is used."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"apply_changes","kind":"act","impl":"imperative","description":"Apply previously proposed or explicitly listed cuts and additions to the on-page deck, then re-analyze. Only apply names the user/agent explicitly accepts. Recalculate scores and update the UI.","annotations":{"readOnlyHint":false,"destructiveHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"cuts":{"type":"array","items":{"type":"string"},"description":"Card names to remove. Only names explicitly listed are cut."},"adds":{"type":"array","items":{"type":"string"},"description":"Card names to add. Only names explicitly listed are added."},"confirm":{"type":"boolean","description":"Must be true. If false, the write is not performed."}},"required":["cuts","adds","confirm"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"import_deck_url","kind":"act","impl":"imperative","description":"Import a Moxfield or Archidekt deck URL into the on-page workspace. Does not analyze.","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"url":{"type":"string","description":"Moxfield or Archidekt deck URL."},"confirm":{"type":"boolean","description":"Must be true. If false, the write is not performed."}},"required":["url","confirm"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"share_deck","kind":"act","impl":"imperative","description":"Create an anonymous public share link for the on-page (or provided) decklist. Returns slug, URL, deletion token, and expiry.","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"decklist":{"type":"string","description":"Decklist to share. Defaults to the on-page deck."},"name":{"type":"string"},"commander":{"type":"string"},"confirm":{"type":"boolean","description":"Must be true. If false, the write is not performed."}},"required":["confirm"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"load_shared_deck","kind":"act","impl":"imperative","description":"Load a previously shared deck by slug and place it on the page.","annotations":{"readOnlyHint":true,"destructiveHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"slug":{"type":"string","description":"Share slug from /d/:slug."}},"required":["slug"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"delete_shared_deck","kind":"transact","impl":"imperative","description":"Permanently delete a shared deck using the one-time deletion token shown when the share was created.","annotations":{"readOnlyHint":false,"destructiveHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"slug":{"type":"string"},"deletion_token":{"type":"string"},"confirm":{"type":"boolean","description":"Must be true. If false, the write is not performed."}},"required":["slug","deletion_token","confirm"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_health","kind":"answer","impl":"imperative","description":"Return the public /api/health payload (app and upstream checks). No user data.","annotations":{"readOnlyHint":true,"destructiveHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_shop_links","kind":"answer","impl":"imperative","description":"Build TCGPlayer, Manapool, and Cardmarket search links for card names. No purchase is made.","annotations":{"readOnlyHint":true,"destructiveHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"A single card name."},"names":{"type":"array","items":{"type":"string"},"description":"Card names to link."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_me","kind":"answer","impl":"imperative","description":"Return the signed-in account profile, plan, capabilities, and quotas from /api/me.","annotations":{"readOnlyHint":true,"destructiveHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"list_saved_decks","kind":"answer","impl":"imperative","description":"List saved Commander decks for the signed-in account.","annotations":{"readOnlyHint":true,"destructiveHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"save_deck","kind":"act","impl":"imperative","description":"Save the on-page (or provided) decklist as an account deck version. Pro persistence required.","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","description":"Deck name. Defaults to the commander or Untitled."},"decklist":{"type":"string","description":"Defaults to the on-page deck."},"deck_id":{"type":"string","description":"Existing saved deck id to append a version to."},"confirm":{"type":"boolean","description":"Must be true. If false, the write is not performed."}},"required":["confirm"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"list_deck_versions","kind":"answer","impl":"imperative","description":"List immutable versions for a saved deck id. Newest first.","annotations":{"readOnlyHint":true,"destructiveHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"deck_id":{"type":"string"}},"required":["deck_id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_collection","kind":"answer","impl":"imperative","description":"Return the signed-in account collection and card rows.","annotations":{"readOnlyHint":true,"destructiveHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"replace_collection","kind":"transact","impl":"imperative","description":"Replace the signed-in account collection from parsed cards or pasted CSV/text. Destructive.","annotations":{"readOnlyHint":false,"destructiveHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"text":{"type":"string","description":"ManaBox CSV, generic CSV, or text collection."},"cards":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string"},"quantity":{"type":"number"}},"required":["name","quantity"]}},"source":{"type":"string","enum":["manabox-csv","generic-csv","text"]},"confirm":{"type":"boolean","description":"Must be true. If false, the write is not performed."}},"required":["confirm"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"export_account","kind":"act","impl":"imperative","description":"Download a JSON export of the signed-in account (profile, saved decks, collection).","annotations":{"readOnlyHint":true,"destructiveHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"delete_account","kind":"transact","impl":"imperative","description":"Two-step account deletion. action=start returns a deletion_request_token. action=confirm consumes that token. Both steps require confirm=true.","annotations":{"readOnlyHint":false,"destructiveHint":true},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"action":{"type":"string","enum":["start","confirm"]},"deletion_request_token":{"type":"string","description":"Required when action=confirm."},"confirm":{"type":"boolean","description":"Must be true. If false, the write is not performed."}},"required":["action","confirm"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"get_recommendations","kind":"answer","impl":"imperative","description":"Fetch Pro-gated ranked issues and actions for the on-page (or provided) deck. Fails closed when unsigned or unavailable.","annotations":{"readOnlyHint":true,"destructiveHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"decklist":{"type":"string","description":"Defaults to the on-page deck."},"format":{"type":"string","description":"Scoring format id. Defaults to the on-page format."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"run_tuner","kind":"act","impl":"imperative","description":"Run the deterministic Bracket Tuner locally for the on-page (or provided) deck. Does not call /api/tune or a model provider.","annotations":{"readOnlyHint":true,"destructiveHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"decklist":{"type":"string","description":"Defaults to the on-page deck."},"target_bracket":{"type":"integer","enum":[2,3,4,5]},"budget_eur_per_card":{"type":"number","description":"0 or unset uses owned-only swaps."},"ownership_mode":{"type":"string","enum":["any","prefer-owned","owned-only"]},"excluded_card_names":{"type":"array","items":{"type":"string"}},"collection":{"type":"array","items":{"type":"string"},"description":"Owned card names."}},"required":["target_bracket"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"run_pod_check","kind":"act","impl":"imperative","description":"Run Pro-gated Pod Check for provided decks or the decks currently on /pod.","annotations":{"readOnlyHint":true,"destructiveHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"decks":{"type":"array","items":{"type":"object","additionalProperties":false,"properties":{"decklist":{"type":"string"},"label":{"type":"string"}},"required":["decklist"]}}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"start_checkout","kind":"transact","impl":"imperative","description":"Start Stripe Checkout for an allowlisted price key and return the hosted URL. Closed unless billing UI is enabled.","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"price_key":{"type":"string","enum":["pro_monthly","pro_annual"]},"confirm":{"type":"boolean","description":"Must be true. If false, the write is not performed."}},"required":["price_key","confirm"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"},{"name":"open_billing_portal","kind":"act","impl":"imperative","description":"Open the Stripe Customer Portal and return the hosted URL. Closed unless billing UI is enabled.","annotations":{"readOnlyHint":false,"destructiveHint":false},"inputSchema":{"type":"object","additionalProperties":false,"properties":{"confirm":{"type":"boolean","description":"Must be true. If false, the write is not performed."}},"required":["confirm"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute"}],"category":"Media & Personal","favicon":"/favicons/moxscore.com.png","apiSurface":"spec","toolCount":22}}