order_sending_setup
Order the sending setup
Act · mcp:actApproval cardIrreversibleCalls a providerPrepares the purchase of exactly the domains and mailboxes the user kept. It opens an approval card: only the user's click, on the card or in VibeSell, places the order.
Prepare the purchase of the sending domains and mailboxes the user kept — exactly those names and those people, nothing broader. It does NOT buy: it opens an approval card, and only the user's click on it, here or in VibeSell, places the order. Needs an active plan. Never say the order is placed before the result says done.Example
Section titled “Example”The user says
Keep these names and set them up.
{ "name": "order_sending_setup", "arguments": { "domains": ["getdentalflow.com", "trydentalflow.com", "dentalflowhq.com"], "mailboxesPerDomain": 3, "mailboxOwners": [ { "firstName": "Ana", "lastName": "Duval" } ], "summary": "Register 3 domains and set up 9 mailboxes signed by Ana Duval" }}Arguments
Section titled “Arguments”domainsstring[]required3–120 chars1–20 itemsOnly domains reported available by quote_infrastructure, called with the same preWarmed value — .com only for now.
preWarmedbooleanoptionaltrue only for warmed domains the founder kept — any other warmed name is refused. The domains then come from the provider's shelf and carry NO named address: mailboxOwners is ignored, and you must never promise them an address named after their people.
mailboxesPerDomainintegerrequired1–10Ignored for warmed stock: the provider sets that count.
mailboxOwnersobject[]optional1–10 itemsReal people the mailboxes will be from — ASK THE FOUNDER, never invent them. Required unless preWarmed, where it is ignored. Cold email sent from a role address (contact@, hello@) or a fake identity destroys deliverability. Their names become the addresses, varied per person; naming too few people for mailboxesPerDomain gets the order refused.
firstNamestringrequired1–60 charslastNamestringrequired1–60 chars
summarystringrequired3–300 charsWhat is bought, in one sentence.
Input schema
{ "type": "object", "properties": { "domains": { "minItems": 1, "maxItems": 20, "type": "array", "items": { "type": "string", "minLength": 3, "maxLength": 120 }, "description": "Only domains reported available by quote_infrastructure, called with the same preWarmed value — .com only for now." }, "preWarmed": { "description": "true only for warmed domains the founder kept — any other warmed name is refused. The domains then come from the provider's shelf and carry NO named address: mailboxOwners is ignored, and you must never promise them an address named after their people.", "type": "boolean" }, "mailboxesPerDomain": { "type": "integer", "minimum": 1, "maximum": 10, "description": "Ignored for warmed stock: the provider sets that count." }, "mailboxOwners": { "description": "Real people the mailboxes will be from — ASK THE FOUNDER, never invent them. Required unless preWarmed, where it is ignored. Cold email sent from a role address (contact@, hello@) or a fake identity destroys deliverability. Their names become the addresses, varied per person; naming too few people for mailboxesPerDomain gets the order refused.", "minItems": 1, "maxItems": 10, "type": "array", "items": { "type": "object", "properties": { "firstName": { "type": "string", "minLength": 1, "maxLength": 60 }, "lastName": { "type": "string", "minLength": 1, "maxLength": 60 } }, "required": ["firstName", "lastName"] } }, "summary": { "type": "string", "minLength": 3, "maxLength": 300, "description": "What is bought, in one sentence." } }, "required": ["domains", "mailboxesPerDomain", "summary"]}Result
Section titled “Result”Result kindapproval
kind"approval"status"pending" | "done" | "not_done" | "rejected"pending: waits for the user's click. done: approved and carried out. not_done: approved but refused when run. rejected: the user said no.
approvalobjectidstringactionstringsummarystringimpactstringirreversiblebooleanexpiresAtstring
outcomestring | nullWhat happened once decided, in a sentence.
decideHerebooleanTrue when the card shows Approve and Reject; otherwise the user decides in VibeSell.
appUrlstringWhere the user approves or rejects it in VibeSell.
Output schema
{ "type": "object", "properties": { "kind": { "type": "string", "const": "approval" }, "status": { "type": "string", "enum": ["pending", "done", "not_done", "rejected"], "description": "pending: waits for the user's click. done: approved and carried out. not_done: approved but refused when run. rejected: the user said no." }, "approval": { "type": "object", "properties": { "id": { "type": "string" }, "action": { "type": "string" }, "summary": { "type": "string" }, "impact": { "type": "string" }, "irreversible": { "type": "boolean" }, "expiresAt": { "type": "string" } }, "required": ["id", "action", "summary", "impact", "irreversible", "expiresAt"], "additionalProperties": false }, "outcome": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "What happened once decided, in a sentence." }, "decideHere": { "type": "boolean", "description": "True when the card shows Approve and Reject; otherwise the user decides in VibeSell." }, "appUrl": { "type": "string", "description": "Where the user approves or rejects it in VibeSell." } }, "required": ["kind", "status", "approval", "outcome", "decideHere", "appUrl"], "additionalProperties": false}Good to know
Section titled “Good to know”- Needs an active plan. Domains and mailboxes are included in it.
- A registered domain cannot be given back: it stays registered whether the user sends from it or not.
- Once approved, the mailboxes are set up and their warmup starts on its own; the user gets an email when they are ready.