Skip to main content
Glama

Server Details

Connect your communications to your AI.

Ownership verified
Status
Healthy
Uptime
100.0% over the last 24 hours
OAuth
Works in Glama
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL
Repository
Swift-Mobile-Solutions-Dev/widely-mcp
GitHub Stars
0
ChatGPT
–
Claude
–

TDQS

B3/5.0

Scored across 121 tools

Disambiguation2/5

The 121-tool surface contains several genuinely overlapping pairs: add_number_channels and set_number_channels are explicitly documented as interchangeable (shared idempotency_key, same behavior), list_membership_requests and list_pending_membership_requests cover nearly the same data for different roles, and request_speak vs create_call_task both dial an Errands brief with near-identical parameters. Price/quote/purchase triplets (quote_number/search_numbers/buy_number, quote_esim/get_data_rate/order_esim, quote_service/order_service) are pattern-consistent but force the agent to reason about which layer to call. The very detailed descriptions mitigate a lot, but an agent will still misselect among these clusters.

Naming Consistency4/5

The dominant convention is consistent snake_case verb_noun (get_/list_/search_/create_/update_/delete_/set_/upsert_/quote_/order_/submit_/request_), which reads predictably across the vast majority of tools. Deviations exist: noun-first names like esim_install_steps, port_requirements, account_closure_options, uk_divert_number, and the prefixed whatsapp_number_request_code / whatsapp_number_verify_code break the pattern, but they are a small minority.

Tool Count1/5

121 tools is far beyond a well-scoped surface even for a broad telecom platform spanning numbers, eSIM, calls, voicemail, WhatsApp, AI receptionist, wallet, membership, and ports. The set reads as an internal API dump rather than a curated agent toolset, and no agent can keep this many schemas in working memory reliably.

Completeness4/5

Coverage is unusually thorough: full lifecycle for contacts, receptionists, knowledge, locations, hours, menus, and queues; a complete port flow (requirements, quote, start, submit, status); wallet, membership, WhatsApp template, and callback-channel flows with preview/confirm semantics. Minor gaps remain, such as no delete_contact, no way to remove a queue/menu/receptionist, no cancel-port or delete-template operation, which agents must work around.

Available Tools

121 tools
accept_errands_termsAccept the Errands termsA
Idempotent
Inspect

One-time acceptance of the Widely Errands terms, needed before any AI call or errand can dial. Without confirm it returns a short terms summary, the link to the full terms, and whether this user already accepted. Show that to the user; only after the user clearly agrees, call again with confirm=true to record the acceptance. Safe to repeat.

Inputs: confirm.

account_closure_optionsAccount closure optionsA
Read-onlyIdempotent
Inspect

Information only. Returns the ways to stop charges without closing the account (cancel membership, stop a number renewing, remove a saved card), and that unused credit is refunded on closure. Account closure and deletion are handled by Widely Support. This tool does not close or delete anything. No sign-in.

Inputs: no named parameters.

add_callback_channelAdd a callback channelAInspect

Adds an email, signed webhook, WhatsApp number, SMS number, or this connection's Widely chat. Email, SMS, and WhatsApp need a code. A webhook is checked with a signed test ping. SMS numbers follow Widely's SMS country rules. The webhook secret is returned once.

Inputs: type (required), label, default, destination.

add_number_channelsSet channel count (add_number_channels alias)A
DestructiveIdempotent
Inspect

Sets how many calls one number on this account can take at once. The number includes 2. A higher count is refused. Single extra channels are not sold by this tool. A lower count is scheduled for the end of the paid period. Capacity stays until then. Nothing is refunded. The current count clears a scheduled reduction. Every client changes nothing until confirm is true. The same idempotency_key on set_number_channels or add_number_channels returns the first result.

Inputs: number_id (required), channel_count (required), confirm, idempotency_key.

approve_membership_requestApprove a membership upgradeA
DestructiveIdempotent
Inspect

Approves one open membership upgrade request and charges the shared wallet the prorated upgrade, through the same plan charge as a direct upgrade. Every client charges nothing until confirm is true. The preview includes this wording, and confirming records it for a consumer account: Start now. I understand I lose my right to cancel once the service is fully provided, and I pay for what I use if I cancel earlier. idempotency_key repeats the same result instead of charging again. Only an account admin can approve.

Inputs: request_id (required), confirm, idempotency_key.

ask_supportAsk Widely SupportAInspect

Writes a message into this user's Widely Support chat and notifies the Support team. A person on the team replies in that chat (not instantly); call read_support to get the reply. Any connected account can send it. text is what is needed and what was already tried. attachments is optional. Each item is an https URL, or base64 data with a filename and mime type. Widely stores each file on that Support chat the same way as a file the customer uploads in the app. Each returned attachment has id, filename, mime_type, size, and status stored or rejected. A price question also returns product_prices from the live price lookup. not_priced means that engine has no amount.

Inputs: text (required), attachments.

buy_numberBuy a numberB
Destructive
Inspect

Purchases a phone number and charges the wallet. Returns the price charged. Every client charges nothing until confirm is true. The preview includes this wording, and confirming records it for a consumer account: Start now. I understand I lose my right to cancel once the service is fully provided, and I pay for what I use if I cancel earlier. idempotency_key repeats the same purchase result instead of buying again.

Inputs: sku_id, confirm, country, number_type, +5 more.

cancel_call_taskCancel an Errands callA
Destructive
Inspect

Stops an Errands task. graceful records a wrap-up and hangs up. immediate hangs up. A task that has not dialled is cancelled without a call.

Inputs: task_id (required), mode.

cancel_membership_requestCancel a membership upgrade requestB
DestructiveIdempotent
Inspect

Cancels this seat's open membership upgrade request. Nothing is charged. request_id is the request id.

Inputs: request_id (required).

control_callControl a live callB
Destructive
Inspect

Holds, resumes, hangs up, or transfers an in-progress conversation on this seat. Plus plan.

Inputs: action (required), call_id (required), destination.

create_business_accountCreate a business accountA
Idempotent
Inspect

Prepares another business account owned by the signed-in user. Nothing is created until that owner approves it in the Widely app. The same idempotency_key returns the first request. Leaving confirm off returns a preview. An optional Plus membership and an optional phone number are priced on this request and charged on the new account only after approval. Card details are not accepted. When approving in the app, keep give access ticked. If the account is on this connection, refresh tools, call get_account without an account to list them, then pass account by name. If it is not, add it from Connected apps in the app, or reconnect and tick it.

Inputs: idempotency_key (required), name, sku_id, confirm, +10 more.

create_call_taskCreate an Errands callA
Destructive
Inspect

Places or schedules an Errands call from a brief. The price comes from the rate sheet. When the number belongs to a Widely account, the default is their Widely app. Set native true only when the caller asked for the mobile or landline network; that price is the network rate. A future schedule_at waits until then. There is no global calling-hours window. Fill every field you can; call describe_errand_template for the fields and examples. Emergency and premium-rate numbers are refused. A marketing brief is refused. The seat needs the current Errands terms. Plus plan. A bad brief lists every missing and invalid field at once. The assistant introduces itself with the name set in the user's Widely AI assistant settings (Assistant's name).

Inputs: goal (required), callee_name (required), destination (required), on_behalf_of (required), +26 more.

create_campaign_codeCreate a campaign invite codeAInspect

Creates a vanity invite code, such as ADS50, that counts signups from one placement. It pays no reward and charges nothing. Omitted confirm returns a preview on every client.

Inputs: code (required), name (required), confirm, creative_id.

create_contactCreate a contactAInspect

Adds one saved contact on this seat. name is required. phone_numbers and emails are optional. The same arguments add another contact. An existing contact stays as it is.

Inputs: name (required), emails, phone_numbers.

decline_membership_requestDecline a membership upgradeA
DestructiveIdempotent
Inspect

Declines one open membership upgrade request. Nothing is charged. reason is optional. Only an account admin can decline.

Inputs: request_id (required), reason.

delete_receptionist_hoursDetach receptionist opening hoursB
DestructiveIdempotent
Inspect

Stops one receptionist from using its informational opening-hours schedule. It does not change DID open/closed routing.

Inputs: ivr_config_id (required).

delete_receptionist_knowledgeDelete receptionist business informationB
DestructiveIdempotent
Inspect

Deletes one categorized service, price, policy, FAQ, inventory, returns, donation, escalation, or custom fact.

Inputs: id (required), ivr_config_id (required).

delete_receptionist_locationDelete a receptionist locationC
DestructiveIdempotent
Inspect

Deletes one structured location from a receptionist.

Inputs: id (required), ivr_config_id (required).

describe_errand_templateDescribe the Errands briefB
Read-onlyIdempotent
Inspect

Returns the Errands brief fields (required and optional, with shapes and allowed values), the rules the assistant always follows, and worked examples. Read-only. The assistant introduces itself with the name in Widely AI assistant settings (Settings → Voicemail → Configure Personal Assistant → Assistant's name). assistant_name overrides it for one errand; save_as_default true also saves it as the default. With neither, the call is refused: set it with set_assistant_name.

Inputs: no named parameters.

discover_servicesFind a mobile serviceA
Read-onlyIdempotent
Inspect

Find a home mobile service Widely can provide for a country, including eSIM or physical SIM, native voice, SMS, a mobile number, and a regular or kosher line when the offer includes it. No sign-in. An empty list means nothing is listed yet. Travel data for a trip is a separate Widely product.

Inputs: country, capability, form_factor, number_line, +2 more.

draft_whatsapp_templateDraft a WhatsApp templateA
Destructive
Inspect

Stores a WhatsApp template draft for a number this account owns. Pass name, category, language, and body. Category and language codes come from the config in the result. Variables look like {{1}}. Pass examples in order. Pass draft_id to replace an open draft. This does not submit the template and does not charge.

Inputs: did_id (required), body, name, footer, +8 more.

enable_whatsapp_aiTurn on WhatsApp AIB
DestructiveIdempotent
Inspect

Answers WhatsApp on a number this account owns, using that number's AI receptionist. Charges the shared wallet the monthly fee. Every client charges nothing until confirm is true.

Inputs: did_id (required), ivr_config_id (required), confirm, monitor_ids.

esim_install_stepsHow to install an eSIMA
Read-onlyIdempotent
Inspect

Returns the eSIM install path and the APN. The APN is null when this profile has no APN. No sign-in.

Inputs: no named parameters.

explain_chargesExplain chargesB
Read-onlyIdempotent
Inspect

Returns charges already on this account, with amounts and labels. An empty list means there is no matching charge.

Inputs: question.

get_accountRead the accountA
Read-onlyIdempotent
Inspect

Returns the plan, the live wallet balance (the same headline as Home and Wallet), how many people are on the account, how many eSIMs are live, and which setups this seat can run. Wallet fields are amounts and currency only. Opening hours, addresses, and prices are in get_account.business_facts.

Inputs: no named parameters.

get_auto_topupAuto top-up settingsA
Read-onlyIdempotent
Inspect

Returns whether auto top-up is on, and the threshold and amount.

Inputs: no named parameters.

get_callGet one callA
Read-onlyIdempotent
Inspect

Returns full detail for one phone call, identified by call_id, including which identity and provider carried it. UTC times stay beside local times. Numbers are E.164. duration_seconds is the call history duration, and is omitted when a call that did not connect has no time on the line. remote_name is the saved contact for remote_number when one contact matches and the saved name is not the number. When you tell the user the result, say remote_name. Say remote_number only when remote_name is empty.

Inputs: call_id (required), timezone.

get_call_taskGet an Errands callA
Read-onlyIdempotent
Inspect

Returns one Errands task: status, quote, collected facts, and recent events. callee_name is who was called when the brief or a saved contact has a name that is not the number. elapsed_seconds, hold_seconds, and ivr_seconds are omitted when they are zero on a failed call. When you tell the user the result, say callee_name. Say destination only when callee_name is empty. Do not mention a duration of zero.

Inputs: task_id (required).

get_conversation_contextGet conversation contextA
Read-onlyIdempotent
Inspect

Returns one conversation already assembled, newest first, so a smaller model can answer about that conversation. It reads messages and call summaries on that conversation id. It does not rewrite them. The most recent messages that fit token_budget are included, plus call summaries for calls on that same conversation. A call uses its stored summary, or a transcript excerpt when no summary is stored. token_budget defaults to 2000. approx_tokens estimates tokens as characters divided by 4, rounded up, on each serialized item. That figure is an estimate, not a tokenizer count. Pass query to also include older messages in this conversation that match it, still inside the budget. since is an ISO 8601 lower bound. Each item has type message or call, its message id or call_id, a timestamp, sender or direction, and text. The result reports approx_tokens, items_included, items_omitted, has_more_older, and server_ms. It returns the items that fit, not the whole conversation. Verification codes and other labeled secrets are masked. Set include_memory true to add the saved memory for this conversation when that account has it turned on. Memory cites message ids and call ids, and reports its version, freshness, and token count. If memory is off, missing, stale, or paused, the result is the source messages and memory.status says why. That does not fail the call, and it does not show a conversation this seat cannot already read.

Inputs: conversation_id (required), query, since, token_budget, +1 more.

get_data_rateThis account's data rateA
Read-onlyIdempotent
Inspect

Returns this customer's pay-as-you-go data ladder, starting from data already used this period. This is the account rate, separate from the public shelf. Omitting gb returns the volume points.

Inputs: country (required), gb.

get_did_rateThis account's number priceB
Read-onlyIdempotent
Inspect

Returns an indicative monthly phone-number price for a country, using this account's rate checker.

Inputs: country (required), number_type.

get_esim_connection_checkRead the eSIM checkB
Read-onlyIdempotent
Inspect

Returns the result of an eSIM connection check for request_id, including fail and warn items. Phone settings are not changed.

Inputs: request_id (required).

get_forwardingSee call forwardingA
Read-onlyIdempotent
Inspect

Returns how this seat's numbers are forwarded. Pro plan.

Inputs: no named parameters.

get_notification_preferencesNotification settingsA
Read-onlyIdempotent
Inspect

Returns notification toggles and the low-balance threshold.

Inputs: no named parameters.

get_pacRequest a UK porting codeA
Idempotent
Inspect

Requests or reads the free PAC for a UK number on this Widely account, so the customer can move it to another provider. Leave the number out when the account has one eligible number. The result includes state, and the code with expires_at when state is ready. A PAC is free. Widely cannot issue a STAC yet. This does not delete the number.

Inputs: e164, code_type.

get_portPort statusB
Read-onlyIdempotent
Inspect

Returns the current status of a port request. A port is not instant.

Inputs: port_id (required).

get_product_noteRead a product noteA
Read-onlyIdempotent
Inspect

Returns one product-note thread by conversation_id, oldest first. No account is required. Does not list other threads.

Inputs: conversation_id (required).

get_receptionist_factsRead structured receptionist factsB
Read-onlyIdempotent
Inspect

Returns one receptionist's profile, contacts, locations, opening hours, and categorized business facts before you update them. Opening hours, addresses, and prices are in get_account.business_facts.

Inputs: ivr_config_id (required).

get_recordingGet a call recording linkA
Read-onlyIdempotent
Inspect

Returns a short-lived streaming link for a recorded phone call. Plus plan, and the grant includes recordings.read. duration_seconds is the call history duration, the same number as search_calls and get_call.

Inputs: call_id (required).

get_threadRead a message threadA
Read-onlyIdempotent
Inspect

Returns messages in one thread, oldest first. before is an ISO 8601 cursor for older pages.

Inputs: conversation_id (required), limit, before.

get_transcriptGet a call transcriptA
Read-onlyIdempotent
Inspect

Returns stored transcript text already saved for a phone call. Does not start a new transcription. While speaking is still in progress, the status is in_progress. Returns no_transcript only after the conversation has ended with no stored text. remote_name is who was called when one saved contact matches. When you report the call, say remote_name. Say remote_number only when remote_name is empty.

Inputs: call_id (required).

get_usageRead usageA
Read-onlyIdempotent
Inspect

Returns the eSIM data balance and minutes already used on this seat. data_balance is the data wallet balance. Cancelled eSIMs are omitted unless exclude_cancelled is false. company=true covers the whole account on Plus.

Inputs: days, company, exclude_cancelled.

get_voicemailGet one voicemailA
Read-onlyIdempotent
Inspect

Returns one voicemail by call_id, including its transcript. include_audio also returns a short-lived audio link on Pro and above.

Inputs: call_id (required), include_audio.

get_whatsapp_template_statusCheck a WhatsApp templateA
Read-onlyIdempotent
Inspect

Refreshes one WhatsApp template or one draft. Returns Approved, Pending, or Rejected, and the reason when it was rejected.

Inputs: did_id (required), draft_id, template_id.

invite_memberInvite a personBInspect

Emails an invitation to join this Widely account. New users start Free; there is no account user limit.

Inputs: email (required).

list_callback_channelsList callback channelsA
Read-onlyIdempotent
Inspect

Lists this agent connection's callback channels and which events each one receives. A channel is used only after it is verified. Events with no channel use the default channel.

Inputs: no named parameters.

list_call_tasksList Errands callsA
Read-onlyIdempotent
Inspect

Lists this seat's Errands tasks. Filter by status or date. callee_name is who was called when that name is known. When you tell the user about a task, say callee_name. Say destination only when callee_name is empty.

Inputs: limit, since, until, status.

list_campaign_codesList campaign invite codesA
Read-onlyIdempotent
Inspect

Returns this seat's campaign invite codes with their links. Campaign codes only count signups and pay no reward.

Inputs: no named parameters.

list_conversationsList conversationsA
Read-onlyIdempotent
Inspect

Returns one row per conversation on this seat, newest update first. conversation_id is the same id get_thread and send_message use. channels lists the channels stored on that conversation: app, sms, whatsapp, email, or mcp, the same labels search_messages uses. A conversation can list more than one. participants are names when known, and phone numbers when a participant has them. updated_at is UTC and updated_at_local uses the account timezone. Each row has message_count and a short last-message preview. Optional filters: channel, participant (a number or a contact name), updated_after, updated_before. Pass cursor from the previous page. Order is updated_at descending, then id descending. limit defaults to 20 and is at most 100. Support and assistant conversations are left out the same way as search_messages. Verification codes in the preview are masked.

Inputs: limit, cursor, channel, participant, +2 more.

list_did_numbersNumbers and registrationA
Read-onlyIdempotent
Inspect

Returns this account's phone numbers, including numbers that stay inactive until identity registration is finished.

Inputs: no named parameters.

list_identitiesList my numbers, SIMs, and extensionsA
Read-onlyIdempotent
Inspect

Returns the phone numbers, caller IDs, verified SIM numbers, PBX extensions, and eSIMs on this Widely seat, with the provider that supplies each and what it can do.

Inputs: include_shared.

list_membership_requestsList membership upgrade requestsA
Read-onlyIdempotent
Inspect

Lists this seat's membership upgrade requests, newest first. An open request includes the live prorated price from the rate sheet.

Inputs: no named parameters.

list_payment_methodsSaved payment methodsA
Read-onlyIdempotent
Inspect

Returns masked saved cards and bank methods: brand, last4, and default. A processor id is not included.

Inputs: no named parameters.

list_pending_membership_requestsList pending membership upgradesA
Read-onlyIdempotent
Inspect

Lists open membership upgrade requests on this account. An account admin can call it. Each row includes the live prorated price.

Inputs: no named parameters.

list_phone_systemSee the phone systemA
Read-onlyIdempotent
Inspect

Returns numbers and who answers them, AI receptionists with greeting, knowledge, voice, and languages, press-1 menus, queues, and opening hours with the weekly windows. The owner needs Plus for shared phone-system features; queue agents, shared-number users, and direct person targets need Plus too. A queue rings only members who are signed in and available. Opening hours, addresses, and prices are in get_account.business_facts.

Inputs: no named parameters.

list_plansList plansB
Read-onlyIdempotent
Inspect

List Free, Pro, and Plus monthly prices. Each monthly figure is per user. Quote that amount. Do not round it and do not call it an account price. No sign-in. This does not change the plan. Plus covers the office phone system. channel_packs lists the 10-channel pack prices: number packs per country, and SIP trunk packs per account.

Inputs: currency.

list_routing_optionsList routing optionsC
Read-onlyIdempotent
Inspect

Returns destinations for one context: a number, closed hours, a forwarded line, queue overflow, queue no-agents, a menu key, or an unanswered seat.

Inputs: context (required).

list_teamList the teamA
Read-onlyIdempotent
Inspect

Returns people on this account and pending email invites. Each person includes consumer_user_id, status, email, name, role, plan_tier, and presence. plan_tier is that person's plan (free, pro, or business; business is the Plus plan), resolved the same way as the account plan. presence is their phone-system availability (available, busy, wrap_up, break, dnd, or signed_out), or null when they have no agent status. name and role are null when those records are missing.

Inputs: no named parameters. Returns: members, pending_invites

list_voicemailsList voicemailsB
Read-onlyIdempotent
Inspect

Returns recent voicemails on this seat with caller, time, duration, and transcript text when one is stored.

Inputs: days, limit.

list_wallet_activityWallet activityB
Read-onlyIdempotent
Inspect

Returns the wallet ledger of top-ups, product debits, and holds. Each row includes the customer label.

Inputs: limit, offset.

list_wallet_refundsEligible wallet refundsA
Read-onlyIdempotent
Inspect

Returns first-eSIM wallet top-ups that can be refunded to the card: the profile has not been installed and the top-up is inside the refund window.

Inputs: no named parameters.

list_whatsapp_templatesList WhatsApp templatesA
Read-onlyIdempotent
Inspect

Lists WhatsApp templates for a number this account owns, plus open drafts. Each template includes Approved, Pending, or Rejected and the reason when it was rejected.

Inputs: did_id (required).

lookup_pricingLook up product pricesA
Read-onlyIdempotent
Inspect

Returns the monthly price with and without VAT, setup fees, and usage rates for a plan, WhatsApp AI, the AI receptionist, a phone number, data, calls, or a port. Filter by product, country, or number type. No sign-in. not_priced means that price engine has no amount. This does not charge.

Inputs: country, product, currency, question, +2 more.

order_esimOrder an eSIMB
Destructive
Inspect

Creates an eSIM profile. Data is billed per GB as it is used. There is no data package. Installation happens later. Every client charges nothing until confirm is true. The preview includes this wording, and confirming records it for a consumer account: Start now. I understand I lose my right to cancel once the service is fully provided, and I pay for what I use if I cancel earlier. idempotency_key repeats the same order result instead of creating another profile.

Inputs: country (required), confirm, idempotency_key.

order_serviceOrder a listed serviceB
Destructive
Inspect

Starts a Widely order for a listed marketplace service. Choose the form factor and number line the offer allows. Does not order Widely travel data. Every client orders nothing until confirm is true. Available now.

Inputs: offer_id (required), form_factor (required), number_line (required), number, +1 more.

port_requirementsWhat a number port needsA
Read-onlyIdempotent
Inspect

Returns the documents a number port needs. No sign-in. Does not submit a port.

Inputs: no named parameters.

prepare_orderPrepare a Widely orderBInspect

Prepare travel data, a phone number, a number move, a listed mobile service, Pro or Plus, or an office phone system after the price is known. Returns a Widely link to finish. Pro and Plus quotes include monthly_per_user and monthly_total (that price times users). No sign-in. This does not charge a card or the wallet.

Inputs: kind (required), gb, menu, queue, +15 more.

quote_callCall rateA
Read-onlyIdempotent
Inspect

Returns the per-minute price for dialling a destination number or country. Signed in, it is this account's rate (account_rate true). Not signed in, it is the public list price (list_price true). This does not place the call.

Inputs: country, currency, destination, number_type.

quote_call_taskQuote an Errands callA
Read-onlyIdempotent
Inspect

Read-only price check for an Errands brief. Returns the per-minute price from the call rate sheet (including the AI minute), the caller ID that would be shown, and the most the call could cost at max_call_minutes. The default price for a Widely account's number is the Widely call. Set native true only to price the mobile or landline rate. It does not dial, schedule, save, hold or charge anything. It returns 'refused' when there is no rate, the number is emergency or premium-rate, or the brief is marketing. It returns 'consent_required' if the user has not accepted the Errands terms. A bad brief lists every missing and invalid field at once.

Inputs: goal (required), callee_name (required), destination (required), on_behalf_of (required), +26 more.

quote_esimQuote eSIM dataB
Read-onlyIdempotent
Inspect

Price Widely travel data for a country. Use this when a trip needs data and not a home mobile service. Pay as you go per GB, with no data package. An optional gb value returns an estimate billed in 0.1 GiB steps. No sign-in.

Inputs: country (required), gb, currency.

quote_numberQuote a numberA
Read-onlyIdempotent
Inspect

Price a Widely phone number for a country, including the monthly amount and whether local calls are included. Use this when a UK, US, Israeli, or other local number is needed. Each number includes 2 simultaneous calls. More come in packs of 10, shared by the account's numbers in the same country; channel_count prices the packs needed for a total such as 15. No sign-in. This does not purchase the number.

Inputs: country (required), currency, number_type, channel_count.

quote_portQuote a portA
Read-onlyIdempotent
Inspect

Price moving an existing number onto Widely. Use this when the current number should be kept. The move is not instant. No sign-in. This does not start the move.

Inputs: number, country, currency, number_type.

quote_serviceQuote a mobile serviceC
Read-onlyIdempotent
Inspect

Price one listed home mobile service for a form factor and number line that offer allows. The amount comes from that offer. No sign-in. This is separate from Widely travel data.

Inputs: offer_id (required), form_factor (required), number_line (required), number.

read_supportRead the Support replyA
Read-onlyIdempotent
Inspect

Returns messages in this user's Support chat, oldest first. Any connected account can read it. Other chats are not included.

Inputs: limit.

refund_wallet_topupRefund an eligible top-upB
Destructive
Inspect

Refunds an eligible first-eSIM wallet top-up to the card. Input is transaction_id of an eligible top-up. Returns the refund result. Every client refunds nothing until confirm is true.

Inputs: transaction_id (required), confirm.

remove_callback_channelRemove a callback channelB
DestructiveIdempotent
Inspect

Removes one callback channel from this agent connection. Events that named it no longer use it.

Inputs: channel_id (required).

request_callPlace a callA
Destructive
Inspect

Rings the user's phones. After one answers, dials the destination into that same conversation. The result shows as an outgoing phone call. The user speaks on it. Pro plan. If no phone answers, the destination is not dialled. When the destination belongs to a Widely account, the default is their Widely app. Set native true only when the caller asked for the mobile or landline network instead.

Inputs: native, destination, identity_id.

request_membership_changeRequest a membership upgradeA
Idempotent
Inspect

Asks an account admin to move this seat to Pro or Plus. Nothing is charged. The admin approves or declines. plan_tier is pro or business; business is the Plus plan. A second request for the same tier returns the open request. A different tier needs the open request cancelled first.

Inputs: plan_tier (required).

request_speakCall and speakA
Destructive
Inspect

Dials the number and the assistant handles the errand on the phone. Plus plan. Takes a structured brief only (call describe_errand_template for the fields); free text is refused. When the number belongs to a Widely account, the default is their Widely app. Set native true, in the brief or here, only when the caller asked for the mobile or landline network instead. A bad brief lists every missing and invalid field at once. The assistant introduces itself with the name in the user's Widely AI assistant settings, or brief.assistant_name; with neither the call is refused (set it with set_assistant_name). It agrees only to allowed_commitments, leaves a voicemail by default, and always ends with a thank-you and goodbye. Set connect_user to "monitor", in the brief or here, and the user's phones ring when the callee answers so they can listen in silence, press * to take over, or press # to cancel the call. Hang up to stop listening; the assistant stays on the call. Set connect_user true and the assistant asks the callee to hold at the end, then the user's phones ring and the assistant leaves. The brief's connect_user value wins when both are set. Returns immediately with the task and call ids.

Inputs: brief (required), native, destination, identity_id, +1 more.

request_transcriptTranscribe a callBInspect

Asks Widely to transcribe a recording that has no text yet. Pro plan.

Inputs: call_id (required).

resend_callback_channel_codeResend a callback verification codeAInspect

Sends a fresh verification code for an email, SMS, or WhatsApp callback channel. Use this when verify_callback_channel returns code_expired or code_locked. A webhook or Widely chat is checked again with a test message. This connection can receive at most 3 verification messages an hour.

Inputs: channel_id (required).

revise_whatsapp_templateRevise a WhatsApp templateB
Destructive
Inspect

Updates an open draft, or copies a submitted template into a new draft. Pass the revised name, body, or examples. This does not submit and does not charge.

Inputs: did_id (required), body, name, footer, +9 more.

run_esim_connection_checkCheck the eSIM connectionCInspect

Asks this user's Widely app to check the eSIM and returns a request_id. A result of no_install_yet means the profile may have been installed from a QR and the Widely app is not on that phone. An APN is not included.

Inputs: sim_id, device_id.

search_callsSearch call historyA
Read-onlyIdempotent
Inspect

Finds phone calls on this Widely seat by date range, direction, contact name, or number. Returns one row per phone call, with direction, duration, outcome, the identity used, and whether a transcript or recording exists. started_at, ended_at, and created_at are UTC. The matching _local fields use the account timezone, or timezone when you pass an IANA name. Numbers are E.164. remote_number is the other party, including the other leg when the collapsed leg shows this seat's own number on both sides. remote_name is the saved contact for that number when one contact matches and the saved name is not the number. When you tell the user about a call, say remote_name. Say remote_number only when remote_name is empty.

Inputs: days, line, limit, query, +7 more.

search_contactsSearch contactsA
Read-onlyIdempotent
Inspect

Finds people in the phone address book. name and number are separate filters. Set either one, or both. A contact matches every filter that is set. Omit both to match every contact. A number matches saved numbers, including a national form of the same number. Returns names and phone numbers for one page. limit and offset are the page that was applied, and total is the full match count. include_shared_chats is optional. Set it to include each shared chat name and the last message.

Inputs: name, limit, number, offset, +2 more.

search_helpLook up how Widely worksA
Read-onlyIdempotent
Inspect

Returns public product facts and in-app menu names for a question. No sign-in. A price question includes the product price lookup in knowledge. not_priced means that price engine has no amount.

Inputs: query (required).

search_messagesSearch messagesA
Read-onlyIdempotent
Inspect

Searches this user's Widely, SMS, and WhatsApp threads by keyword and date. Returns message text with sender, thread, and source (sms, whatsapp, email, app, or mcp). Support and assistant threads are excluded. Pass source to keep one of those.

Inputs: days, limit, query, source, +1 more.

search_numbersSearch numbersA
Read-onlyIdempotent
Inspect

Find Widely phone numbers available for a country and an optional city, with the monthly price. Use this when a local number is needed. No sign-in. This does not purchase a number.

Inputs: country (required), city, currency, number_type.

search_shared_chatsFind shared chatsA
Read-onlyIdempotent
Inspect

Finds chats on this seat shared with one person. Set one of contact_id, user_id, or number. contact_id is a saved contact. user_id is the other person's Widely user. A number matches that phone number, including a national form of the same number. Returns one page of chats with the chat name and the last message. limit and offset are the page that was applied, and total is the full match count.

Inputs: limit, number, offset, user_id, +1 more.

send_messageSend a messageA
Destructive
Inspect

Sends an SMS or a Widely message into an existing thread, or to a phone number, a contact_id, or one saved contact. A name that matches more than one contact is refused. Pass conversation_id for a thread from search_messages, get_thread, or a shared chat. Omit it and pass to. Pro plan. Sending happens on this request.

Inputs: text (required), to, identity_id, conversation_id.

set_assistant_nameSet the assistant's nameA
DestructiveIdempotent
Inspect

Sets the name the assistant uses on AI calls (Widely AI assistant settings → Assistant's name). Calls are refused until a name is set or passed in the brief.

Inputs: name (required).

set_auto_topupChange auto top-upC
DestructiveIdempotent
Inspect

Turns auto top-up on or off, and sets the threshold and amount. This request stores the setting.

Inputs: enabled (required), amount, threshold, payment_method_id.

set_callback_routingSet callback routingB
DestructiveIdempotent
Inspect

Chooses which verified channels receive each event. Events: low_balance, monthly_statement, pending_approval, porting_status, rate_limit, recording_ready, sign_in_code, topup_receipt, transcript_ready, voicemail. An event with no list uses the default channel. routing.default_channel_id is the default. routing.events maps an event name to a list of channel ids.

Inputs: routing (required).

set_call_handlingSet what happens to unanswered callsA
DestructiveIdempotent
Inspect

Sets what happens when this seat does not answer a call or is busy: voicemail, busy, decline, end, or ai_receptionist. An explicit decline follows the busy action. Voicemail is the default. when=decline is still stored, including this_device, and the ring does not apply it. ai_receptionist rings the seat first, then hands the call to the AI receptionist or phone menu in menu_id (Plus).

Inputs: when (required), action (required), menu_id.

set_notification_preferencesChange notification settingsC
DestructiveIdempotent
Inspect

Updates notification toggles and the low-balance threshold.

Inputs: types, low_balance_threshold.

set_number_channelsSet channel countA
DestructiveIdempotent
Inspect

Sets how many calls one number on this account can take at once. The number includes 2. A higher count is refused. Single extra channels are not sold by this tool. A lower count is scheduled for the end of the paid period. Capacity stays until then. Nothing is refunded. The current count clears a scheduled reduction. Every client changes nothing until confirm is true. The same idempotency_key on set_number_channels or add_number_channels returns the first result.

Inputs: number_id (required), channel_count (required), confirm, idempotency_key.

set_number_routingSet who answersB
DestructiveIdempotent
Inspect

Points a number at ring_me, personal_assistant, a receptionist, a menu, a queue, voicemail, busy, or decline. ai_receptionist is the same destination as receptionist. An optional closed target uses the opening hours. A shared line, receptionist, menu, or queue needs Plus.

Inputs: number, target, number_id, target_id, +4 more.

set_receptionist_openai_keyUse your OpenAI keyA
DestructiveIdempotent
Inspect

Stores an OpenAI key on this number's receptionist. Calls and WhatsApp replies then use that key and Widely does not charge tokens. The key is never returned.

Inputs: did_id (required), clear, openai_api_key.

start_portStart a portBInspect

Opens a request to move an existing number to Widely, using the details supplied here. The move is not instant. Does not send the request to the carrier. Every client saves nothing until confirm is true.

Inputs: number, confirm, country, numbers, +2 more.

submit_portSubmit a portA
Destructive
Inspect

Sends a port request to the carrier and charges the wallet when there is a fee. The move is not instant. Every client charges nothing until confirm is true.

Inputs: port_id (required), confirm.

submit_product_noteSend a product noteAInspect

Sends Widely a note about a missing capability, a complaint, or a use case to build. No account is required. reply_url, when it is https, receives each desk reply. Returns conversation_id. Passing that id on a later request adds to the same thread.

Inputs: text (required), kind, title, reply_url, +1 more.

submit_whatsapp_templateSubmit a WhatsApp templateB
DestructiveIdempotent
Inspect

Submits a stored draft for a number this account owns. Omitted confirm returns a preview on every client and does not submit. confirm true submits it. This does not charge the wallet.

Inputs: did_id (required), draft_id (required), body, name, +5 more.

subscribe_eventsSubscribe to eventsA
DestructiveIdempotent
Inspect

Sets the https URL that receives call.started, call.ended, and speak.completed for this seat. events chooses which of those names to receive. Omitting events receives all three. An empty webhook_url stops delivery.

Inputs: events, webhook_url.

topup_with_saved_methodTop up with a saved cardA
Destructive
Inspect

Charges a saved card and adds the amount to this wallet. Omitting payment_method_id charges the default saved card. Every client charges nothing until confirm is true. idempotency_key repeats the same top-up result instead of charging again.

Inputs: amount (required), confirm, idempotency_key, payment_method_id.

uk_divert_numberUK Always-forward numberA
Read-onlyIdempotent
Inspect

Returns the UK shared Always-forward destination and the dial code. No sign-in.

Inputs: no named parameters.

update_campaign_codeRename a campaign invite codeA
DestructiveIdempotent
Inspect

Renames one of this seat's campaign invite codes. The code itself never changes. Omitted confirm returns a preview on every client.

Inputs: id (required), name (required), confirm.

update_contactUpdate a contactA
DestructiveIdempotent
Inspect

Changes one saved contact on this seat. contact_id is that contact. Set name, phone_numbers, emails, or any of them. A field left out stays as it is. A list replaces the saved list. The group chat name stays as it is.

Inputs: contact_id (required), name, emails, phone_numbers.

update_forwardingChange call forwardingA
DestructiveIdempotent
Inspect

Points a verified number at a business number on this seat, or stops forwarding when forward_to is empty. Pro plan.

Inputs: forward_to, identity_id.

update_group_nameUpdate a group chat nameA
DestructiveIdempotent
Inspect

Changes the name stored on one group chat. conversation_id is that group. name replaces the previous name. An administrator of the group can change it. The saved contact stays as it is.

Inputs: name (required), conversation_id (required).

update_whatsapp_aiUpdate WhatsApp AIC
DestructiveIdempotent
Inspect

Pause, resume, choose who can see the WhatsApp chats, or set the webhook that answers first. Setting a webhook returns the signing secret once.

Inputs: did_id (required), pause, monitor_ids, webhook_url, +1 more.

upgrade_planChange planA
Destructive
Inspect

Moves the connected user to Pro or Plus and charges the shared account wallet. Credit and cash pay the price. A saved card is charged only for the amount the wallet does not cover. plan_tier is pro or business; business is the Plus plan. Every client charges nothing until confirm is true. A Pro or Plus preview includes this wording, and confirming records it for a consumer account: Start now. I understand I lose my right to cancel once the service is fully provided, and I pay for what I use if I cancel earlier. idempotency_key repeats the same result instead of charging again.

Inputs: plan_tier (required), confirm, idempotency_key.

upsert_hoursSet opening hoursA
Destructive
Inspect

Creates or edits a timezone-aware opening-hours schedule and optionally attaches it to an AI receptionist. Informational receptionist hours do not change DID routing. day is 0 for Monday through 6 for Sunday; start and end are HH:MM. Date-bounded is_closed windows are exceptions.

Inputs: id, name, windows, timezone, +1 more.

upsert_menuSet up a phone menuA
Destructive
Inspect

Creates or edits a press-1 menu. The account owner needs Plus. A key can ring a person, ring a queue, or send the caller to an AI receptionist. A direct person target and every queue agent also need Plus. Older target names still work.

Inputs: id, keys, name, enabled, +1 more.

upsert_queueSet up a queueA
Destructive
Inspect

Creates or edits a queue. The account owner and every queue member need Plus. A queue rings only members who are signed in and available. strategy ring_all, round_robin, least_recent, and priority ring every available member at once. hunt rings one available member at a time for ring_seconds, then the next. overflow and no_agents can be voicemail, another queue, hangup, or an AI receptionist. outbound_caller_id is optional and must already be a caller ID on this account.

Inputs: id, name, overflow, strategy, +9 more.

upsert_receptionistSet up an AI receptionistB
Destructive
Inspect

Creates or edits an AI receptionist. The account owner needs Plus. It speaks with the caller and does not transfer the live conversation to a person.

Inputs: id, name, voice, enabled, +5 more.

upsert_receptionist_knowledgeAdd receptionist knowledgeB
Destructive
Inspect

Adds or revises a knowledge entry for one receptionist. The next WhatsApp reply and the next phone call both use it.

Inputs: body (required), title (required), ivr_config_id (required), id, +2 more.

upsert_receptionist_locationAdd or update a receptionist locationC
Destructive
Inspect

Stores a business address plus directions, parking, public transport, accessibility, location contacts, coordinates, and timezone.

Inputs: ivr_config_id (required), id, city, name, +14 more.

upsert_receptionist_profileUpdate receptionist business profileC
Destructive
Inspect

Creates or edits the business identity, IANA timezone, contact details, and human-escalation instructions used on phone and WhatsApp.

Inputs: ivr_config_id (required), email, phone, website, +4 more.

verify_callback_channelVerify a callback channelA
Idempotent
Inspect

Confirms a callback channel. Pass the code for email, SMS, or WhatsApp. A webhook or Widely chat is checked again with a test message. If the code has expired or is locked, call resend_callback_channel_code.

Inputs: channel_id (required), code.

whatsapp_number_request_codeSend a WhatsApp codeAInspect

Asks WhatsApp to text or call a number this account owns with a registration code. method is sms or voice. forward_to is optional and only for a voice call: a phone already verified on this account. When the person reads the digits, pass them to whatsapp_number_verify_code.

Inputs: did_id (required), method, forward_to.

whatsapp_number_verify_codeEnter the WhatsApp codeA
DestructiveIdempotent
Inspect

Submits the WhatsApp registration code the person read from the text or the call. Pass those digits in code. A code is 4 to 8 digits. The answer leaves the digits out. When the number goes live this charges the WhatsApp AI monthly fee from that service's rate sheet, through the wallet, credit first. confirm false is a preview: the code is not sent and nothing is charged. The same on every client.

Inputs: code (required), did_id (required), confirm.

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
      Connect AI agents to Wavix's communications platform to send SMS, make and manage voice calls, run 2FA flows, and access speech analytics, phone number management, and SIP infrastructure.
      5
      MIT
    • F
      license
      B
      quality
      B
      maintenance
      Connects AI assistants to Mirlo workspace for CRM, messaging, and voice operations.
      21
      -
    • A
      license
      Not graded
      quality
      C
      maintenance
      Connects your own WhatsApp account to AI clients so they can summarize and search chats, identify unanswered messages, manage media, and draft or send messages, polls, and scheduled messages.
      MIT
    Try in Browser

    Glama MCP Gateway

    Add one secure layer between your agents and this server.