Skip to content

upgrade_plan

Move up to a bigger plan

Act · mcp:actApproval cardIrreversibleOpens at: Setting up the sending infrastructureCalls a provider

Moves the workspace up to a bigger plan. It opens an approval card that states the plan, its price, its credits and its fleet; only the user's click moves them, charged today.

Description the model readsSent as is in tools/list.
Move the workspace up to a bigger plan, when what the user wants does not fit the one they pay for. It spends real money, charged today, and the billing month restarts. It does NOT move them: it opens an approval card stating the plan, its price, its credits and its fleet, and only the user's click on it moves them. Only ever up; coming back down is chosen in VibeSell's billing settings.

The user says

I need more volume — move me to Scale.

tools/call · Arguments the assistant sends
{
"name": "upgrade_plan",
"arguments": {
"planCode": "SCALE"
}
}
planCode"STARTER" | "GROWTH" | "SCALE"required

The plan to move up to — strictly above the one they pay for today, which get_workspace_context reads back. Anything at or below it is refused.

Input schema
{
"type": "object",
"properties": {
"planCode": {
"type": "string",
"enum": ["STARTER", "GROWTH", "SCALE"],
"description": "The plan to move up to — strictly above the one they pay for today, which get_workspace_context reads back. Anything at or below it is refused."
}
},
"required": ["planCode"]
}

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.

approvalobject
  • id string
  • action string
  • summary string
  • impact string
  • irreversible boolean
  • expiresAt string
outcomestring | null

What happened once decided, in a sentence.

decideHereboolean

True when the card shows Approve and Reject; otherwise the user decides in VibeSell.

appUrlstring

Where 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
}
  • Only ever up: a plan at or below the current one is refused.
  • The billing month restarts on the day of the change.
  • Moving down, or calling off a scheduled change, is done in VibeSell's billing settings.