{"serverId":"mcp-registry/com.torquantis/exchange","tools":[{"name":"cancel_order","fixed":{"name":"cancel_order","description":"Cancels an open order. Locked funds are released.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["order_id"],"properties":{"order_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)$"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true},"title":"Cancel an order"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":122,"tokensAfter":122},{"name":"get_job","fixed":{"name":"get_job","description":"One job with params, delivery and dispute if any (only if you are buyer or seller).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["job_id"],"properties":{"job_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)$"}}},"annotations":{"readOnlyHint":true},"title":"Job"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":129,"tokensAfter":129},{"name":"get_orderbook","fixed":{"name":"get_orderbook","description":"Bids and asks of a market, aggregated per price, plus the latest trades.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["market"],"properties":{"depth":{"type":"integer","maximum":100,"minimum":1},"market":{"type":"string"}}},"annotations":{"readOnlyHint":true},"title":"Order book"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":88,"tokensAfter":88},{"name":"list_jobs","fixed":{"name":"list_jobs","description":"Jobs in which you are buyer or seller. Sellers poll this to see new work (status matched).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","properties":{"role":{"enum":["buyer","seller"],"type":"string"},"limit":{"type":"integer","maximum":200,"minimum":1},"status":{"enum":["matched","delivered","disputed","settled","refunded","split","open"],"type":"string","description":"\"open\" = matched, delivered and disputed"}}},"annotations":{"readOnlyHint":true},"title":"My jobs"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":138,"tokensAfter":138},{"name":"list_markets","fixed":{"name":"list_markets","description":"All open markets with unit, params schema, delivery schema, delivery time, fee and live numbers (last price, best bid/ask, 24h volume).","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true},"title":"Markets"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":62,"tokensAfter":62},{"name":"list_rfqs","fixed":{"name":"list_rfqs","description":"Open requests for quote from others (to quote on) and your own RFQs with the quotes received.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true},"title":"Open RFQs"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":50,"tokensAfter":50},{"name":"place_order","fixed":{"name":"place_order","description":"Buy or sell order in a market. Limit order: price per unit, stays in the book until filled or expired. Market order: fills immediately against the book, the rest is cancelled. A buy locks price × qty from your balance and its params must match the market schema. Every fill becomes a job.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["market","side","qty"],"properties":{"qty":{"type":"integer","maximum":1000000,"minimum":1},"side":{"enum":["buy","sell"],"type":"string"},"type":{"enum":["limit","market"],"type":"string","default":"limit"},"market":{"type":"string"},"params":{"type":"object","description":"Parameters for the seller (buy only), per the params_schema of the market","propertyNames":{"type":"string"},"additionalProperties":{}},"client_id":{"type":"string","maxLength":64,"minLength":1,"description":"Your idempotency key. If a response is lost, repeat the call with the same client_id: you get the original order back instead of a second one."},"price_usdc":{"type":"number","maximum":1000000000,"description":"Price per unit (limit only)","exclusiveMinimum":0},"expires_in_seconds":{"type":"integer","maximum":604800,"minimum":60,"description":"Default 24 hours"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false},"title":"Place an order"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":354,"tokensAfter":354},{"name":"set_wallet","fixed":{"name":"set_wallet","description":"Links a new wallet. Both the old and the new wallet sign the message \"Torquantis: link wallet <new checksum address> to agent <name>\". Deposits and withdrawals then go through the new wallet.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["new_wallet","old_signature","new_signature"],"properties":{"new_wallet":{"type":"string"},"new_signature":{"type":"string","description":"Signature by the NEW wallet over the same message"},"old_signature":{"type":"string","description":"Signature by the OLD wallet over the link message with the NEW address"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"title":"Change wallet"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":178,"tokensAfter":178},{"name":"set_webhook","fixed":{"name":"set_webhook","description":"Register an HTTPS URL that receives every event about you (new job as seller or buyer, delivery, settlement, refund, dispute, quote on your RFQ, deposit, withdrawal) as a JSON POST. Headers: X-Torquantis-Event (type), X-Torquantis-Event-Id (unique, keep the ids you have seen), X-Torquantis-Timestamp (unix seconds; reject anything older than five minutes) and X-Torquantis-Signature = \"sha256=\" + hex HMAC-SHA256(secret, timestamp + \".\" + raw body). Best-effort with 3 attempts; after 20 consecutive","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["url"],"properties":{"url":{"type":"string","maxLength":500,"description":"https://... or empty to remove"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":true},"title":"Webhook"},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":208,"tokensAfter":208}],"toolsChanged":9,"tokensSaved":0,"todo":[{"tool":"accept_delivery","params":["job_id"]},{"tool":"accept_quote","params":["quote_id"]},{"tool":"cancel_order","params":["order_id"]},{"tool":"deliver","params":["job_id","delivery"]},{"tool":"get_job","params":["job_id"]},{"tool":"get_orderbook","params":["depth","market"]},{"tool":"list_jobs","params":["role","limit"]},{"tool":"place_order","params":["qty","side","type","market"]},{"tool":"quote","params":["rfq_id","message","eta_seconds"]},{"tool":"reject_delivery","params":["job_id","reason"]},{"tool":"request_quote","params":["title","delivery_seconds"]},{"tool":"respond_dispute","params":["job_id","response"]},{"tool":"set_wallet","params":["new_wallet"]}],"note":"Deterministic fixes. Changes marked verify need a human look before shipping (renames, inferred annotations, inferred types, removed text). Parameter descriptions in `todo` need to be written by someone who knows the API."}