{"name":"ScapeGrowth Booking Agent","description":"Checks ScapeGrowth's strategy-call availability, books 60-minute calls and sends inquiries. Deterministic, not conversational: invoke a skill with a data part {\"skill\": \"<skill id>\", ...arguments}; a plain-text message returns usage help.","version":"1.0.0","supportedInterfaces":[{"url":"https://scapegrowth.com/a2a","protocolBinding":"JSONRPC","protocolVersion":"1.0"}],"provider":{"organization":"ScapeGrowth","url":"https://scapegrowth.com"},"documentationUrl":"https://scapegrowth.com/developers","iconUrl":"https://scapegrowth.com/icon-192.png","capabilities":{"streaming":false,"pushNotifications":false,"extendedAgentCard":false,"extensions":[{"uri":"https://github.com/google-agentic-commerce/ap2/v1","description":"AP2 v0.2 merchant. Activate with the A2A-Extensions header: create_checkout then returns ap2.checkout (merchant-signed checkout_jwt); send ap2.mandates.CheckoutMandateSdJwt with checkout_id and ucp_agent_profile (your UCP profile URL with keys[]) to complete. Mandates are verified before any charge; payment uses the buyer-approved square_mandate instrument (payment_mandate_id).","required":false,"params":{"roles":["merchant"]}}]},"securitySchemes":{"oauth2":{"oauth2SecurityScheme":{"description":"Self-register at /oauth/register, then use client_credentials or authorization_code with PKCE.","oauth2MetadataUrl":"https://scapegrowth.com/.well-known/oauth-authorization-server","flows":{"clientCredentials":{"tokenUrl":"https://scapegrowth.com/oauth/token","scopes":{"slots:read":"See open strategy-call times","bookings:write":"Book a strategy call on your behalf","inquiries:write":"Send ScapeGrowth an inquiry on your behalf","purchases:write":"Start ScapeGrowth plan purchases and charge a card you authorize separately"}},"authorizationCode":{"authorizationUrl":"https://scapegrowth.com/oauth/authorize","tokenUrl":"https://scapegrowth.com/oauth/token","scopes":{"slots:read":"See open strategy-call times","bookings:write":"Book a strategy call on your behalf","inquiries:write":"Send ScapeGrowth an inquiry on your behalf","purchases:write":"Start ScapeGrowth plan purchases and charge a card you authorize separately"},"pkceRequired":true}}}}},"securityRequirements":[{"schemes":{"oauth2":{"list":["slots:read","bookings:write","inquiries:write","purchases:write"]}}}],"defaultInputModes":["application/json","text/plain"],"defaultOutputModes":["application/json","text/plain"],"skills":[{"id":"get_available_slots","name":"Get available strategy-call slots","description":"Lists open start times (America/Denver) for a 60-minute ScapeGrowth strategy call on a date. Slots start every 30 minutes, Mon/Tue/Thu/Fri 10:00-17:00 and Wed 10:00-12:00; none on weekends. Data part: {\"skill\": \"get_available_slots\", \"date\": ...}. Requires scope slots:read.","tags":["scapegrowth","slots"],"inputModes":["application/json"],"outputModes":["application/json","text/plain"]},{"id":"book_strategy_call","name":"Book a strategy call","description":"Books a real 60-minute strategy call on ScapeGrowth's calendar for the person you are acting for. Use a slotHour returned by get_available_slots for the same date. Only call this when the person asked you to book. Data part: {\"skill\": \"book_strategy_call\", \"date\": ..., \"slotHour\": ..., \"name\": ..., \"business\": ..., \"phone\": ..., \"email\": ...}. Requires scope bookings:write.","tags":["scapegrowth","bookings"],"inputModes":["application/json"],"outputModes":["application/json","text/plain"]},{"id":"send_inquiry","name":"Send an inquiry","description":"Sends ScapeGrowth an inquiry from the person you are acting for; a person replies by email. Only call this when the person asked you to get in touch. Data part: {\"skill\": \"send_inquiry\", \"firstName\": ..., \"lastName\": ..., \"email\": ...}. Requires scope inquiries:write.","tags":["scapegrowth","inquiries"],"inputModes":["application/json"],"outputModes":["application/json","text/plain"]},{"id":"create_checkout","name":"Start a plan purchase","description":"Starts buying a ScapeGrowth managed plan (starter $697/mo, growth $1,997/mo, scale $3,997/mo) for the person you act for. Returns amount_due_now and an authorize_url: send that link to the person so they save a card and set a spending limit for you. The one-time setup fee is invoiced separately and not charged here. Requires the purchases:write scope. Data part: {\"skill\": \"create_checkout\", \"plan\": ...}. Requires scope purchases:write.","tags":["scapegrowth","purchases"],"inputModes":["application/json"],"outputModes":["application/json","text/plain"]},{"id":"get_checkout","name":"Check a purchase","description":"Returns a checkout you created: status (requires_authorization, authorized, completed, failed, canceled), mandate_id and payment. Data part: {\"skill\": \"get_checkout\", \"checkout_id\": ...}. Requires scope purchases:write.","tags":["scapegrowth","purchases"],"inputModes":["application/json"],"outputModes":["application/json","text/plain"]},{"id":"complete_purchase","name":"Complete a plan purchase","description":"Charges the person's saved card through Square for an authorized checkout, within the spending limit they set. Pass mandate_id to reuse an earlier authorization for a new checkout. Safe to retry: a checkout is never charged twice. Data part: {\"skill\": \"complete_purchase\", \"checkout_id\": ...}. Requires scope purchases:write.","tags":["scapegrowth","purchases"],"inputModes":["application/json"],"outputModes":["application/json","text/plain"]}]}