Skip to main content
Glama

create_call

Destructive

Create or schedule a call after explicit user confirmation of destination, caller number, assistant/case, message, and schedule. Select an outbound assistant with assistantConfigId, or an active inbound agent with inboundAssistantId on a Dedicated/LiveKit caller number. Never combine the two IDs. When neither is provided, the call uses platform defaults; the organization's isDefault assistant is not selected automatically.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toYes
fromYes
caseIdNo
confirmedYesMust be true only after the user explicitly confirms this exact operation
contactIdNo
scheduledAtNo
firstMessageNo
idempotencyKeyYesA unique identifier generated once for this intended write. Reuse exactly when retrying.
variableValuesNo
assistantConfigIdNoOutbound assistant whose voice, model, and transcriber run the call. Get IDs from list_outbound_assistants. Omit to use the platform defaults (not your isDefault assistant).
inboundAssistantIdNoInbound agent to run the outbound call. Get its ID from list_inbound_assistants. Requires a Dedicated/LiveKit caller number; omit assistantConfigId.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
dataNo
successNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed3 schema fields changed
    • removedInput schema / properties / from / description
      Removed value: -"Phone number in E.164 format"
    • addedInput schema / properties / inboundAssistantId
      Added value: +{
      +  "description": "Inbound agent to run the outbound call. Get its ID from list_inbound_assistants. Requires a Dedicated/LiveKit caller number; omit assistantConfigId.",
      +  "minLength": 1,
      +  "type": "string"
      +}
    • removedInput schema / properties / to / description
      Removed value: -"Phone number in E.164 format"
  2. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=false, destructiveHint=true, and openWorldHint=true, so the safety profile is known; the description still adds real behavioral context beyond them, notably the mandatory user-confirmation gate, the mutual exclusivity of the two assistant IDs, and the non-obvious default-resolution rule. It stops short of describing side effects on the destination number, rate limits, or scheduling/cancellation behavior.

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

Conciseness4/5

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

Four dense sentences, front-loaded with the confirmation requirement and then the ID-selection rules, with no filler. The third sentence is long and carries three separate constraints, which slightly hurts scannability.

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

Completeness4/5

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

An output schema exists, so return values need not be described, and the description covers the tricky parts of an 11-parameter mutation: confirmation, ID exclusivity, and defaults. Gaps remain around contactId and variableValues semantics and whether a scheduled call can later be cancelled via cancel_call.

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 description coverage is only 36%, so the description has to carry weight, and it does: it maps 'destination' to to, 'caller number' to from, 'case' to caseId, 'message' to firstMessage, and 'schedule' to scheduledAt, while explaining the assistantConfigId vs inboundAssistantId tradeoff in depth. contactId and variableValues remain undocumented in both places, which keeps it from a 5.

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 specific verb+resource ("Create or schedule a call") and enumerates the decision inputs (destination, caller number, assistant/case, message, schedule). This clearly separates it from cancel_call, get_call, and list_calls, which share the same resource but not the action.

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 an explicit precondition ("after explicit user confirmation") and then gives branching when-to-use rules: assistantConfigId for outbound assistants, inboundAssistantId for active inbound agents on a Dedicated/LiveKit number, and platform defaults when neither is supplied. It also gives an explicit prohibition ("Never combine the two IDs") and an important exclusion (isDefault is not auto-selected).

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.

Resources