Skip to main content
Glama

Field Service Business Platform by Doing Work

phone_setVoiceAi

Set up the shop's own voice AI agent to answer calls: provider (elevenlabs or grok) and the agent's SIP address. Doing Work answers each call, says it is an AI assistant and that the call is transcribed, then connects the agent with a token for this call only (SIP header X-DW-Token). The agent's tools are at tools_base. For ElevenLabs, give the post-call webhook secret so call summaries and spoken stops come back. share_job_status false hides job status from callers. booking_mode (off by default): open_slots lets the agent book a caller into a time the shop marked open with schedule.addOpenSlots (book_open_slots true is the same); live lets it book a visit straight onto a worker's calendar, only for job types set with phone.saveVoiceJobType, only for ZIP codes in service_zips, at least lead_minutes ahead (default 120), not the same day after same_day_cutoff (default 15:00) and at most 14 days out. The agent says no price except a fixed fee the shop set on a job type (phone.saveVoiceJobType). on_call_phone is where handoff sends emergencies. live_tools has the tool schemas to give the agent; otherwise it only takes a preferred time for the office. Then set the route to voice_ai with phone.setRoute. Owner only.

Input Schema

NameRequiredDescriptionDefault
shop_idYes
sip_uriYes
providerYes
booking_modeNo
lead_minutesNo
service_zipsNo
on_call_phoneNo
webhook_secretNo
book_open_slotsNo
same_day_cutoffNo
share_job_statusNo

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden and does so richly: call answering script, AI/transcription disclosure, per-call SIP token, webhook secret behavior, booking-mode constraints, emergency handoff, and owner-only authorization. This is far beyond what the schema alone conveys.

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?

The description is front-loaded with purpose and required inputs, and most sentences add useful configuration detail. However, it is a dense single paragraph that would be easier to scan with structure, and it repeats references such as phone.saveVoiceJobType.

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 an 11-parameter, owner-only configuration tool with no annotations, the description supplies purpose, sequencing, side effects, defaults, constraints, and prerequisites. Because an output schema exists, it does not need to explain return values, and the remaining setup context is adequately covered.

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

Parameters5/5

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

Schema description coverage is 0%, yet the description explains nearly every parameter: provider enum, SIP address, webhook secret, share_job_status, booking_mode defaults, lead_minutes, same_day_cutoff, service_zips, on_call_phone, and book_open_slots. The only oddity is that live_tools is referenced but absent from the schema, while all actual schema parameters are still covered.

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 states a specific verb and resource: setting up the shop's voice AI agent to answer calls, including provider and SIP address. It distinguishes the tool from phone.setRoute by explicitly saying the route is set separately, and from phone.saveVoiceJobType by naming it as a prerequisite for live booking.

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?

It gives clear context and alternatives: owner-only use, sequencing with phone.setRoute, and dependencies on schedule.addOpenSlots and phone.saveVoiceJobType. It stops short of explicitly excluding sibling tools such as phone_setOutboundAi or clarifying first-time setup versus reconfiguration, so it is not a full 5.

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