{"serverId":"mcp-registry/com.honestysupport/support","tools":[{"name":"book_technician","fixed":{"name":"book_technician","description":"Reserve a previously selected time only when customer_confirmed is true and the session is waiting for that confirmation. Requires the agent bearer token. Does not mark the visit paid. Calling this with customer_confirmed false is rejected.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["session_id","customer_confirmed"],"properties":{"name":{"type":["string","null"],"default":null},"email":{"type":["string","null"],"default":null},"session_id":{"type":"string"},"idempotency_key":{"type":["string","null"],"default":null},"customer_confirmed":{"type":"boolean","description":"True only after the customer explicitly agrees to the price and time."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":209,"tokensAfter":209},{"name":"cancel_booking","fixed":{"name":"cancel_booking","description":"Cancel an unpaid reservation. Paid visits are not cancelled here. Requires the agent bearer token.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["session_id"],"properties":{"session_id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":true,"idempotentHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: true, idempotentHint: true (inferred from the name).","verify":true}],"tokensBefore":84,"tokensAfter":84},{"name":"create_support_checkout","fixed":{"name":"create_support_checkout","description":"Return the Stripe checkout URL for a reserved unpaid visit. Requires the agent bearer token. Never marks the invoice paid.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["session_id"],"properties":{"session_id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":93,"tokensAfter":93},{"name":"create_support_ticket","fixed":{"name":"create_support_ticket","description":"Open the support ticket for this diagnosis and store the technician summary. Requires the agent bearer token. Does not book a time.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["session_id"],"properties":{"session_id":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":95,"tokensAfter":95},{"name":"get_booking_status","fixed":{"name":"get_booking_status","description":"Payment and reservation status from the database. Paid is true only after Stripe has recorded payment.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["session_id"],"properties":{"session_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":86,"tokensAfter":86},{"name":"get_crypto_payment","fixed":{"name":"get_crypto_payment","description":"How an agent pays USDC for a human request. Lists MetaMask, Coinbase Wallet, Trust Wallet, Phantom, and Rainbow, plus the receiving address on Base, Ethereum, and Solana. Read-only. AI agents pay crypto for human requests.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":88,"tokensAfter":88},{"name":"get_support_options","fixed":{"name":"get_support_options","description":"List Honesty Support categories, session lengths, and the rule that a human is booked only after the customer confirms. AI agents pay crypto for human requests. Read-only. Call this first.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":79,"tokensAfter":79},{"name":"get_support_pricing","fixed":{"name":"get_support_pricing","description":"Authoritative one-time remote IT price. Do not invent a price. Read-only.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","properties":{"minutes":{"type":["integer","null"],"format":"int32","default":null,"description":"30, 60, 90, or 120. Other values snap to the nearest allowed length."}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":106,"tokensAfter":106},{"name":"get_support_ticket","fixed":{"name":"get_support_ticket","description":"Read the structured triage and ticket id for a session the caller already has.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["session_id"],"properties":{"session_id":{"type":"string"}}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":80,"tokensAfter":80},{"name":"get_technician_availability","fixed":{"name":"get_technician_availability","description":"Open technician times in UTC. Times already reserved are omitted. Read-only.","inputSchema":{"type":"object","properties":{}},"annotations":{"readOnlyHint":true}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: true (inferred from the name).","verify":true}],"tokensBefore":50,"tokensAfter":50},{"name":"start_support_session","fixed":{"name":"start_support_session","description":"Same as triage_issue. Opens a diagnosis session and does not book or charge.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["message"],"properties":{"name":{"type":["string","null"],"default":null,"description":"Customer name, when they have given it."},"email":{"type":["string","null"],"default":null,"description":"Customer email, when they have given it."},"message":{"type":"string","description":"The customer's own description of the problem."},"idempotency_key":{"type":["string","null"],"default":null,"description":"Caller-supplied key so a retry does not open a second diagnosis."}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":194,"tokensAfter":194},{"name":"submit_crypto_payment","fixed":{"name":"submit_crypto_payment","description":"Confirm a USDC transfer that pays for a human task. The transaction must already be on Base, Ethereum, or Solana. Does not accept card data. AI agents pay crypto for human requests.","inputSchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["task_id","chain","tx_hash"],"properties":{"chain":{"type":"string","description":"base, ethereum, or solana."},"wallet":{"type":"string","default":"","description":"metamask, coinbase, trust, phantom, or rainbow."},"minutes":{"type":["integer","null"],"format":"int32","default":null},"task_id":{"type":"string"},"tx_hash":{"type":"string"}}},"annotations":{"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false}},"changes":[{"kind":"annotations","detail":"Added readOnlyHint: false, destructiveHint: false, idempotentHint: false (inferred from the name).","verify":true}],"tokensBefore":188,"tokensAfter":188}],"toolsChanged":12,"tokensSaved":0,"todo":[{"tool":"book_technician","params":["name","email","session_id","idempotency_key"]},{"tool":"cancel_booking","params":["session_id"]},{"tool":"continue_triage","params":["message","session_id"]},{"tool":"create_support_checkout","params":["session_id"]},{"tool":"create_support_ticket","params":["session_id"]},{"tool":"get_booking_status","params":["session_id"]},{"tool":"get_support_ticket","params":["session_id"]},{"tool":"handoff_to_human","params":["session_id"]},{"tool":"request_asap_help","params":["session_id"]},{"tool":"request_human_help","params":["session_id"]},{"tool":"submit_crypto_payment","params":["minutes","task_id","tx_hash"]}],"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."}