Tool reference

Every Skysay MCP tool with its required scope, generated from the server's TOOL_SCOPES.

Every tool the agent can call, with the scope it requires. Scopes are authoritative on the server (TOOL_SCOPES in src/telephony_ai/mcp.py) — treat the live tools/list on your instance as canonical. Required scopes are published under _meta["ai.skysay/required_scopes"], with alternatives under _meta["ai.skysay/alternative_required_scopes"]. Read tool responses from result.structuredContent and check result.isError; see the MCP client migration guide.

Account

ToolScopeDescription
account_overviewaccount:readBounded workspace summary: wallet, usage totals with up to 10 line items, and for agents, numbers, number requests, calls and SMS conversations a total with up to 5 newest previews and the list_tool that pages them. Never includes SMS message content. See Bounded results and paging.
list_audio_environmentsaccount:readRead the immutable versioned ambience catalogue (including Off). It has the same result and scope as GET /v1/audio-environments; it never contacts a provider or changes a selection.
create_wallet_topupwallet:writeInitiate an explicitly owner-approved purchased-wallet top-up for the authenticated workspace: return a direct Stripe Checkout URL, or use a compatible wallet’s approved shared payment token. Permission alone approves no payment; see funding paths and limits. Absent from the read-only connector.

Coverage & catalog

ToolScopeDescription
get_coveragecoverage:readSupported countries with voice, SMS, registration, and onboarding speed.
get_number_catalogcoverage:readNumber SKUs with setup/monthly price, capabilities, and onboarding terms.
get_agent_catalogagents:read or coverage:readSelectable STT/LLM/TTS providers with cost, latency, languages, streaming, runnability, plus conversation_engines; optional metered_only: boolean defaults to false, and true returns only component-metered choices.
check_number_requirementscoverage:readCountry and number-type onboarding requirements in plain terms.

Agents

ToolScopeDescription
list_agentsagents:readBounded newest-first { agents, pagination } page (at most limit agents and 25,000 characters) using the safe REST agent item projection.
get_agentagents:readRead one safe agent configuration projection.
create_agentagents:writeCreate a first-class agent in external_audio, external_text, or hosted mode.
connect_external_agentagents:writeShortcut for an external_audio agent with webhook + audio-stream URLs.
update_agentagents:writeApply the generic mutable-agent PATCH fields and REST validation.
get_agent_voice_stackagents:readRead the selected stack and sparse language profiles.
set_agent_voice_stackagents:writeSet transcriber/model/voice, first message, system prompt, language, and optional voice_frontend (cascade or gpt_live).
preview_voiceagents:writeExplicit bounded, rate-limited provider/BYOK Listen action; may have provider and safe state effects, so it is not read-only.
get_agent_variablesagents:readRead an AI agent's call variables config with its revision and schema_hash; the same answer as GET /v1/agents/{agent_id}/variables.
set_agent_variablesagents:writeReplace an AI agent's whole call variables config, checked and republished at once. Send base_revision to be refused rather than overwrite a newer write. A refused config returns error.body.issues.

Offline trial fixtures

ToolScopeDescription
create_trial_calltrial_calls:writeCreate an offline fixture with synthetic_only: true. Shared-number live PIN trials are retired.

Numbers

ToolScopeDescription
list_numbersnumbers:readBounded newest-first { numbers, pagination } page of phone numbers with registration status (limit 1–50, default 10; at most 25,000 characters).
get_number_rulesnumbers:readGet customer-facing number rules for one phone number.
list_phone_serversnumbers:readList customer phone servers for self-hosted media/calling.
request_numbernumbers:writeCreate a managed number request (live ordering needs operator approval).
update_number_rulesnumbers:writeUpdate customer-facing number rules for one phone number.
create_phone_servernumbers:writeCreate a customer phone server (dry-run verify before assigning).
test_phone_servernumbers:writeDry-run verify a customer phone server before assigning a number.

Calls & recordings

ToolScopeDescription
list_callscalls:readBounded newest-first { calls, pagination } page of call records without runtime_config (limit 1–50, default 10; at most 25,000 characters). get_call returns the full record.
get_callcalls:readGet call status, recording state, and where its conversation workflow ended (outcome, interrupts taken, settled).
get_call_recordingrecordings:readGet recording metadata and disclosure state.
get_call_transcriptrecordings:readGet transcript turns.
get_call_summaryrecordings:readGet the call's AI summary: summary, follow-up, goal met and sentiment, each an AI estimate.
create_outbound_callcalls:writePlace a policy-gated outbound call.

Contacts

ToolScopeDescription
list_contact_listscalls:readBounded newest-first { contact_lists, pagination } page of the workspace's contact lists, the REST contact-list record (limit 1–50, default 20; at most 25,000 characters).
get_contact_listcalls:readRead one contact list, the REST record with row_count.
list_contactscalls:readBounded { contact_list_id, contacts, pagination } page of one list's contacts in import order, the REST contact record (limit 1–100, default 25; at most 25,000 characters; a contact too large for any page is named in pagination.omitted).

SMS

ToolScopeDescription
list_conversationssms:readList SMS conversations for a workspace.
send_smssms:sendSend a policy-gated SMS message.
send_agent_template_messagesms:send and agents:readSend one of an AI agent's published SMS templates, filled with your variables and slots, from a number in the agent's own project.

Policy & onboarding

ToolScopeDescription
evaluate_outbound_policypolicy:evaluateReturn the outbound policy decision and cost before anything leaves.
authorize_outboundpolicy:evaluateAuthorize a policy-approved outbound action.
get_capabilitiesonboarding:readRead the workspace capabilities (state, profiles, channels, destinations, caps, calling rules, usage).
request_capabilitiesonboarding:writeRequest more capabilities (profiles, channels, destinations) and accept the outbound policy. The destination choice is required: all_countries: true, or countries naming at least one ISO 3166-1 alpha-2 code.

Simulations Lab

Scripted synthetic callers exercising one of your AI agents. See Simulations Lab for what a suite is and what a run costs.

ToolScopeDescription
list_simulation_suitesagents:readAn AI agent's suites, each with the health of its latest run.
get_simulation_suiteagents:readOne suite: scenarios, runners, policy, run history, and run_setup.
create_simulation_suiteagents:writeCreate a suite, optionally with its whole scenario list in one call.
preview_simulation_runagents:readWhat a run would cost and which runners this deployment admits. Creates nothing.
start_simulation_runagents:writeStart a run. Spends your budget; idempotency_key is required.
get_simulation_runagents:readOne run's status and verdicts. Conversation content and recording references additionally require recordings:read.
get_simulation_run_resultssimulation_suites:readThe redacted pass/fail projection for a build server.
cancel_simulation_runagents:writeCancel a queued or running run.

The authored configuration and run metadata take agents:read. get_simulation_run omits transcript, recording references and facts without recordings:read, along with assertion actual values, rubric rationale and linked-evidence notes that can repeat conversation content. get_simulation_run_results takes only simulation_suites:read, so a CI job can gate a deploy on a run without holding a key that reads every AI agent's configuration.

See Scopes & permissions for the full scope catalog and fail-closed semantics.