Skip to main content
Glama

Wyślij wiadomość głosową

send_voice
Destructive

Send voice (TTS)

Place a Polish text-to-speech call (max 600 characters; lectors ewa, jacek, jan, maja). Charges prepaid balance. Wait for explicit user confirmation before calling. Requires purpose.

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": {
      "to": "<to>",
      "purpose": "<purpose>",
      "text": "<text>"
    },
    "name": "send_voice"
  }
}

Input Schema

NameRequiredDescriptionDefault
toYesJeden numer, lista numerów (maks. 500) albo grupa kontaktów "group:Nazwa".
textYesTekst do odczytania.
triesNoLiczba prób dodzwonienia się (1–6).
lectorNoGłos lektora (domyślnie ewa).
purposeYesCel wysyłki, krótko i zgodnie z prawdą (5-200 znaków), np. „przypomnienie o wizycie”, „kod logowania”, „potwierdzenie zamówienia”. Wymagany; zapisywany przy wiadomości.
send_atNoZaplanowana wysyłka, data ISO 8601 (np. 2026-09-08T09:00:00+02:00). Maks. 90 dni w przód. Pomiń, by wysłać teraz.
referenceNoWłasny identyfikator (np. numer zamówienia) do odszukania wiadomości później.
expires_atNoISO 8601: po tym czasie dostawca przestaje próbować doręczyć (15 min – 72 h po wysyłce). Np. termin wizyty, po którym przypomnienie nie ma sensu.
send_windowNoOkno godzin wysyłki w czasie polskim, np. "08:00-20:00". Poza oknem wysyłka jest przesuwana na najbliższy początek okna. Pomiń, by użyć ustawienia konta.
idempotency_keyNoUnikalny identyfikator zatwierdzonej wysyłki. Przy ponowieniu zachowaj tę samą wartość; nie zmieniaj po timeoutcie.

Output Schema

NameRequiredDescriptionDefault
idNo
statusNo
acceptedNo
messagesNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • addedInput schema / properties / purpose
      Added value: +{
      +  "description": "Cel wysyłki, krótko i zgodnie z prawdą (5-200 znaków), np. „przypomnienie o wizycie”, „kod logowania”, „potwierdzenie zamówienia”. Wymagany; zapisywany przy wiadomości.",
      +  "maxLength": 200,
      +  "minLength": 5,
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[
      -  "to",
      -  "text"
      -]New value: +[
      +  "to",
      +  "purpose",
      +  "text"
      +]
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "additionalProperties": {},
      +  "properties": {
      +    "accepted": {
      +      "type": "number"
      +    },
      +    "id": {
      +      "type": "string"
      +    },
      +    "messages": {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "cost_grosze": {
      +            "type": "number"
      +          },
      +          "id": {
      +            "description": "Id wiadomości msg_…",
      +            "type": "string"
      +          },
      +          "parts": {
      +            "type": "number"
      +          },
      +          "status": {
      +            "description": "queued, sent, delivered, …",
      +            "type": "string"
      +          },
      +          "to": {
      +            "type": "string"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    "status": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  3. Changed1 schema field changed
    • changedInput schema / properties / to / anyOf
      Previous value: -[
      -  {
      -    "description": "Numer telefonu w formacie E.164, np. +48533991881. Numer 9-cyfrowy bez prefiksu = Polska.",
      -    "type": "string"
      -  },
      -  {
      -    "description": "Grupa kontaktów: \"group:<id lub nazwa>\", np. \"group:VIP\". Członkowie dostają personalizację {{imie}}, {{nazwisko}} i pól własnych.",
      -    "pattern": "^group:.+",
      -    "type": "string"
      -  },
      -  {
      -    "items": {
      -      "anyOf": [
      -        {
      -          "description": "Numer telefonu w formacie E.164, np. +48533991881. Numer 9-cyfrowy bez prefiksu = Polska.",
      -          "type": "string"
      -        },
      -        {
      -          "description": "Grupa kontaktów: \"group:<id lub nazwa>\", np. \"group:VIP\". Członkowie dostają personalizację {{imie}}, {{nazwisko}} i pól własnych.",
      -          "pattern": "^group:.+",
      -          "type": "string"
      -        }
      -      ]
      -    },
      -    "maxItems": 500,
      -    "minItems": 1,
      -    "type": "array"
      -  }
      -]New value: +[
      +  {
      +    "description": "Phone number in E.164. Example: +48533991881. A 9-digit number without prefix is treated as Polish.",
      +    "type": "string"
      +  },
      +  {
      +    "description": "Grupa kontaktów: \"group:<id lub nazwa>\", np. \"group:VIP\". Członkowie dostają personalizację {{imie}}, {{nazwisko}} i pól własnych.",
      +    "pattern": "^group:.+",
      +    "type": "string"
      +  },
      +  {
      +    "items": {
      +      "anyOf": [
      +        {
      +          "description": "Phone number in E.164. Example: +48533991881. A 9-digit number without prefix is treated as Polish.",
      +          "type": "string"
      +        },
      +        {
      +          "description": "Grupa kontaktów: \"group:<id lub nazwa>\", np. \"group:VIP\". Członkowie dostają personalizację {{imie}}, {{nazwisko}} i pól własnych.",
      +          "pattern": "^group:.+",
      +          "type": "string"
      +        }
      +      ]
      +    },
      +    "maxItems": 500,
      +    "minItems": 1,
      +    "type": "array"
      +  }
      +]
  4. First observed

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true, openWorldHint=true and readOnlyHint=false, so the safety profile is known. The description adds materially beyond that: it discloses the monetary cost ('Charges prepaid balance'), a mandatory human-confirmation step before dialing, and the Polish-language/TTS constraint. It stops short of describing retry or failure behavior, which the schema only hints at via 'tries' and 'expires_at'.

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?

Five short clauses, front-loaded with the action and channel, then constraints, then the cost and confirmation warnings. Every sentence carries information; the only weak spot is the truncated '(TTS)' gloss on the opening line, which adds nothing.

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?

For a 10-parameter outbound-calling tool, the description covers the elements an agent most needs to reason about: cost, human confirmation, language, length limit and the required purpose field. Scheduling, windows, group recipients and idempotency are left entirely to a fully-described schema and an output schema, which is acceptable.

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

Parameters3/5

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

Schema description coverage is 100%, so every parameter including lector, tries, send_window and idempotency_key is already documented. The description restates the 600-character limit and the four lector names, adding no syntax or format detail the schema does not already carry. Baseline 3 applies.

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

Purpose4/5

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

States a specific verb and resource: 'Place a Polish text-to-speech call', which tells an agent exactly what is created. It does not explicitly contrast itself with the sibling send_sms tool, so an agent must infer that this is the voice channel variant rather than the SMS one.

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

Usage Guidelines3/5

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

'Wait for explicit user confirmation before calling. Requires purpose.' gives a real precondition for invocation, which is more than nothing. However, there is no guidance on when to choose voice over send_sms, or when voice is inappropriate, so usage context is only implied by the 'Polish TTS' framing.

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.