Skip to main content
Glama

CallMCP — Phone Call MCP Server

Create or Resume Checkout

create_checkout
Idempotent

Create, or reuse, a secure payment page hosted by Stripe where the business owner pays for a KaiCalls plan from list_plans with their own card. Needs business_id, plan_id and an idempotency_key: retrying with the same key returns the same page, and choosing a different plan needs a new key. This tool charges nothing; only the owner can pay, by opening the page themselves. It never proves payment or that the phone line is live: get_checkout_status reports payment for the returned session_id.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "business_id": "<business_id>",
      "plan_id": "<plan_id>",
      "idempotency_key": "<idempotency_key>"
    },
    "name": "create_checkout"
  }
}

Input Schema

NameRequiredDescriptionDefault
plan_idYesA plan key from list_plans.
business_idYesThe business the plan is for.
idempotency_keyYesStable key for this checkout; reuse it when retrying.

Output Schema

NameRequiredDescriptionDefault
urlNo
errorNoPresent when success is false
statusNo
successYesWhether the tool completed successfully
session_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.9/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare idempotentHint=true, destructiveHint=false, and openWorldHint=true, but the description adds real context on top: no charge occurs, the returned page is the owner's own action, retries are safe with the same key, and the result is not proof of payment or a live phone line. That is exactly the outcome-level disclosure the annotations cannot carry.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Four tight sentences, front-loaded with purpose and requirements, then retry semantics, then the negative boundary. No filler or restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Return values are covered by the output schema, so the description is not obligated to explain them, and it instead spends its space on the behaviors an agent could get wrong: charging expectations, who completes payment, key reuse, and where to confirm payment status.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so parameter meaning is largely handled structurally. The description still adds value by tying plan_id back to list_plans and, more importantly, by explaining the idempotency_key contract beyond the schema's "reuse it when retrying" – specifically that switching plans requires a fresh key.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a precise verb pair ("Create, or reuse") and a specific resource ("a secure payment page hosted by Stripe"), and it names who pays and where the plan comes from (list_plans). An agent can distinguish this from get_checkout_status and list_plans without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It states the retry rule (same key returns the same page), the change case (a different plan needs a new key), and routes follow-up verification explicitly to get_checkout_status with the returned session_id. It also draws the boundary of what this call accomplishes: it charges nothing and only the owner can complete payment by opening the page.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.