{"ok":true,"site":{"host":"open-mercy.com","url":"https://open-mercy.com/","type":"live","desc":"Play Open Mercy free in your browser - the ruthless stacking card game. Real-time multiplayer with friends (2-20 players), vs AI mode, Draw 6, Draw 10, Skip Everyone, Color Roulette, hand swaps,…","tools":[{"name":"scan_images_c2pa","kind":"answer","impl":"imperative","description":"Scan every <img> on the current page for C2PA Content Credentials (content provenance metadata) and return a per-image summary: whether a manifest is present, the claim generator (the tool that produced or edited the image), the title, and the signer name. Use this to find which images on a page carry provenance data. Note: provenance is decoded but NOT cryptographically verified.","inputSchema":{"type":"object","properties":{"limit":{"type":"integer","minimum":1,"maximum":100,"default":25,"description":"Maximum number of images to fetch and scan (default 25, max 100)."}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/rules/","/leaderboard","/how-to-play/","/faq/","/rules/cheat-sheet/"]},{"name":"inspect_image_c2pa","kind":"answer","impl":"imperative","description":"Fetch a single image (by CSS selector or URL) and return its fully decoded C2PA manifest store: every manifest's claim, assertions (e.g. c2pa.actions edit history, schema.org authorship), and the COSE signature details (algorithm and signing-certificate identity). Provide exactly one of `selector` or `url`. Note: the signature is decoded but NOT cryptographically verified.","inputSchema":{"type":"object","properties":{"selector":{"type":"string","maxLength":8192,"description":"CSS selector for an <img> element on the page."},"url":{"type":"string","maxLength":8192,"description":"Same-origin image URL (absolute same-origin, or relative to the current page) to fetch and inspect. Cross-origin URLs are rejected."}},"required":[]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/rules/","/leaderboard","/how-to-play/","/faq/","/rules/cheat-sheet/"]},{"name":"how_to_play","kind":"act","impl":"imperative","description":"Return a primer on Open Mercy rules, card types, and basic tactics.","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/leaderboard"]},{"name":"get_state","kind":"answer","impl":"imperative","description":"Snapshot of the current game from your seat: your hand, the public table state, whose turn it is, what action is required of you now, and the exact legal moves. Opponent hands are never revealed. Read this before every move.","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/leaderboard"]},{"name":"wait_for_turn","kind":"act","impl":"imperative","description":"Block until it is your turn or an action is required of you, then return the fresh state. Use this instead of polling. Resolves immediately if you can already act.","inputSchema":{"type":"object","properties":{"timeout_ms":{"type":"number","description":"Max wait in ms (default 60000)."}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/leaderboard"]},{"name":"start_single_player","kind":"act","impl":"imperative","description":"Start an offline game against the bot, exactly like the in-app vs-bot game: you versus one bot (\"Terminator\"). Deals hands and begins play.","inputSchema":{"type":"object","properties":{"stacking_mode":{"type":"string","enum":["official","house","casual"]}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/leaderboard"]},{"name":"create_multiplayer_game","kind":"act","impl":"imperative","description":"Create an online room and become the host. Returns the room code to share.","inputSchema":{"type":"object","properties":{"stacking_mode":{"type":"string","enum":["official","house","casual"]}}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/leaderboard"]},{"name":"join_multiplayer_game","kind":"act","impl":"imperative","description":"Join an online room by its 6-character room code.","inputSchema":{"type":"object","properties":{"room_code":{"type":"string"}},"required":["room_code"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/leaderboard"]},{"name":"start_multiplayer_game","kind":"act","impl":"imperative","description":"Start the multiplayer game you host. Requires at least 2 players.","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/leaderboard"]},{"name":"play_card","kind":"act","impl":"imperative","description":"Play a card from your hand by id. For wild cards you must also pass a color. The move is rejected if it is not in your current legal moves.","inputSchema":{"type":"object","properties":{"card_id":{"type":"string"},"color":{"type":"string","enum":["red","blue","green","yellow"],"description":"Required for wild cards."}},"required":["card_id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/leaderboard"]},{"name":"draw_card","kind":"act","impl":"imperative","description":"Draw from the deck. If a draw stack is active you take the penalty; otherwise you draw until you find a playable card.","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/leaderboard"]},{"name":"pick_wild_color","kind":"act","impl":"imperative","description":"Choose the color for a wild card you just drew and are about to play.","inputSchema":{"type":"object","properties":{"color":{"type":"string","enum":["red","blue","green","yellow"]}},"required":["color"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/leaderboard"]},{"name":"call_uno","kind":"act","impl":"imperative","description":"Call MERCY (the last-card call). Do this when you are about to be left with one card to avoid a penalty.","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/leaderboard"]},{"name":"swap_hands","kind":"act","impl":"imperative","description":"After playing a number 7, swap your entire hand with the chosen opponent.","inputSchema":{"type":"object","properties":{"target_player_id":{"type":"string"}},"required":["target_player_id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/leaderboard"]},{"name":"skip_swap","kind":"act","impl":"imperative","description":"Decline the number 7 swap and pass your turn.","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/leaderboard"]},{"name":"set_roulette_color","kind":"act","impl":"imperative","description":"Choose the target color when you are the victim of a wild color roulette.","inputSchema":{"type":"object","properties":{"color":{"type":"string","enum":["red","blue","green","yellow"]}},"required":["color"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/leaderboard"]},{"name":"select_discard_all_top","kind":"act","impl":"imperative","description":"After a discard-all, choose which of the discarded cards lands on top of the pile.","inputSchema":{"type":"object","properties":{"card_id":{"type":"string"}},"required":["card_id"]},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/leaderboard"]},{"name":"leave_game","kind":"act","impl":"imperative","description":"Leave the current game and return to the lobby.","inputSchema":{"type":"object","properties":{}},"hasHandler":true,"hasExecute":true,"__source":"spec","executable":true,"handlerField":"execute","page":"/","pages":["/","/leaderboard"]}],"category":"Media & Personal","favicon":"/favicons/open-mercy.com.png","apiSurface":"spec","platforms":["cloudflare"],"toolCount":18}}