MCP Tools Reference

All tools are called via the MCP protocol over SSE transport. Each tool requires authentication unless running in demo mode.

Gendered Languages

Languages like Hebrew, Arabic, French, Spanish, Portuguese, Italian, German, Russian, Polish, and Hindi conjugate verbs and adjectives by gender. For these languages:

For voice calls, gender conjugation instructions are automatically appended to the system prompt. For text messages, gender context is returned as metadata in the response so your AI can conjugate correctly.

Non-gendered languages (English, Chinese, Japanese, etc.) are unaffected — the gender parameters are accepted but produce no instructions.


comms_ping

Health check and connectivity test.

ParameterTypeRequiredDescription
messagestringNoEcho message
{

"status": "ok",

"server": "agentos-comms",

"echo": "hello",

"pool": { "maxAgents": 5, "activeAgents": 1, "slotsRemaining": 4 },

"providers": { "telephony": "twilio", "email": "resend", "tts": "edge-tts" }

}

comms_send_message

Send SMS, email, or WhatsApp message.

ParameterTypeRequiredDescription
agentIdstringNoAuto-detected from agent token
tostringYesRecipient (E.164 phone or email)
bodystringYesMessage text
channelenumNosms, email, whatsapp, or line (default: sms)
subjectstringNoEmail subject (required for email)
htmlstringNoHTML body for email
templateIdstringNoWhatsApp template SID
templateVarsobjectNoTemplate variables
targetGenderenumNomale, female, or unknown — gender of the message recipient. Used for gendered languages (Hebrew, Arabic, French, etc.). Returns gender context metadata in the response so your AI can conjugate correctly.
{

"success": true,

"messageId": "uuid",

"externalId": "SMxxxxxx",

"status": "queued",

"cost": 0.0075,

"channel": "sms",

"from": "+15551234567",

"to": "+15559876543",

"genderContext": { "agentGender": "male", "targetGender": "female" }

}

Compliance checks: Content filter, DNC list, TCPA time-of-day, CAN-SPAM (email).


comms_make_call

Initiate an outbound AI voice call.

ParameterTypeRequiredDescription
agentIdstringNoAuto-detected from agent token
tostringYesPhone number in E.164 format
systemPromptstringNoAI instructions for this call
greetingstringNoFirst thing the AI says
voicestringNoTTS voice ID
languagestringNoLanguage code (e.g. en-US)
targetGenderenumNomale, female, or unknown — gender of the call recipient. For gendered languages, gender conjugation instructions are automatically appended to the system prompt.
recipientTimezonestringNoIANA timezone (e.g. America/New_York). Auto-detected from phone prefix if omitted
{

"success": true,

"callSid": "CAxxxxxx",

"sessionId": "uuid",

"status": "queued",

"from": "+15551234567",

"to": "+15559876543"

}

comms_send_voice_message

Generate TTS audio and deliver via phone call.

ParameterTypeRequiredDescription
agentIdstringNoAuto-detected from agent token
tostringYesPhone number in E.164
textstringYesText to speak
voicestringNoTTS voice ID
targetGenderenumNomale, female, or unknown — gender of the call recipient

comms_get_waiting_messages

Fetch messages that couldn't be delivered while your agent was offline (dead letters). Fetching automatically acknowledges them — no separate step needed.

ParameterTypeRequiredDescription
agentIdstringYesAgent ID
{

"success": true,

"messages": [

{

"id": 1,

"channel": "sms",

"direction": "inbound",

"from": "+15559876543",

"to": "+15551234567",

"body": "Are you there?",

"reason": "agent_offline",

"createdAt": "2026-02-22T10:00:00Z"

}

],

"count": 1

}

Dead letters are stored when: agent is offline (inbound), send fails (outbound), or provider errors. Acknowledged messages are auto-purged after 7 days.


comms_transfer_call

Transfer a live voice call to a human or another agent.

ParameterTypeRequiredDescription
agentIdstringNoAuto-detected from agent token
callSidstringYesActive call SID
tostringYesDestination phone or agent ID
announcementTextstringNoText to say before transfer

comms_call_on_behalf

Secretary call — calls someone on your behalf. An AI asks if they're available, and if yes, bridges you into the call.

ParameterTypeRequiredDescription
agentIdstringNoAuto-detected from agent token
targetstringYesPhone number to call (E.164)
requesterPhonestringYesYour phone number — where to bridge if they say yes
targetNamestringNoName of the person being called
requesterNamestringNoYour name
messagestringNoReason for the call
targetGenderenumNomale, female, or unknown — gender of the person being called
recipientTimezonestringNoIANA timezone. Auto-detected from phone prefix if omitted

comms_bridge_call

Manage call bridges — route inbound local calls to outbound local numbers via VoIP.

ParameterTypeRequiredDescription
actionenumYessetup, remove, list, or call
fromNumberstringNo(setup) Caller ID to match, or * for any
localNumberstringNo(setup) Twilio number that receives the call
destinationNumberstringNo(setup/call) Number to dial outbound
labelstringNo(setup) Human-readable label
bridgeIdstringNo(remove/call) Bridge route ID
callerNumberstringNo(call) Number to call first

comms_send_otp

Send a one-time verification code via SMS, email, or WhatsApp. Code expires in 5 minutes.

ParameterTypeRequiredDescription
agentIdstringNoAuto-detected from agent token
tostringYesRecipient (phone E.164 or email)
channelenumYessms, email, or whatsapp
purposestringNoDescription like "account verification"

comms_verify_otp

Verify a one-time code. Returns whether the code is valid.

ParameterTypeRequiredDescription
agentIdstringNoAuto-detected from agent token
contactAddressstringYesPhone or email that received the code
codestringYesThe 6-digit code to verify

comms_record_consent

Record that a contact has given consent to be contacted on a channel.

ParameterTypeRequiredDescription
agentIdstringNoAuto-detected from agent token
contactAddressstringYesPhone number or email
channelenumYessms, voice, email, or whatsapp
consentTypeenumNoexpress, implied, or transactional (default: express)
sourcestringNoHow consent was obtained (web_form, verbal, etc.)

comms_revoke_consent

Revoke a contact's consent on a channel. No further outbound allowed.

ParameterTypeRequiredDescription
agentIdstringNoAuto-detected from agent token
contactAddressstringYesPhone number or email
channelenumYessms, voice, email, or whatsapp

comms_check_consent

Check whether a contact has granted consent on a channel.

ParameterTypeRequiredDescription
agentIdstringNoAuto-detected from agent token
contactAddressstringYesPhone number or email
channelenumYessms, voice, email, or whatsapp

comms_expand_agent_pool

Resize the agent pool. Admin only.

ParameterTypeRequiredDescription
maxAgentsnumberYesNew maximum agent count (1–10000)

comms_provision_channels

Provision phone/SMS/WhatsApp/email/voice for a new agent.

ParameterTypeRequiredDescription
agentIdstringYesAgent ID to provision
displayNamestringYesDisplay name
capabilitiesarrayYesChannels: sms, voice, whatsapp, email, line
countrystringNoCountry code for phone number
emailDomainstringNoCustom email domain
agentGenderenumNomale, female, or neutral (default: male). Used for gendered languages — the agent's grammatical gender when speaking/writing in Hebrew, Arabic, French, Spanish, etc.

comms_deprovision_channels

Tear down all channels for an agent. Releases phone number and WhatsApp pool slot.

ParameterTypeRequiredDescription
agentIdstringYesAgent ID to deprovision

comms_get_channel_status

Check provisioning and health status of all channels for an agent.


comms_onboard_customer

*Enterprise/SaaS edition only.*

Full automated onboarding: provisions all channels, generates DNS records, returns setup package.

ParameterTypeRequiredDescription
agentIdstringYesAgent ID
displayNamestringYesDisplay name
capabilitiesarrayYesChannels to provision
emailDomainstringNoCustom email domain
greetingstringNoVoice greeting
systemPromptstringNoVoice system prompt

comms_register_provider

Register or update third-party provider credentials. Admin only.

ParameterTypeRequiredDescription
providerenumYestwilio, vonage, resend, elevenlabs, openai, deepgram, s3, r2, turso, convex
credentialsobjectYesProvider-specific credential fields
verifybooleanNoTest before saving (default: true)

comms_set_agent_limits

Configure rate limits and spending caps. Admin only.

ParameterTypeRequiredDescription
agentIdstringYesAgent ID to configure
limits.maxActionsPerMinutenumberNoPer-minute burst limit
limits.maxActionsPerHournumberNoHourly limit
limits.maxActionsPerDaynumberNoDaily limit
limits.maxSpendPerDaynumberNoDaily spending cap
limits.maxSpendPerMonthnumberNoMonthly spending cap

comms_get_usage_dashboard

Usage statistics, costs, and rate limits per agent.

ParameterTypeRequiredDescription
agentIdstringNoSpecific agent (omit for all, admin only)
periodenumNotoday, week, month, or all

comms_get_billing_summary

*Enterprise/SaaS edition only.*

Billing summary with provider costs, markup, and billed costs.


comms_set_billing_config

*Enterprise/SaaS edition only.*

Set billing tier, markup, and billing email. Admin only.

TierActions/minActions/daySpend/month
Free5100$10
Starter10500$100
Pro305,000$1,000
Enterprise10050,000$50,000
← Home