Skip to main content
Glama

CallMCP — Phone Call MCP Server

Create Customer Workspace

create_customer_workspace

Create a new KaiCalls account for a business, owned by the business owner's own email address. It lets a partner or helper set up KaiCalls for a business owner. The account starts without a plan or phone number: the result includes a link the owner opens themselves to choose a plan and add their card, and the line is set up only after they pay. This tool charges nothing. By default the caller is added as an admin of the new account so they can continue setup (get_setup_checklist lists the steps); join_as_admin false skips that. partner_code credits a referring partner and does not apply to a partner's own account. Fails, creating nothing, if the email already has a KaiCalls account.

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_name": "<business_name>",
      "owner_email": "<owner_email>"
    },
    "name": "create_customer_workspace"
  }
}

Input Schema

NameRequiredDescriptionDefault
cityNo
stateNo
plan_idNoA plan key from list_plans.
websiteNo
owner_cellNoOwner's cell; calls ring it first once the line is live.
owner_emailYesThe business owner's own email. They own the workspace.
partner_codeNoReferring partner's code.
business_nameYes
business_typeNo
join_as_adminNoDefault true.

Output Schema

NameRequiredDescriptionDefault
errorNoPresent when success is false
successYesWhether the tool completed successfully
business_idNo
owner_emailNo
checkout_urlNo
partner_linkedNoPresent for a partner-scoped key: the new business is linked to the partner.
joined_as_adminNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Goes well past the annotations (readOnlyHint=false, destructiveHint=false, idempotentHint=false, openWorldHint=true) by disclosing that the account starts planless and numberless, that the owner completes payment via a link, that no charge occurs, that the caller becomes admin by default, and that it fails atomically if the email is already registered. The failure mode and non-billing behavior are exactly the traits an agent cannot get from annotations. Minor gap: no note on permissions or partner authorization requirements.

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?

Dense but front-loaded: creation, ownership, lifecycle state, cost, admin default, referral semantics, and failure mode in sequence with no filler. Each clause maps to a decision the caller must make.

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?

For a 10-parameter mutating tool with an output schema, the description covers what the agent needs and cannot otherwise know: no charge, deferred provisioning, admin side effect, and email-collision failure. Return values are summarized only to the extent they drive follow-up actions, which is appropriate given the output schema exists.

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?

At 50% schema coverage across 10 parameters, the description carries real load: it explains owner_email ownership semantics, partner_code's referral-and-exclusion behavior, and join_as_admin's default and effect. The remaining parameters (city, state, website, business_type, plan_id, owner_cell) are self-describing or covered by schema text, so the description's added meaning is proportional to the actual ambiguity.

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?

Opens with a specific verb and resource ('Create a new KaiCalls account for a business') and immediately scopes ownership to the business owner's own email. That framing separates it from the agency_enrollment_* and setup siblings, which operate on existing accounts rather than provisioning a new owner.

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

Usage Guidelines4/5

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

States the caller profile clearly ('lets a partner or helper set up KaiCalls for a business owner') and chains to get_setup_checklist for next steps, plus a conditional exclusion that partner_code does not apply to a partner's own account. It never explicitly contrasts itself with the sibling creation paths, so selection between them is still partly inferred.

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.