{"object":"mcp_rest_descriptor","name":"address.bot","description":"Agent-facing MCP descriptor for QR postcard verification and signed status events.","transport":{"type":"rest_bridge","note":"Use the REST endpoints advertised here and in OpenAPI. JSON-RPC execution is not enabled on this endpoint."},"mechanism":{"summary":"address.bot mails a postcard with a private QR link and printed six-digit code. The recipient scans, enters the code, and your app receives signed status events.","confirmation_state":"Treat verification.delivered or verification.submitted as the code-confirmed state, depending on whether follow-up evidence is required.","audience":"Compact machine-readable surface for agents. Use /docs for the human walkthrough and /server.json for MCP discovery metadata."},"auth":{"type":"bearer_api_key","sandbox_prefix":"sk_test_","live_prefix":"sk_live_","sandbox_behavior":"Same endpoint and schema as live. No live mail or charge. Responses include test_mode: true and X-Test-Mode: true.","live_safety":"Use preflight plus x-addressbot-confirm-live-cost: true. Add x-addressbot-max-cost-cents to reject before any record or charge."},"docs_url":"https://address.bot/docs","openapi_url":"https://address.bot/api/openapi.json","llms_txt_url":"https://address.bot/llms.txt","llms_full_txt_url":"https://address.bot/llms-full.txt","agents_txt_url":"https://address.bot/agents.txt","server_json_url":"https://address.bot/server.json","webhook":{"signature_header":"x-addressbot-signature","event_header":"x-addressbot-event","delivery_header":"x-addressbot-delivery","payload_schema_ref":"https://address.bot/api/openapi.json#/components/schemas/WebhookPayload"},"tools":[{"name":"preflight_verification","title":"Preflight postcard verification","method":"POST","path":"/api/v1/preflight","auth":"bearer_api_key","description":"Validate one postcard verification request and estimate cost before create.","input_schema_ref":"/api/openapi.json#/components/schemas/PreflightRequest"},{"name":"create_verification","title":"Create postcard verification","method":"POST","path":"/api/v1/verifications","auth":"bearer_api_key","description":"Create one QR postcard verification. Use dry_run for no-record pricing and Idempotency-Key for safe retries.","input_schema_ref":"/api/openapi.json#/components/schemas/CreateVerificationRequest"},{"name":"get_verification","title":"Get verification status","method":"GET","path":"/api/v1/verifications/{id}","auth":"bearer_api_key","description":"Read status for one postcard verification. Treat delivered/submitted as recipient confirmation states."},{"name":"simulate_verification","title":"Simulate sandbox confirmation","method":"POST","path":"/api/v1/verifications/{id}/simulate","auth":"bearer_api_key","description":"Sandbox-only. Mark a test request delivered and queue the same webhook shape used by live code confirmation."},{"name":"get_billing_summary","title":"Get billing readiness","method":"GET","path":"/api/v1/billing/summary","auth":"bearer_api_key","description":"Check whether the current key is sandbox or live and whether live sends are ready."}]}