Skip to main content
Glama

Server Details

Official DIDWW MCP connector for managing phone numbers, inbound voice and SMS routing, and voice capacity. Review billing information, prepare data exports, and manage supported compliance workflows. Uses OAuth and existing DIDWW account permissions, with explicit confirmation for significant account changes.

Ownership verified
Status
Healthy
Uptime
100.0% over the last 24 hours
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4/5.0

Scored across 82 tools

Disambiguation4/5

Tools generally map to distinct resources and actions, and descriptions explicitly cross-reference adjacent tools (e.g. assignment vs purchase, regulation vs emergency flows). A few near-neighbors—create_regulation_upload_link vs create_proof_upload_link, the three create_*_trunk variants, and create_address_verification vs create_emergency_verification—require careful reading, but remain distinguishable.

Naming Consistency5/5

Names are overwhelmingly consistent snake_case verb_noun patterns: list_*, get_*, create_*, update_*, delete_*, assign/unassign, buy, and validate. The lone noun-only name, current_account, is still clear and does not meaningfully break the convention.

Tool Count2/5

At 82 tools, this is far beyond the 3–15 sweet spot and even beyond the 25-tool heavy range. The telecom domain is genuinely broad, but separate CRUD families for SIP/PSTN/phone.systems trunks and many related resources could be consolidated or split into domain-specific servers.

Completeness4/5

Coverage is broad: DIDs, voice trunks, SMS trunks, capacity pools/groups, identities/addresses/verifications, emergency services, caller-ID lists, billing read models, users, and exports all have lifecycle operations. Notable gaps remain around porting-request management (only visible in dashboard cells), CNAM configuration, and some single-resource/detail operations.

Publisher details

Operator
DIDWW
Operator website
https://www.didww.com/
Vendor relationship
Not applicable
Trust center
Not available
Restrictions
Requires an active DIDWW account and a compatible remote MCP client supporting Streamable HTTP and OAuth. Users must authorize access through DIDWW’s browser-based login and complete two-factor authentication if enabled. Access is limited to the user’s existing DIDWW roles, permissions and enabled services. No API key or manually configured OAuth client ID or client secret is required; the client registers automatically. Connector availability may depend on the AI client’s plan, platform and organization settings. Managed workspaces may require owner or administrator enablement. Normal DIDWW service charges, prepaid balance requirements, account quotas and request limits apply. Significant, chargeable or destructive actions require explicit confirmation. · Publisher source

Available Tools

82 tools
assign_dedicated_channels_to_didAssign dedicated channels to DIDA
DestructiveIdempotent
Inspect

Reserve dedicated inbound channels for one of the customer's DIDs out of a Capacity Pool. Provide did_id, capacity_pool_id and channels_count (the number of dedicated channels). The DID's country must be covered by the Capacity Pool, the pool must have that many free channels, and the DID Group must allow additional channels. Pass channels_count: 0 to release the reservation (capacity_pool_id is then optional). This is not a purchase: it allocates channels already bought into the pool, reversibly — only buy_capacity_channels spends money. Returns the DID number, the reserved channel count and the Capacity Pool, or a readable error.

Inputs: did_id (required), channels_count (required), capacity_pool_id.

assign_did_to_capacity_groupAssign DID to Shared Capacity GroupA
DestructiveIdempotent
Inspect

Assign one of the customer's DIDs to a Shared Capacity Group (capacity group) so the DID draws inbound channels from the group's Capacity Pool. Provide the did_id and the capacity_group_id. The DID's country must be covered by the Capacity Pool and its DID Group must allow additional channels. This is not a purchase: it allocates channels already bought into the pool, reversibly — only buy_capacity_channels spends money. Returns the DID number and the group it is now assigned to, or a readable error.

Inputs: did_id (required), capacity_group_id (required).

assign_did_to_sms_trunkAssign DIDs to SMS trunkA
DestructiveIdempotent
Inspect

Route incoming SMS of one or MANY of the customer's purchased DIDs to an SMS trunk in a single call: did_ids takes 1..100 DID UUIDs and sms_trunk_id the target trunk — or pass null / omit sms_trunk_id to bulk UNASSIGN them (incoming SMS is then disabled). The batch is all-or-nothing: every id must resolve to a DID in the customer account and every DID must pass validation (the SMS trunk must be inbound-capable and each DID in an SMS-enabled group), otherwise NOTHING is changed and the error names the offending ids or number. Returns the SMS trunk (or null when unassigning), the affected DID numbers and their count; a number whose incoming SMS already routed elsewhere is reported as re-routed FROM its previous trunk (assigning replaces the existing routing).

Inputs: did_ids (required), sms_trunk_id.

assign_did_to_trunkAssign DIDs to Voice IN TrunkA
DestructiveIdempotent
Inspect

Assign one or more of the customer's DIDs (did_ids, max 100 per call) to a Voice IN Trunk so inbound calls route to it. trunk_id accepts ANY trunk id returned by list_trunks — SIP, PSTN, phone.systems™ or a trunk group. Pass trunk_id null (or omit it) to UNASSIGN the listed DIDs instead (they then route inbound calls nowhere). The batch is all-or-nothing: every id must resolve to a DID in the account and every assignment must be valid, otherwise NOTHING is changed and a readable error explains why. Returns the trunk (name and type) plus the assigned/unassigned numbers and count; a number that was already routed elsewhere is reported as re-routed FROM its previous trunk (assigning replaces the existing routing).

Inputs: did_ids (required), trunk_id.

buy_capacity_channelsBuy Capacity ChannelsA
Destructive
Inspect

Purchase additional channels into one of the customer's Capacity Pools by creating an Order. Provide the capacity_pool_id (from list_capacity_pools) and qty — the number of channels to add to the pool. The price is prorated to the pool's renew date. Charges the customer's balance; the channels are added to the pool immediately and can then be distributed across Shared Capacity Groups or dedicated-channel reservations. A DID can only draw channels from a pool that covers its country — pass the optional country_iso to fail fast on a mismatched pool before any money is spent. All amounts are in USD. This spends real money.

Inputs: qty (required), capacity_pool_id (required), country_iso, confirmation_token.

buy_didBuy DIDA
Destructive
Inspect

Purchase one or more DIDs by creating an Order. Pass the sku_id from search_coverage — this is the Stock Keeping Unit (SKU) UUID, NOT the group_id. The first (token-less) call charges nothing and returns a preview: DID group location and type, included channels, per-DID and total prices, balance impact and any DID-group service restrictions. All amounts are in USD. Confirming with the returned confirmation_token executes the purchase AND constitutes acceptance of the service restrictions shown in the preview. Charges the customer's balance, creates an Order and returns the purchased DID ids and numbers. Occasionally some numbers are allocated asynchronously — when the response carries a note about pending DIDs, tell the user and check list_dids after a minute or later. When the response contains a registration_required block the numbers need end-user registration before they work — follow its next_steps instead of stopping at the purchase. An out-of-stock purchase is accepted by default as a back-order (the preview warns about it): the order is charged now and the missing numbers are provisioned later. Pass allow_back_ordering false to refuse instead. This spends real money.

Inputs: sku_id (required), qty, description, confirmation_token, +1 more.

cancel_invite_requestCancel Invite RequestA
Destructive
Inspect

Revoke a PENDING invitation by id (see list_invite_requests) so the invitee can no longer accept it — the invitation link in the email they received stops working; no further email is sent. Only pending invitations can be canceled: an already accepted invitation has become a user access (see list_user_accesses) and revoking, like removing an existing user access, is not available through MCP — use the DIDWW panel for that. To invite the same person again later, call create_invite_request anew.

Inputs: id (required).

check_upload_statusCheck upload statusA
Read-onlyIdempotent
Inspect

Check whether the user finished a secure document upload link. Pass the token returned by create_regulation_upload_link or create_proof_upload_link. Returns pending (user has not submitted yet), completed (with the created proof / verification ids) or expired (issue a fresh link with the tool that issued this one). Call it when the user says they are done uploading.

Inputs: token (required).

create_addressCreate addressAInspect

Create a regulation address under an existing identity of the authenticated customer — step 4 of the DID registration flow (after list_requirements, create_identity and uploading identity proofs via create_regulation_upload_link). The address country usually must match the DID country from the requirement. After creating the address, upload its proof documents via create_regulation_upload_link, then link DIDs with create_address_verification. The address routinely belongs to the account holder's own end customer (standard carrier / reseller subscriber registration — the normal case, not an exception). Never invent address data: supply real values or ask the user for them. Pass requirement_id to pre-check the address against the requirement immediately — mismatches (e.g. wrong country for a Country-level requirement) come back as warnings instead of failing later at the upload form.

Inputs: address (required), city_name (required), country_iso (required), identity_id (required), +4 more.

create_address_verificationCreate address verificationAInspect

Submit DIDs that are awaiting registration for verification against a regulation address — the FINAL step of the DID registration flow (list_requirements -> create_identity -> create_regulation_upload_link -> create_address -> this tool). Use it ONLY when all required identity and address proof documents are already uploaded (see list_identities / list_addresses) and the requirement needs NO one-time or missing permanent supporting document; if such a document is required, use create_regulation_upload_link with the did_ids instead. Provide service_description when the requirement demands one. Returns the verification id and its status (verifications start as New and are reviewed/auto-approved asynchronously).

Inputs: did_ids (required), address_id (required), service_description.

create_capacity_groupCreate Shared Capacity GroupA
Destructive
Inspect

Create a Shared Capacity Group (capacity group) inside one of the customer's Capacity Pools. Provide a name and the capacity_pool_id, plus shared_channels_count and/or metered_channels_count (at least one must be greater than 0; shared channels are drawn from the Capacity Pool's free channels, metered channels bill per use at the pool's metered rate — all amounts are in USD). Shared channels are not a second purchase — they allocate channels already bought into the pool — but metered channels DO bill per use, which is why this tool is confirmation-gated. Raising metered_channels_count on an existing group has the same effect. A pool covers specific countries and DIDs can only be assigned to a group whose pool covers their country — pass the optional country_iso of the DIDs you plan to assign to verify coverage BEFORE the group is created (see covered_country_isos in list_capacity_pools). Returns the created group id and key attributes, or a readable error.

Inputs: name (required), capacity_pool_id (required), country_iso, confirmation_token, +2 more.

create_emergency_verificationCreate Emergency VerificationA
Destructive
Inspect

Submit an emergency verification for staff review. Two modes: (1) NEW calling service — pass address_id plus did_ids (DIDs of the same country and DID group type as the emergency requirement); this creates an Emergency Calling Service covering those numbers and its first pending verification. (2) Resubmit/update an existing service — pass address_id plus emergency_calling_service_id (do NOT pass did_ids); allowed when the service is in new, changes required or active status. New-service mode is a PAID subscription billed per attached number every month (rates come from your emergency plan — see them via list_emergency_requirements; all amounts are in USD). Billing starts when staff activate the service, not at submission. That mode is two-call confirmation-gated: the first call returns the cost preview plus a confirmation_token and submits nothing; show the user that preview, then re-call with the token. Resubmit mode adds no charge and is not gated. To stop the charges, unassign all numbers from the service — an emergency service left with zero numbers is auto-canceled, no separate cancellation step is needed. BEFORE calling, run list_emergency_requirements for the DID country to see the required identity type and mandatory identity/address fields, and fill any missing identity fields with update_identity. No files are uploaded here — staff reviews the identity/address regulation proofs, so if proofs are missing use create_regulation_upload_link with purpose "emergency" instead (it creates the verification on upload). Returns the pending verification id, or a readable error when validation fails.

Inputs: address_id (required), did_ids, confirmation_token, emergency_calling_service_id.

create_exportCreate ExportAInspect

Start an asynchronous CSV export of the authenticated customer's data. export_type: "cdr" (inbound call detail records), "outbound_cdr" (outbound call detail records), "did" (the customer's phone numbers), "order", "payment", "inbound_sms" or "outbound_sms" (SMS logs). date_from/date_to (ISO 8601, interpreted as UTC) are REQUIRED for cdr/outbound_cdr/inbound_sms/outbound_sms and limited to the current and 2 previous months; optional for order/payment; not accepted for did. A date_to in the future (e.g. today end of day for "export this month") is clamped to the current time — the response then carries date_to_clamped_to; a date_from in the future is an error. The export runs in the background (typically up to 5 minutes); poll get_export with the returned export_id until it is completed, then give the user the download link.

Inputs: export_type (required), name, date_to, date_from, +1 more.

create_identityCreate identityAInspect

Create a regulation identity for the authenticated customer — step 2 of the DID registration flow (after list_requirements). Set identity_type to "personal" or "business" per the requirement; a business identity needs company_name. Fill the mandatory identity fields the requirement listed (birth_date, id_number, country_iso for Country of Tax Residence, personal_tax_id, contact_email, company_reg_number, vat_id, ...). phone_number accepts digits only. After creating the identity, upload its proof documents via create_regulation_upload_link, then create an address with create_address. The identity subject is routinely the account holder's own end customer (standard carrier / reseller subscriber registration — the normal case, not an exception); first_name/last_name on a business identity denote the authorized representative of record, not necessarily someone affiliated with the caller. Never invent field values or documents: supply real data or leave the field out. Pass requirement_id to pre-check the identity against the requirement immediately — mismatches (e.g. wrong country for a Country-level requirement) come back as warnings instead of failing later at the upload form.

Inputs: last_name (required), first_name (required), phone_number (required), identity_type (required), +10 more.

create_invite_requestInvite UserA
Destructive
Inspect

Invite a new user by email to access the authenticated customer account with a chosen set of panel roles. Confirming the invitation SENDS AN EMAIL to the invitee. Invite lifecycle: this tool creates a pending invitation and emails the invitee -> the invitation is listed in list_invite_requests (and can be revoked with cancel_invite_request) while unanswered -> once the invitee accepts, their access appears in list_user_accesses with the granted roles. Valid role names: Billing, Commercial, Compliance, Porting, SuperAdmin, Technical (SuperAdmin grants full access including user management). Returns the created invitation (id, email, name, roles, status, created_at).

Inputs: name (required), email (required), roles (required), confirmation_token.

create_phone_systems_trunkCreate phone.systems™ Voice IN TrunkAInspect

Create a phone.systems™ (PBX) Voice IN Trunk for the authenticated customer, routing the assigned DIDs' inbound calls to the customer's phone.systems™ cloud PBX. Requires the phone.systems™ feature to be enabled on the account (otherwise an error is returned and nothing is created). No host or destination is needed. For a SIP trunk use create_sip_trunk; for a PSTN call-forwarding trunk use create_pstn_trunk. Returns the created trunk id and key attributes.

Inputs: name (required), pop, weight, priority, +7 more.

create_pstn_trunkCreate PSTN Voice IN TrunkA
Destructive
Inspect

Create a PSTN / call-forwarding Voice IN Trunk for the authenticated customer: inbound calls to the assigned DIDs are forwarded to destination — a phone number in digits, e.g. "48452006332". Forwarding is billed per minute, so this tool is confirmation-gated: the preview shows the forwarding rate (amounts are in USD) — show the price to the user before confirming. If the destination has no rate, the trunk cannot be created. For a SIP trunk use create_sip_trunk; for a phone.systems™ trunk use create_phone_systems_trunk.

Inputs: name (required), destination (required), pop, weight, +9 more.

create_sip_trunkCreate SIP Voice IN TrunkAInspect

Create a SIP Voice IN Trunk (inbound voice trunk) for the authenticated customer. A minimal trunk only needs name and host (the host part of R-URI in the INVITE request). Set ONLY the parameters the user explicitly asked for and never invent values — every omitted field keeps the same default the customer panel applies. To register a SIP endpoint instead of pointing at a host, set enabled_sip_registration to true and omit host/port — registration credentials are generated server-side and returned in the configuration (password masked). For a PSTN call-forwarding trunk use create_pstn_trunk; for a phone.systems™ trunk use create_phone_systems_trunk. Returns the created trunk id and its configuration, or a readable error if the configuration is invalid.

Inputs: name (required), pop, host, port, +44 more.

create_sms_trunkCreate SMS trunkAInspect

Create an inbound SMS destination trunk for the authenticated customer, then optionally route a DID to it with assign_did_to_sms_trunk. Choose the delivery mode with type: type "http_in" (an HTTP IN trunk, default) → DIDWW pushes each incoming SMS to a webhook; pass name and url (defaults to an HTTP GET webhook), or http_method "POST"/"PUT" with a body and body_type for a request body. type "smtp" (an SMS to Email trunk) → DIDWW delivers each incoming SMS as an email; pass name and send_to (recipient email, e.g. "test@example.com" or "John Doe test@example.com"). subject, message and use_smtp_relay have sensible defaults. Available placeholders (substituted per incoming SMS): {SMS_TIME} received time, {SMS_SRC_ADDR} sender, {SMS_DST_ADDR} receiver, {SMS_TEXT} message text, {SMS_TEXT_BASE64_ENCODED} message text base64-encoded. Placeholders work in the smtp subject/message and in http_in query_parameters/headers/body. Returns the created trunk id and key attributes, or a readable error if the configuration is invalid.

Inputs: name (required), url, body, type, +10 more.

create_sms_trunk_groupCreate SMS trunk groupA
Destructive
Inspect

Create an SMS trunk group for the authenticated customer — a group bundles several inbound SMS trunks into one routing destination, so a DID assigned to the group delivers its incoming SMS through the member trunks. Pass a name and optionally sms_trunk_ids — the member trunk ids (uuids from list_sms_trunks). Only inbound-capable HTTP IN, SMTP, SMSC or ESME trunks can be members: a group cannot be nested and MSGP / OTP system trunks cannot be members. Manage membership later with update_sms_trunk_group; delete a group with delete_sms_trunk (WARNING: that also deletes its member trunks). Returns the created group with its member trunks, or a readable error.

Inputs: name (required), sms_trunk_ids.

create_trunk_groupCreate Voice IN Trunk GroupA
Destructive
Inspect

Create a Voice IN Trunk Group for the authenticated customer — a failover / load-balancing container of existing Voice IN Trunks. A DID assigned to the group is routed to the member trunks by priority (lowest tried first) and, among equal priorities, by weight (higher preferred). Pass members to add existing SIP / PSTN / phone.systems™ trunks (by trunk id from list_trunks) with optional per-member priority and weight; a trunk group cannot contain another trunk group, and a group holds at most 10 member trunks. A member already in another group is moved. Returns the created group with its members in routing order, or a readable error if the configuration is invalid (nothing is created).

Inputs: name (required), members, capacity_limit.

create_voice_in_number_listCreate Voice IN Number ListAInspect

Create a Voice IN Number List — a caller-ID (source number) filter for inbound calls. Choose mode: "full_number" (entries match the caller's number exactly) or "prefix" (entries match by prefix). Choose default_action: "allow" (calls pass unless an entry rejects them — a deny-list) or "reject" (calls are rejected unless an entry allows them — an allow-list). Optionally seed the list with numbers (full numbers or prefixes; allowed characters: digits, letters, "+", "-", "." — stored EXACTLY as passed, no normalization); by default those entries carry the OPPOSITE action of default_action (the usual deny-list / allow-list shape) — override with numbers_action. Creating a list does NOT filter anything by itself: attach it to a SIP or PSTN Voice IN Trunk via src_number_list_id on create_sip_trunk / create_pstn_trunk / update_sip_trunk / update_pstn_trunk. Returns the created list, or a readable error (in which case nothing is created).

Inputs: mode (required), name (required), default_action (required), numbers, +1 more.

current_accountShow the active accountA
Read-only
Inspect

Show the DIDWW account (customer) the session is currently acting as, including the customer, the roles held on it and the tools it may NOT call (everything else is allowed).

Inputs: no named parameters.

delete_addressDelete addressA
Destructive
Inspect

Delete one of the authenticated customer's regulation addresses by id, together with its uploaded proof documents. This is destructive and cannot be undone. An address with New/Pending verifications, with unfinished emergency calling services or SMS campaigns, or used as the account billing address cannot be deleted — the error says which blocker applies. Numbers already registered through this address stay registered and working, but the address (and its documents) can no longer be used for new verifications. Returns a confirmation message on success.

Inputs: address_id (required), confirmation_token.

delete_capacity_groupDelete Shared Capacity GroupA
Destructive
Inspect

Delete one of the customer's Shared Capacity Groups (capacity groups) by id (the uuid returned by list_capacity_groups). This is destructive and cannot be undone. A group with DIDs still assigned to it cannot be deleted — unassign them first (unassign_did_from_capacity_group) or move them to another group. On deletion the group's reserved shared channels return to its Capacity Pool as free channels. Returns a confirmation message on success.

Inputs: id (required), confirmation_token.

delete_didTerminate DIDA
Destructive
Inspect

Terminate (cancel) one of the authenticated customer's DIDs by id. PREFER THE SOFTER ALTERNATIVE FIRST: if the user just wants to stop paying for the number, call update_did with billing_cycles_count: 0 instead — the DID then simply stops renewing, stays fully usable until the end of the already-paid billing cycle, and the decision is reversible at any time before expiry. Only terminate when the user explicitly wants the number gone NOW. Terminating releases the number: inbound calls and SMS to it stop immediately, and it can only be restored (restore_did) within roughly 35 days while it remains in the terminated state — after that it returns to public stock and is lost. A DID on a still-pending order is cancelled with a refund instead; a DID from a Bulk Order cannot be terminated. Destructive and confirmation-gated.

Inputs: did_id (required), confirmation_token.

delete_identityDelete identityA
Destructive
Inspect

Delete one of the authenticated customer's regulation identities by id, together with ALL its addresses, uploaded proof documents and permanent supporting documents. This is destructive and cannot be undone. An identity cannot be deleted while it is linked to DIDs (as their main or porting identity), has New/Pending address verifications, unfinished emergency calling services or SMS campaigns, or is the account (system) identity — the error says which blocker applies. A user holding only the porting_manage rule cannot delete an identity that has permanent supporting documents (regulation rule required, as in the panel). Returns a confirmation message on success.

Inputs: identity_id (required), confirmation_token.

delete_proofDelete proof documentA
Destructive
Inspect

Delete (soft-delete) one of the authenticated customer's uploaded regulation proof documents by id — proof ids come from list_identities / list_addresses. Use it to REPLACE an existing document: delete the old proof first, then call create_regulation_upload_link — the freed document slot is offered again. This is destructive and cannot be undone. A proof linked to a pending address verification cannot be deleted. Returns the deleted proof info on success.

Inputs: proof_id (required), confirmation_token.

delete_sms_trunkDelete SMS trunkA
Destructive
Inspect

Delete one of the authenticated customer's SMS trunks by id (the uuid returned by list_sms_trunks). This is destructive and cannot be undone. A trunk that DIDs still route incoming SMS to cannot be deleted — unassign those DIDs first (assign_did_to_sms_trunk with a null sms_trunk_id, or route them to another trunk). Deleting a GROUP trunk also deletes its member trunks. Returns a confirmation message on success.

Inputs: id (required), confirmation_token.

delete_trunkDelete Voice IN TrunkA
Destructive
Inspect

Delete one of the authenticated customer's Voice IN Trunks (inbound voice trunks) by id. This is destructive and cannot be undone. Trunks that are still assigned to DIDs cannot be deleted. Returns a confirmation message on success.

Inputs: id (required), confirmation_token.

delete_trunk_groupDelete Voice IN Trunk GroupA
Destructive
Inspect

Delete one of the authenticated customer's Voice IN Trunk Groups by id. This is destructive and cannot be undone. A group that still has DIDs routed to it cannot be deleted (re-route those DIDs first). By default the member trunks are only detached and survive as standalone trunks; set delete_member_trunks to true to also permanently delete the member trunks (refused if any member still carries DIDs). Returns a confirmation message on success.

Inputs: id (required), confirmation_token, delete_member_trunks.

delete_voice_in_number_listDelete Voice IN Number ListA
Destructive
Inspect

Delete one of the authenticated customer's Voice IN Number Lists (caller-ID filters for inbound calls) by id, together with all its entries. This is destructive and cannot be undone. A list that is still attached to Voice IN Trunks (as their source number filter) cannot be deleted — the error names those trunks; detach it first via update_sip_trunk / update_pstn_trunk with src_number_list_id set to null. Returns a confirmation message on success.

Inputs: id (required), confirmation_token.

get_balanceGet BalanceA
Read-onlyIdempotent
Inspect

Get the authenticated customer's current prepaid account balance and billing standing. Returns balance (current funds), credit (allowed negative balance / credit line), available_balance (balance + credit), debt (outstanding amount owed, 0 when none), is_debtor (whether the account is in debt), currency and last_activity (timestamp of the last balance change). All amounts are in USD.

Inputs: no named parameters.

get_dashboardGet DashboardA
Read-onlyIdempotent
Inspect

Get the authenticated customer's account summary / dashboard. Returns a set of named cells the customer is allowed to see, such as last_invoice (amount), last_payment (amount), terminated_dids, dids_awaiting_registration, porting requests requiring attention/resubmit, porting FOC numbers, recently canceled verifications and whether channels exist. Each cell has a name and a value; a cell holding an amount also carries its currency. All amounts are in USD.

Inputs: no named parameters.

get_didGet DIDA
Read-onlyIdempotent
Inspect

Return the full details of one of the authenticated customer's DIDs by id (the uuid returned by list_dids). Includes the number, location (country, DID group area, DID group type, city), status flags (terminated, blocked, awaiting_registration, pending order, expired), inbound routing (voice trunk / trunk group and SMS trunk, by id + name), capacity (included channels, dedicated channels, capacity pool, shared capacity group, capacity_limit), billing (creation / activation / expiration dates, billing_cycles_count renewal state, monthly and setup price, next renewal price, the currency — all amounts are in USD — and, for an expired DID, the restore price), regulation state (registration deadline, identity, address verification status), emergency calling (E911) assignment and CNAM. Related entities are returned by id + name only — use the dedicated list tools for their full details.

Inputs: did_id (required).

get_did_historyGet DID historyA
Read-onlyIdempotent
Inspect

Return the billing/lifecycle history of one DID (by the phone number returned by list_dids / get_did): purchase assignment, renewals, cancellations, restorations, stock removal and renewal-setting (billing_cycles_count) changes, newest first. Each entry carries the action, when it happened, the channel it came from (user_panel / api3 / mcp / staff / system) and — for billing_cycles_count changes — the from/to values. HARD LIMIT: history is only retained for the last 90 days (the platform archives older partitions), so this can never show the full lifetime of a long-held number — say so instead of implying completeness. Returns at most 200 entries.

Inputs: number (required), action.

get_exportGet ExportA
Read-onlyIdempotent
Inspect

Show a single export created with create_export: status (pending | processing | completed), name, filters, timestamps and — once completed — download_url (the DIDWW User Panel link, opens in a signed-in browser). While pending/processing, poll this tool again (exports typically finish in up to 5 minutes). For completed cdr exports also reports file_size_bytes and total_data_rows (data rows, header excluded; null when the file is too large to count). Returns NO file content — create_export with a narrower date range for a smaller slice. include_signed_url adds signed_download_url, a login-less download link: it is SENSITIVE credential-bearing data — request it, and repeat it in a reply or summary, ONLY when the user explicitly asked for the download link.

Inputs: export_id (required), include_signed_url.

get_invoiceGet InvoiceA
Read-onlyIdempotent
Inspect

Get the details of a single invoice belonging to the authenticated customer, by its id. Returns the invoice id, name, billing period (year, month), date_from, date_to, created_at, sub_total (amount excluding VAT), vat, total (incl. VAT), currency and status. All amounts are in USD. Returns an error if no invoice with that id belongs to the customer.

Inputs: id (required).

get_sms_trunkGet SMS trunkA
Read-onlyIdempotent
Inspect

Return the full details of one of the authenticated customer's SMS trunks by id (the uuid returned by list_sms_trunks). Includes name, type, inbound/outbound flags, blocked state, priority, number of assigned DIDs, creation time and the full type-specific configuration (e.g. webhook method/url/headers/body for http_in; recipient/subject/message for smtp; SMPP/HTTP settings for outbound trunks). Password values are never returned; a boolean <field>_set reports whether a password is configured.

Inputs: id (required).

get_trunkGet Voice IN TrunkA
Read-onlyIdempotent
Inspect

Return the full details of one of the authenticated customer's Voice IN Trunks by id (the uuid returned by list_trunks). Includes name, trunk type, PSTN destination, capacity limit, priority, trunk group id, number of assigned DIDs, creation time and the full type-specific configuration (SIP host/port/username/codecs/registration + incoming auth, PSTN destination, PhoneSystems cnam). Password values are never returned; a boolean <field>_set reports whether one is configured.

Inputs: id (required).

get_voice_in_number_listGet Voice IN Number ListA
Read-onlyIdempotent
Inspect

Show one of the authenticated customer's Voice IN Number Lists (caller-ID filters for inbound calls) INCLUDING its stored entries, paginated. Each entry is returned with its exact stored value (character-for-character, as needed by update_voice_in_number_list remove_numbers) and its allow/reject action. Also returns the list name, mode ("full_number"/"prefix"), default_action, items_count, attached_trunks_count with up to 10 named trunks, and items pagination meta. Use page/page_size to walk large lists — entries are never returned wholesale.

Inputs: id (required), page, page_size.

list_accountsList available accountsA
Read-only
Inspect

List every DIDWW account (customer) the authenticated user can act as, with the roles held on each, the tools that account may NOT call (everything else is allowed) and which one is currently active. Use switch_account to change the active account.

Inputs: no named parameters.

list_addressesList addressesA
Read-onlyIdempotent
Inspect

List the authenticated customer's regulation addresses with their uploaded proof documents. Returns each address id, the identity it belongs to (id, name, type), country ISO code, city name, postal code, street address, verified flag and a proof summary (proof type name, expired flag, files count). Pass country_iso (+ did_group_type) — straight from a DID's registration_required block, or with requirement_type "emergency" to pick the address for an E911 calling service — to have every address checked against that requirement: each one then carries eligible, plus the mismatches and how to fix them when it is not. Use an address id with create_address_verification or create_regulation_upload_link. If no suitable address exists, create one with create_address.

Inputs: page, page_size, country_iso, did_group_type, +1 more.

list_address_verificationsList address verificationsA
Read-onlyIdempotent
Inspect

List the authenticated customer's address verifications (end-user / number registration reviews) with their status: Pending, Approved or Rejected. This is where a rejection becomes visible — a rejected verification carries the staff reject_comment and reject reasons, while the address itself only shows verified: false. Check here when a DID stays in awaiting_registration or an address stays unverified. Filter by status, address_id and/or DID number.

Inputs: page, number, status, page_size, +1 more.

list_capacity_groupsList Shared Capacity GroupsA
Read-onlyIdempotent
Inspect

List the authenticated customer's Shared Capacity Groups (capacity groups) and the Capacity Pool each belongs to, optionally filtered by Capacity Pool. Results are paginated. Returns each group id, name, shared and metered channel counts, number of assigned DIDs and its Capacity Pool (id and name), plus pagination meta.

Inputs: page, page_size, capacity_pool_id.

list_capacity_poolsList Capacity PoolsA
Read-onlyIdempotent
Inspect

List the authenticated customer's Capacity Pools. A Capacity Pool holds a number of channels the customer can distribute across Shared Capacity Groups and dedicated-channel reservations. Results are paginated. Returns each pool id, name, total/assigned/free channel counts, monthly price, metered rate (the pay-per-minute usage price — it can differ by orders of magnitude between pools, e.g. 1.00 vs 0.005, so weigh it alongside monthly_price when choosing a pool), currency (all amounts are in USD), renew date, creation time and the covered countries (covered_country_isos — DIDs can only draw capacity from a pool that covers their country, so check it before creating a group for a specific country), plus pagination meta.

Inputs: page, page_size.

list_credit_cardsList Credit CardsA
Read-onlyIdempotent
Inspect

List the authenticated customer's saved credit cards. Only masked, safe fields are returned (never the full card number or any secret): id, brand (e.g. VISA, MASTERCARD), last4 (last four digits), expires (YYYY-MM), auto_charge and origin_type. Results are ordered most recent first and paginated.

Inputs: page, page_size.

list_didsList DIDsA
Read-onlyIdempotent
Inspect

List the authenticated customer's DIDs, optionally filtered by number (exact or number_contains), description_contains, country, DID Group, group features (voice, voice_out, t38, sms, sms_out, a2p, p2p, emergency, cnam_out — ALL listed must be supported), routing (trunk_id / sms_trunk_id, or has_trunk / has_sms_trunk false for the numbers routed NOWHERE), capacity (shared_capacity_group_id, capacity_pool_id, has_dedicated_channels) and status (terminated, blocked, awaiting_registration, is_configured — the get_did flag: routed AND with channels). Results are paginated. Returns each DID id, phone number, country ISO code, DID Group area, included channels, status flags, billing_cycles_count (renewal), description, creation time and expiration date (expires_at), plus pagination meta.

Inputs: page, number, blocked, features, +15 more.

list_emergency_calling_servicesList Emergency Calling ServicesA
Read-onlyIdempotent
Inspect

List the authenticated customer's Emergency Calling Services. Returns each service id, name, reference, status (new, in process, changes required, pending update, active, canceled), country ISO code, DID group type, the emergency address one-liner, the count of covered phone numbers, the service setup_price and monthly_price with their currency (all amounts are in USD) and the last verification (id + status: pending, approved, rejected), plus pagination meta. Billing is per number: the recurring monthly cost of a service is monthly_price times the count of attached DID numbers (setup_price is one-time). Use create_emergency_verification to resubmit a service in changes required status.

Inputs: page, page_size.

list_emergency_requirementsList Emergency RequirementsA
Read-onlyIdempotent
Inspect

Check what an emergency verification needs BEFORE creating: identity type, mandatory identity/address fields (fill gaps with update_identity), area levels. The verification itself attaches no files, but the identity/address must carry their regulation proofs (staff reviews them) — upload missing ones via create_regulation_upload_link with purpose "emergency". Each requirement also carries the setup_price and monthly_price from YOUR account's emergency plan rate — emergency service is billed PER covered DID number: monthly_price times the attached numbers count every month, plus a one-time setup_price; both come with their currency (all amounts are in USD). Only requirements your plan prices are listed, so everything here can be ordered; an account without an emergency plan is told so instead. Optionally filter by country_iso and/or DID group type; without filters every requirement that your plan prices is returned (paginated). An empty list means emergency calling is not available to the account there — either not offered at all, or not covered by your plan, which sales@didww.com can extend.

Inputs: page, page_size, country_iso, did_group_type.

list_exportsList ExportsA
Read-onlyIdempotent
Inspect

List the authenticated customer's recent exports, newest first, optionally filtered by export_type or status. Results are paginated. Returns each export's id, export_type, status (pending | processing | completed), name, filters, created_at and — when completed — completed_at, download_url (open in a browser while signed in to the DIDWW User Panel) and download_expires_at. Download links that need no login are never listed here — get them one at a time from get_export with include_signed_url, and only when the user asked for one.

Inputs: page, status, page_size, export_type.

list_identitiesList identitiesA
Read-onlyIdempotent
Inspect

List the authenticated customer's regulation identities with their uploaded proof documents. Returns each identity id, type (personal/business), display name, country ISO code, verified flag, creation time and a proof summary (proof id — usable with delete_proof, proof type name, expired flag, files count). Pass country_iso (+ did_group_type) — straight from a DID's registration_required block, or with requirement_type "emergency" for E911 — to have every identity checked against that requirement: each one then carries eligible, plus the mismatches and how to fix them when it is not. Use an identity id with create_address / update_identity / create_regulation_upload_link. If no suitable identity exists, create one with create_identity.

Inputs: page, page_size, country_iso, did_group_type, +1 more.

list_invite_requestsList Invite RequestsA
Read-onlyIdempotent
Inspect

List the authenticated customer's pending invitations — users who were invited to access this account (create_invite_request) but have not responded yet. Returns each invitation id, email, name, roles (role names the invitee will be granted), status (always Pending — like the panel, this list shows only pending invitations) and created_at, plus pagination meta, ordered most recent first. Invite lifecycle: create_invite_request emails the invitee -> while unanswered the invitation is listed here and can be revoked with cancel_invite_request -> once the invitee accepts, it leaves this list and their access appears in list_user_accesses; revoked or declined invitations also leave this list.

Inputs: page, page_size.

list_invoicesList InvoicesA
Read-onlyIdempotent
Inspect

List the authenticated customer's invoices, optionally filtered by year and/or month. Results are ordered most recent first and paginated. Returns each invoice id, billing period (year, month), sub_total (amount excluding VAT), vat, total (incl. VAT), currency and status, plus pagination meta. All amounts are in USD.

Inputs: page, year, month, page_size.

list_ordersList OrdersA
Read-onlyIdempotent
Inspect

List the authenticated customer's purchase order history, ordered most recent first and paginated. Returns each order id, reference, service (Did, Pstn, Generic, Capacity, A2p, Emergency, ...), amount (incl. VAT), amount_no_vat, vat, currency, status (Completed, Pending, Canceled), created_at and completed_at, plus pagination meta. All amounts are in USD.

Inputs: page, page_size.

list_paymentsList PaymentsA
Read-onlyIdempotent
Inspect

List the authenticated customer's payment history, ordered most recent first and paginated. Returns each payment id, payment_type (e.g. CreditCard, PayPal, Wiretransfer), amount, currency, status (Completed, Pending, Canceled), is_charged, reference, payer_name, payer_email, paid_at and created_at, plus pagination meta. All amounts are in USD.

Inputs: page, page_size.

list_refundsList RefundsA
Read-onlyIdempotent
Inspect

List the authenticated customer's COMPLETED refunds (money actually returned), ordered most recent first and paginated. A refund is money returned to the customer for a previous charge. Refunds are issued by DIDWW staff or payment-provider flows against a payment (money goes back to the original payment method), or against an order or invoice (the amount is credited back to the account balance — credited_to_balance is true). Only completed refunds are listed — a refund still being processed does not appear here yet (same as the panel); tell the user to check back later or contact support about a refund in progress. Refund history is strictly read-only: no MCP tool can create, change or cancel a refund — customers request one through support. Amounts are negative (money returned) and include VAT. Returns each refund id, refund_target (payment, order or invoice), destination — where the money was returned: "original payment method" (a payment refund goes back to the card/PayPal/etc. it was paid from) or "account balance" (an order or invoice refund is credited to the account balance), amount, currency, description, reference, refunded_entities (type, reference, amount and currency of each refunded payment/order/invoice item — cross-reference the reference with list_payments / list_orders), credited_to_balance, paid_at and created_at, plus pagination meta. All amounts are in USD. Optionally filter by creation time with created_after / created_before.

Inputs: page, page_size, created_after, created_before.

list_requirementsList regulatory requirementsA
Read-onlyIdempotent
Inspect

List the regulatory requirements for DID registration, optionally filtered by country and/or DID Group type (name like "National" or UUID); without filters all requirements are returned (paginated). Use this FIRST when a DID needs registration (awaiting_registration / needs_registration): it tells you which identity type is accepted (any/personal/business), which proof documents and how many are needed for the identity and the address, which identity fields are mandatory, whether one-time/permanent supporting documents and a service description are required. Follow-up flow: create_identity -> create_regulation_upload_link (upload proofs) -> create_address -> create_address_verification.

Inputs: page, page_size, country_iso, did_group_type.

list_sms_trunksList SMS trunksA
Read-onlyIdempotent
Inspect

List the authenticated customer's SMS trunks, optionally searched by name (case-insensitive, partial match) and/or filtered by type (HTTP_IN, SMTP, HTTP_OUT, SMSC, ESME, GROUP). Results are paginated. Returns each trunk id, name, type, inbound/outbound flags, blocked state, priority, number of assigned DIDs and creation time, plus pagination meta. Use get_sms_trunk for the full details (delivery target) of one trunk.

Inputs: name, page, type, page_size.

list_trunk_groupsList Voice IN Trunk GroupsA
Read-onlyIdempotent
Inspect

List the authenticated customer's Voice IN Trunk Groups (failover / load-balancing groups of inbound voice trunks), optionally searched by name (case-insensitive, partial match). Results are paginated. Returns each group id, name, capacity limit, number of assigned DIDs, creation time and its member trunks (id, name, type, destination, priority, weight) in routing order — priority ascending, then weight descending — plus pagination meta.

Inputs: name, page, page_size.

list_trunksList Voice IN TrunksA
Read-onlyIdempotent
Inspect

List the authenticated customer's Voice IN Trunks (inbound voice trunks), optionally searched by name (case-insensitive, partial match) and/or filtered by type (SIP, PSTN, PHONE-SYSTEMS-2, TRUNK-GROUP). Results are paginated. Returns each trunk id, name, trunk type, PSTN destination (if any), capacity limit, priority, trunk group id, number of assigned DIDs and creation time, plus pagination meta.

Inputs: name, page, type, page_size.

list_user_accessesList User AccessesA
Read-onlyIdempotent
Inspect

List every user who can currently access the authenticated customer account, with their panel roles. Returns each access id, email, name, roles (role names such as SuperAdmin, Billing, Technical), is_owner (the account owner cannot be removed), is_current_user (the access this MCP session authenticated as), has_two_factor_auth, last_login_at and created_at, plus pagination meta. Ordered oldest first, so the account owner is typically first. NOTE: users appear here only after they accepted an invitation — a newly invited user who has not yet accepted is visible in list_invite_requests instead (invite lifecycle: create_invite_request sends an email -> the invitee accepts -> their access appears here).

Inputs: page, page_size.

list_voice_in_number_listsList Voice IN Number ListsA
Read-onlyIdempotent
Inspect

List the authenticated customer's Voice IN Number Lists — caller-ID (source number) filters for inbound calls. Each list matches the CALLER's number either exactly (mode "full_number") or by prefix (mode "prefix"); every entry in the list carries its own allow/reject action, and the list's default_action ("allow" or "reject") applies when no entry matches. A list only takes effect once it is attached to a SIP or PSTN Voice IN Trunk as its source number filter (src_number_list_id on the create/update SIP or PSTN trunk tools); attached_trunks in the result shows where each list is in use. Optionally searched by name (case-insensitive, partial match); results are paginated. Returns each list id, name, mode, default_action, items_count, attached_trunks_count with up to 10 named trunks (id and name) and creation time, plus pagination meta. The list ENTRIES themselves are not returned — only items_count; page through them with get_voice_in_number_list.

Inputs: name, page, page_size.

restore_didRestore terminated DIDA
Destructive
Inspect

Restore one of the authenticated customer's TERMINATED DIDs by id, bringing the number back into service (find terminated numbers with list_dids terminated: true). Only works while the number is still in the terminated state — roughly 35 days after termination it is released to public stock and can no longer be restored (it will not be found). Restoring a still-valid DID is free. But if the DID has already EXPIRED, restoring first RENEWS it and CHARGES the renewal price (USD, like every DIDWW amount) to the account balance — a PAID operation. This paid case is confirmation-gated — warn the user it is a paid renew before confirming. With insufficient balance the restore fails and nothing changes. On success the DID is unblocked and set to auto-renew (billing_cycles_count null); use update_did afterwards to change that. Returns the restored DID with its new expiration date.

Inputs: did_id (required), confirmation_token.

search_coverageSearch DID coverageA
Read-onlyIdempotent
Inspect

List DID Groups the authenticated customer can purchase, optionally filtered by country, city and/or number type. country_iso is an ISO 3166-1 alpha-2 code (e.g. CA, US, GB); city is a city name in English (fuzzy-matched, so spacing/hyphens are ignored; only local groups have cities); did_group_type is the number type (Local, National, Mobile, Toll-free, Shared Cost, Global). Each DID Group has one or more Stock Keeping Units (SKUs) at different included-channel tiers and prices. For each group returns: sku_id (pass THIS to buy_did — NOT group_id), group_id, DID Group area name, group type, country ISO code, dialing prefix, supported features (voice, voice_out, t38, sms, sms_out, a2p, p2p, emergency, cnam_out), needs_registration (true = the group requires address registration), restrictions (the group's service-restrictions text, when any — buying a DID from the group means accepting them), available quantity, back_orderable (present and true when the group is API-connected: buy_did purchases it even at 0 available quantity — back-ordering is on by default, see its allow_back_ordering argument — and the numbers are provisioned after the order), and per SKU: setup/monthly price with its currency (all amounts are in USD), included channels with a human label ("2 channels included" / "no channels (metered)") and billing_type (bundled = channels included, metered = 0 channels, pay-per-minute until capacity is attached). Filter by features to keep only groups supporting ALL listed features (e.g. ["sms"] for SMS-capable numbers, ["emergency"] for emergency-calling support).

Inputs: npa, nxx, city, page, +9 more.

switch_accountSwitch the active accountA
Idempotent
Inspect

Switch the active DIDWW account (customer) for this session. Pass a user_access_id from list_accounts. Subsequent tool calls run under the new account's roles, and the response lists the tools the new account may NOT call.

Inputs: user_access_id (required).

unassign_did_from_capacity_groupUnassign DID from Shared Capacity GroupA
DestructiveIdempotent
Inspect

Remove one of the customer's DIDs from its Shared Capacity Group (capacity group), so it no longer draws channels from that group's Capacity Pool. Provide the did_id. Idempotent: a DID that is not assigned to any group is reported as already unassigned. This is not a refund: it returns channels to the pool they were allocated from, reversibly — only buy_capacity_channels spends money. Returns the DID and a confirmation message, or a readable error.

Inputs: did_id (required).

update_addressUpdate addressA
Destructive
Inspect

Update an existing regulation address of the authenticated customer — only the street address, postal code, area and description can change (same as the panel). The country, city and identity of an address can NEVER be changed: for a different location create a new address with create_address. Only the provided fields are changed. Note: once the address is in use (linked to DIDs or verifications) its filled fields become read-only — though a still-blank address_area can be filled even then. Pass an empty string to clear the description.

Inputs: address_id (required), address, description, postal_code, +1 more.

update_capacity_groupUpdate Shared Capacity GroupA
DestructiveIdempotent
Inspect

Reconfigure one of the customer's Shared Capacity Groups (capacity groups): rename it and/or change its shared_channels_count / metered_channels_count. Only the provided fields are changed. Shared channels are drawn from (or returned to) the Capacity Pool's free channels — raising shared_channels_count is not a purchase, it allocates channels already bought into the pool. Raising metered_channels_count DOES enable more pay-per-use channels, billed at the pool's metered rate (all amounts are in USD), which is why raising it is two-call confirmation-gated: the first call returns a preview + confirmation_token and changes nothing; re-call with the token to apply it. Every other change applies immediately. Returns the updated group, or a readable error.

Inputs: capacity_group_id (required), name, confirmation_token, shared_channels_count, +1 more.

update_didUpdate DID renewal (billing cycles) / description / detach E911A
Destructive
Inspect

Manage a DID's renewal by setting billing_cycles_count. Three modes: null = the DID AUTO-RENEWS every billing cycle (monthly) indefinitely; N (a positive integer) = the DID renews for N MORE cycles (a countdown), then stops; 0 = STOP renewing: the DID keeps no renewal count and stays valid until the end of its current expiration date, then expires (this is the SOFT, reversible alternative to deleting a DID — set it back to null or N to resume renewing). Omit billing_cycles_count to leave it unchanged. Can also set or clear the DID description (to label several DIDs at once, use update_did_description). Can also DETACH the DID from its Emergency Calling Service (E911): pass emergency_calling_service_id: null (requires the emergency management permission, like the panel). Only unassignment is supported — assignment goes through the emergency domain verification flow. E911 is billed per number, so removing the number stops its charge from the next renewal; a service left with NO numbers is auto-canceled within a few hours (the customer is notified) — no extra cancellation step is needed. Returns the DID number, its resulting expiration date (expires_at), the new billing_cycles_count and the description.

Inputs: did_id (required), description, billing_cycles_count, emergency_calling_service_id.

update_did_descriptionSet / clear the description of DIDsA
DestructiveIdempotent
Inspect

Set the same description on one or more of the customer's DIDs (did_ids, max 100 per call), or clear it with description null or "". Use it to label several numbers at once (e.g. all numbers of an order or a ticket); update_did does the same for a single DID together with its renewal. The batch is all-or-nothing: every id must resolve to a DID in the account, otherwise NOTHING is changed and the error lists the offending ids. Returns the numbers with their resulting description and the count.

Inputs: did_ids (required), description (required).

update_identityUpdate identityA
Destructive
Inspect

Update an existing regulation identity of the authenticated customer — use it to fill in mandatory fields a requirement demands (see list_requirements), e.g. birth_date, id_number or country of tax residence before an address/emergency verification. Only the provided fields are changed; fields have the same semantics as in create_identity, and the identity type cannot be changed. Note: some fields become read-only once the identity is used by active DIDs or verifications.

Inputs: identity_id (required), vat_id, id_number, last_name, +9 more.

update_phone_systems_trunkUpdate phone.systems™ Voice IN TrunkA
Destructive
Inspect

Update one of the authenticated customer's phone.systems™ (PBX) Voice IN Trunks. Pass the trunk id and ONLY the fields to change — everything this tool can set is in the schema, and an omitted field keeps its current value. For SIP trunks use update_sip_trunk; for PSTN trunks use update_pstn_trunk. Returns the updated trunk attributes or a readable error.

Inputs: id (required), pop, name, weight, +8 more.

update_pstn_trunkUpdate PSTN Voice IN TrunkA
Destructive
Inspect

Update one of the authenticated customer's PSTN / call-forwarding Voice IN Trunks. Pass the trunk id and ONLY the fields to change; fields have the same semantics as in create_pstn_trunk. Changing destination is confirmation-gated: the preview shows the new destination's per-minute rate (amounts are in USD) — show the price to the user before confirming. Updates without a destination change apply immediately. For SIP trunks use update_sip_trunk; for phone.systems™ trunks use update_phone_systems_trunk.

Inputs: id (required), pop, name, weight, +10 more.

update_sip_trunkUpdate SIP Voice IN TrunkA
Destructive
Inspect

Update one of the authenticated customer's SIP Voice IN Trunks (inbound voice trunks). Pass the trunk id and ONLY the fields to change — never invent values for fields the user did not ask about; untouched fields keep their current values. Fields have the same semantics as in create_sip_trunk. For PSTN trunks use update_pstn_trunk; for phone.systems™ trunks use update_phone_systems_trunk. Returns the updated trunk attributes (passwords masked) or a readable error.

Inputs: id (required), pop, host, name, +45 more.

update_sms_trunkUpdate SMS trunkA
Destructive
Inspect

Update one of the authenticated customer's SMS trunks by id (the uuid returned by list_sms_trunks). Partial update: only the passed fields change; fields have the same semantics as in create_sms_trunk — webhook fields apply to HTTP IN trunks only, email fields to SMTP trunks only, and the trunk type itself cannot be changed. Available placeholders (substituted per incoming SMS): {SMS_TIME} received time, {SMS_SRC_ADDR} sender, {SMS_DST_ADDR} receiver, {SMS_TEXT} message text, {SMS_TEXT_BASE64_ENCODED} message text base64-encoded. Placeholders work in the SMTP subject/message and in HTTP IN query_parameters/headers/body. Returns the updated trunk with its full configuration (passwords are never returned) or a readable error.

Inputs: id (required), url, body, name, +10 more.

update_sms_trunk_groupUpdate SMS trunk groupA
Destructive
Inspect

Update one of the authenticated customer's SMS trunk groups by id (a GROUP-type uuid from list_sms_trunks). Partial update: pass any of name (rename), add_sms_trunk_ids (link more member trunks) and remove_sms_trunk_ids (unlink members — the trunks themselves are NOT deleted). Only inbound-capable HTTP IN, SMTP, SMSC or ESME trunks can be added; a trunk already inside another group must be removed there first. To delete the whole group use delete_sms_trunk (WARNING: that also deletes its member trunks). Returns the updated group with its member trunks, or a readable error.

Inputs: id (required), name, add_sms_trunk_ids, remove_sms_trunk_ids.

update_trunk_groupUpdate Voice IN Trunk GroupA
Destructive
Inspect

Update one of the authenticated customer's Voice IN Trunk Groups. Pass the group id and any fields to change: name, capacity_limit and/or members. IMPORTANT: members REPLACES the whole member list — trunks not listed are detached from the group (they survive as standalone trunks, nothing is deleted); pass an empty array to detach all members. Omit members to leave the membership untouched. Each member entry: trunk_id (required) plus optional priority (lowest tried first) / weight (higher preferred among equal priorities). Returns the updated group with its members in routing order, or a readable error (nothing is changed).

Inputs: id (required), name, members, capacity_limit.

update_voice_in_number_listUpdate Voice IN Number ListA
Destructive
Inspect

Update one of the authenticated customer's Voice IN Number Lists (caller-ID filters for inbound calls). Pass the list id and only the fields to change; mode, default_action and entry semantics are as in create_voice_in_number_list. remove_numbers entries are matched EXACTLY by their stored value — do NOT guess formats ("+4930..." and "4930..." are different entries): look up the exact stored values with get_voice_in_number_list first, or use values you added earlier in this conversation. Changes apply immediately to every trunk the list is attached to, and atomically — on any error nothing is changed. Returns the updated list or a readable error (e.g. naming the remove_numbers entries that do not exist in the list).

Inputs: id (required), mode, name, add_numbers, +3 more.

validate_addressValidate address against a requirementA
Read-onlyIdempotent
Inspect

Check whether an existing address (and its identity) satisfies a regulation or emergency requirement BEFORE creating a verification — a read-only pre-flight that changes nothing. Pass the address_id and either a requirement_id or country_iso (+ did_group_type) to resolve the requirement; requirement_type picks the rule set: "regulation" (DID registration, mirrors the panel address validation) or "emergency" (E911, mirrors the emergency address validation). Returns a valid flag plus what is missing: identity/address proof documents, supporting documents, mandatory identity fields, structural mismatches the upload flow cannot fix (identity type, country/area levels), and whether the requirement demands a one-time supporting document at verification time. The next_step field says how to proceed: create_address_verification directly when everything is in place, create_regulation_upload_link when documents (incl. the one-time document) still must be collected, update_identity for missing fields. Note: for City/Area-level requirements the city match against the actual DIDs is checked only at verification time (no DIDs are passed here).

Inputs: address_id (required), requirement_type (required), country_iso, did_group_type, +1 more.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to provision phone numbers, send SMS, place AI voice calls, and react to inbound events via the Dial communication stack, all through MCP tools.
      219 npm
      MIT
    • A
      license
      Not graded
      quality
      B
      maintenance
      Connects MCP clients to a telephony account so users can manage phone numbers, SIP accounts, routing, SMS, calls, and billing in plain language. It exposes search, schema lookup, and execute tools to run permitted API operations, with confirmation required for paid or destructive actions.
      MIT
    • A
      license
      B
      quality
      B
      maintenance
      Enables MCP clients to manage AI voice assistants, place calls, run campaigns, handle contacts and knowledge bases, and read call transcripts. It also provides account, phone number, dialer, and analytics tools through a hosted or local MCP connection.
      25
      MIT
    • A
      license
      A
      quality
      C
      maintenance
      Enables interaction with RingCentral phone system data, including account info, extensions, presence, call queues, contacts, and call logs/recordings, through MCP tools.
      13
      Apache 2.0
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.

    Resources