Skip to content
Back to search
100
MCP live MCP 2025-06-18 streamable-http

KaiCalls

com.kaicalls/kaicalls

AI phone secretary: place calls, read transcripts, list calls, agents, and stats.

Watch this dependency Share evidence report
Uptime
100.0%
1 direct probes · 30d
Response
1505ms
last probe
Tools
182
callable
Resources
1
readable
Prompts
0
available
Score: 100/100
Handshake verified by our own probe.
pass Answers the MCP handshake 50/50
The handshake and the list calls succeeded on the primary URL.
pass Lists tools, resources or prompts 30/30
182 tools, 1 resources, 0 prompts returned.
pass 3 or more catalogue items 10/10
183 items in total; 3 or more earns these points.
pass Describes itself 10/10
81 characters; more than 30 earns these points.

Tools · 182

request_human_approval

Ask a named principal for a specific decision using the provisioned voice approval channel. Requires restricted approvals:write, a configured callback host and signing secret. Returns dispatch status;…

connect_agent

Connect an external agent to a business and its signed event outbox. Requires current business admin membership, an assigned Kai agent, and agents:write, sms:write, webhooks:write. New SMS/WhatsApp co…

get_agent_connection

Discover the external agent connection, signed webhook configuration, scoped API operation catalog, channel readiness and remaining runtime requirements. Requires agents:read, sms:read and webhooks:re…

disconnect_agent

Disconnect the external agent and disable its webhook atomically. Requires current business admin membership and agents:write, sms:write, webhooks:write. Pass the stored expected_revision. Inherited c…

get_lsa_account_report

Read the authorized advertiser's live Google Local Services aggregate account report, including actual spend, currency and charged lead totals. Requires linked manager-account access. Dates are calend…

get_lsa_setup

Inspect Google LSA account selection and sync freshness, with setup steps. Saved configuration never proves a live workflow. Cloud-project production access is not shown here; Google Cloud reports it.

sync_lsa

Sync an explicitly selected connected LSA advertiser. Requires current business admin role. Syncing runs lead ingestion, and existing business speed-to-lead configuration may contact the new leads it …

list_lsa_leads

List synced Google LSA leads, charge and credit states, source IDs and rating details. The returned LSA lead id identifies the lead in LSA commands; the separate lead_id field links to the CRM.

get_lsa_conversations

Read the latest 200 synced Google LSA conversation events for an LSA lead, including customer and advertiser messages. History is as current as the last sync.

get_lsa_report

Report LSA lead counts, types, observed statuses, ratings and credit counts for an explicit UTC window (start inclusive, end exclusive). Includes sync freshness and completeness. Removed unrated leads…

send_lsa_reply

Send an authorized text reply inside an existing Google LSA message lead through the Ads API. This contacts the customer. Requires current business admin role and a stable idempotency_key. A retry wit…

rate_lsa_lead

Submit an authorized, truthful Google LSA quality survey and return Google's actual bonus-credit decision. This is not a guaranteed refund or the retired manual dispute workflow. Requires admin role a…

agency_profile_bootstrap

Registers a new agency for the signed-in user and makes them its owner, using the given brand and support details. Requires a signed-in user session with a verified email; an API key cannot create an …

agency_profile_update

Replaces the agency brand, support details and requested commercial mode. Requires an agency owner or admin and the current profile revision; a stale revision is rejected. It does not change any publi…

agency_profile_invite

Creates a staff invitation for an email address with the admin, operator or reader role and returns a one-time invite link that expires in 7 days. Requires an agency owner or admin; only the owner can…

agency_profile_accept_invite

Joins the agency using the token from an invite link. The signed-in user must have a verified email that matches the invited address, and the invite must be unexpired and not revoked. Accepting the sa…

agency_profile_revoke_invite

Cancels a pending staff invitation so its link can no longer be used. Requires an agency owner or admin. It does not remove anyone who already accepted; revoke_member does that.

agency_profile_assign

Gives an active agency staff member access to one client business with the admin or member business role. Requires an agency owner or admin who can manage that client; only the owner can assign an adm…

agency_profile_unassign

Removes a staff member's agency assignment to one client business, and removes the business membership if this assignment created it. Requires an agency owner or admin; only the owner can unassign an …

agency_profile_revoke_member

Removes a staff member from the agency: revokes their membership, all their client assignments, their accepted invites and every API key issued to them through the agency. Requires an agency owner or …

agency_profile_issue_key

Creates a new API key for yourself in this agency, limited to the requested scopes, and returns the secret once. Readers cannot get write scopes, only the agency owner can get billing:write, and a del…

agency_offer_save

Creates a new offer draft, or replaces an existing draft when offerId and its current revision are given. Requires an agency owner or admin. Saving changes only the draft; clients see nothing until it…

agency_offer_preview

Builds the publishable manifest and sales kit for an offer draft and returns its fingerprint and revision for publishing. Requires an agency owner or admin. It saves nothing and fails if a package rel…

agency_offer_publish

Publishes the previewed offer as a new immutable version and returns its enrollment link. Requires an agency owner or admin, plus the fingerprint and revision from preview; partner-billed offers also …

agency_offer_archive

Archives an offer so it can no longer be published or used for new enrollments. Requires an agency owner or admin and the current offer revision. Existing installations are not removed.

agency_enrollment_start_self_service

Starts a business owner's own enrollment in a published agency offer, using the business name and intake facts. Requires a signed-in user session with a verified email and an idempotency key; the same…

agency_enrollment_finish_self_service

Completes a self-service enrollment after the owner has approved the current intake: creates the client business and queues its package installations, which later configure the business's voice agent.…

agency_enrollment_owner_save

Lets the client owner replace the intake facts on their own enrollment link. Requires the owner who claimed the link and the session's current revision. Saving clears any earlier owner approval, so th…

agency_enrollment_create

Creates an enrollment session for 1-50 existing or new clients against a published offer version and returns one owner approval link per new client. Requires an agency owner, admin or operator with ac…

agency_enrollment_save

Replaces the client entries of an uncommitted enrollment session. Requires the session creator (or an agency owner/admin) and the current session revision. Saving revokes all outstanding owner approva…

agency_enrollment_preview

Checks every client in the batch for missing facts, owner approval and payer conflicts, and returns what enrolling would install, with the fingerprint and approval IDs needed to enroll. Requires an ag…

agency_enrollment_enroll

Commits the previewed batch: creates new client businesses, records owner approvals and queues package installations for every ready client; installations later configure each client voice agent. Requ…

agency_enrollment_claim_owner

Links the signed-in client owner to their enrollment link using its token. The user's verified email must match the owner email on the link. It approves nothing.

agency_enrollment_approve_owner

Records the client owner's approval of the exact offer and intake facts on their enrollment link. Requires the owner who claimed the link, the session's current revision and its fingerprint. It does n…

agency_enrollment_rotate_owner_link

Issues a new owner link for a client in the batch and invalidates the old one, clearing any earlier claim and approval. Requires the session creator (or an agency owner/admin) and the link's current r…

agency_enrollment_revoke

Revokes an enrollment session and all of its owner links so nothing more can be approved or enrolled from it. Requires the session creator or an agency owner/admin. Installations that were already enr…

agency_installation_preview_route_receipt

Returns the evidence that a real call reached the client's voice line and produced a delivered lead notification, with a fingerprint for acknowledgement. Only for voice intake installations whose trai…

agency_installation_approve_route_receipt

Records the client owner acknowledging the route test receipt they reviewed. Requires the client owner who received the notification and the fingerprint from preview_route_receipt. It does not place a…

agency_installation_preview_handoff

Returns the staff handoff for an installation with a fingerprint for approval. Requires client membership or agency assignment to the client. It changes nothing.

agency_installation_approve_handoff

Records the client owner approving the exact staff handoff they reviewed. Requires the client owner and the fingerprint from preview_handoff.

agency_installation_resolve_update

Chooses, for each conflicting setting in a proposed package update, whether to keep the client's current value or use the package value, and saves the resolved update. Requires the client owner and th…

agency_installation_run_scenarios

Run approved verification scenarios for an existing client installation at its expected revision using voice agent compute under existing entitlement. Requires current assigned client authority, curre…

agency_installation_owner_preview

Shows the client owner the exact intake facts and voice script prepared for their business, with the hashes needed to approve each. Only the client owner can view it, and only after the agency prepare…

agency_installation_approve

Records the client owner approving either the intake facts or the voice script they reviewed. Requires the client owner and the matching hash from owner_preview. It does not install anything by itself…

agency_installation_revoke_approval

Withdraws one of the client owner's earlier approvals. Requires the client owner. Work that depends on that approval waits until it is approved again.

agency_installation_pause

Pauses an installation so its package setup and scheduled package work stop. Requires agency write access to the client or the client owner, and the current revision. It does not delete anything; use …

agency_installation_retry

Re-queues an installation so setup runs again, clearing its last error; setup configures the client's voice agent. Requires agency write access to the client or the client owner, and the current revis…

agency_installation_export

Returns the installation release, intake facts, approved script, staff sheet and checks for handoff or records. Requires client membership or agency assignment to the client. It changes nothing.

agency_installation_preview_offboard

Shows what offboarding would stop and what it keeps (phone number, sender, connections, billing plan and history), with a fingerprint for approval. Only the client owner can view it. It changes nothin…

agency_installation_offboard

Starts offboarding: stops the package's jobs, revokes its future automation authority and turns off its scheduled reports. Requires the client owner, accepted set to true and the fingerprint from prev…

agency_installation_preview_update

Prepares a proposed update to a newer published offer version, or a rollback to an earlier installation revision, and lists any conflicts with client changes. Requires agency write access to the clien…

agency_installation_approve_update

Records the client owner approving the updated script of a proposed update. Requires the client owner, the updateId and its fingerprint. It does not apply the update.

agency_installation_apply_update

Applies an approved update and re-queues setup, which replaces the client's live voice agent configuration. Requires agency write access or the client owner, a resolved update with no open conflicts, …

agency_installation_opt_into_canary

Marks the client's installation as a canary, so it can receive package updates before other clients of the same agency. Requires the client owner and accepted set to true. It applies no update by itse…

agency_report_generate

Generate and save an activity report snapshot for an existing client installation at its expected revision. Requires current client membership and agency access. Queues report email for due owner-appr…

agency_report_configure

Sets the weekly or monthly activity report email schedule for an installation and replaces the previous recipient list. Requires the client owner; recipients must be verified members of the client's b…

agency_billing_record_adjustment

Record an already-issued provider credit note or debit invoice against an existing agency billing line. Platform finance operators only: requires the existing admin key and wildcard scope; agency owne…

agency_billing_set_plan

Puts a partner-created client on an agency-billed plan, or stops it when plan is null. Requires the agency owner who is also a client admin; starting a plan needs accepted terms and a ready collection…

agency_billing_set_automatic_collection

Turns monthly automatic collection of wholesale charges on or off under the accepted terms. Requires the agency owner and accepted terms; it cannot be turned off while any client is on an active partn…

agency_billing_publish_terms

Publishes a new set of wholesale commercial terms (discount, grace days, document and start date) for one agency, or for all agencies when partnerId is null. Platform commercial operators only. Each c…

agency_billing_accept_terms

Accepts published wholesale terms for the agency and applies their discount. Requires the agency owner, and the terms must be in effect and apply to this agency. It charges nothing and doesn't set up …

agency_billing_setup_collection

Creates the agency's customer record at the payment provider if needed and returns a hosted link where the owner adds a payment method. Requires the agency owner and accepted terms. It charges nothing…

agency_billing_freeze_period

Calculates and locks the wholesale statement for one closed calendar month (UTC) from the agency's billable client intervals. Requires the agency owner. Freezing the same month again returns the same …

agency_care_preview_review

Shows the exact review-request text, sender number and recipients for customers with a completed service, with a fingerprint for approval. Requires the client owner, the sms:write scope, and an SMS re…

agency_care_prepare_review

Saves the approved review-request texts as a draft campaign and reserves the listed customers. Requires the client owner, the sms:write scope, accepted set to true and the fingerprint from preview_rev…

agency_care_launch_review

Launches the approved review-request campaign, queuing text messages to the listed customers from the business number. Requires the client owner, the sms:write scope, accepted set to true and the fing…

agency_support_acknowledge

Marks an agency incident as acknowledged and assigns its follow-up to you. Requires an agency owner, admin or operator. It does not resolve the incident; recovery is confirmed separately.

agency_support_measure

Records time spent or money for one client (setup, support, fulfillment, provider cost or retail receipt) with a note. Requires an agency owner, admin or operator with write access to that client. Eac…

agency_support_complete_exercise

Save completion evidence for a named operational exercise on an existing client installation. Requires current assigned client authority. Replaces any previous proof reference and completion time for …

get_agency_workspace

Read assigned installations, grouped support incidents, accepted billing evidence (also billing:read), or inventory one authorized client's saved facts and actual channel readiness. Suggestions and un…

request_extra_number

Reserve an exact pool number and request an owner-only browser review of its recurring extra-line price. Requires numbers:write and billing:write. It never charges included or prepaid capacity; includ…

get_extra_number_status

Read an owner-authorized extra-number request. Billing, assignment and live activation are distinct. Unknown checkout or provider outcomes retain the original request and number, so no replacement pur…

retry_setup

Reconcile database pointers for an existing imported signup phone reservation. Owner-only, entitlement-checked, single-flight and idempotent. Never creates agents, buys numbers, changes provider routi…

get_setup_recovery_status

Read an owner-authorized setup recovery request by its business and idempotency key. Running requests are never automatically stolen, including stale requests. A ready receipt does not prove live acti…

make_call

Place an outbound call through a KaiCalls AI agent: call back a customer who previously called this business, give the owner a voice preview, or call on the owner's behalf (a landlord, clinic, pharmac…

check_call_status

Check the status of a call by its ID, and any question Kai is waiting on (pending_question)

answer_call_question

Send the person's answer to a live call's pending_question, or decline. Send only what they said; answered once.

join_call

Join a live errand call. take_over connects the person's own phone; listen returns a signed-in dashboard link.

list_recent_calls

List and search the business's calls, newest first, each with who called (when known) and a short summary of what they wanted. Search by caller phone, by words in the call summary ("water heater", "qu…

get_transcript

Get the transcript and summary of a completed call

share_call_example

Owner only: publish a finished errand call as a redacted transcript example (no audio, business shown as a category). Call once for a preview, show it, then confirm with its preview_hash.

unshare_call_example

Owner only: take a shared call example down.

get_call_recording

Get the real call recording URL for a call so reviewers can listen to the voice/audio instead of relying only on the transcript.

list_agents

List the KaiCalls agents on the authenticated account. Shows whether this business already has a secretary answering its calls.

get_business_info

Read back what a business already has: profile details, how many agents are configured, and recent call volume. This shows whether a business number that answers missed calls already exists. When the …

get_operational_settings

Read the business-level operational setup of a live account: staff alert recipients, SMS/email alert flags, escalation rules, textable send-link entries, and assigned agent voice/model/greeting metada…

configure_staff_alerts

Save business-owned staff alert recipients and post-call escalation rules. Saving settings does not prove provider delivery or owner receipt; activation notification proof is tracked separately.

get_call_disclosures

Read the recording notice and AI notice callers hear before the greeting, and when each plays: always, state_gated (only for callers in states whose law calls for it, e.g. all-party-consent states for…

set_call_disclosures

Change the recording notice or AI notice callers hear before the greeting, or when each plays. The next call uses the new wording. Requires the business owner. Turning a notice to never can break reco…

get_activation_status

Read current call readiness and persisted private-test proof for one accessible business. Only a currently entitled owner with a coherent assigned number gets the existing private-test setup link. Mis…

confirm_notification_destination

APPROVAL-GATED. Save the owner-approved phone number (SMS) or email address where KaiCalls sends the owner the result of their first test call, for the exact active activation session. Once that test …

retry_activation_notification

APPROVAL-GATED. Send the owner's activation notification again, as a real text or email through KaiCalls' messaging provider, for the exact active activation session. Only retries a channel whose last…

choose_customer_route

APPROVAL-GATED. After private-test proof is complete, save forwarding, published_number, both, or testing. This unlocks the command center but does not claim customer coverage; selected customer route…

configure_textable_links

Create or repair the business_links entries used by the send_link/send_sms tools. These entries let callers receive booking, directions, cancellation, sister-location, or service-specific links by tex…

configure_agent_business_rules

Safely add or replace a named operational rules section inside an agent inbound prompt, then route the prompt patch through the governed agent.patch broker. It covers cross-business handoffs, callback…

list_leads

List leads for the authenticated business, with optional status/source/agent filters. Includes the latest AI lead score when available.

get_lead

Get full details for a single lead by ID, including the latest AI lead score and explanation.

list_voicemails

List recent voicemails for the authenticated business, including transcripts and recording URLs.

list_sms_messages

Read SMS and WhatsApp message evidence for accessible businesses (sms:read), including provider message ID, carrier status, delivery/failure timestamps and failure code. Filter by business_id, convers…

get_inbox

Answer "what did I miss?" in one read: the business's calls since a moment (default the last 24 hours, at most 30 days) with who called and what they wanted, every unheard voicemail with its transcrip…

set_business_hours

Change the business's opening hours, timezone, or one-off closed dates ("we're closed Friday the 27th"). Same change as the dashboard's hours page, admin role required. Only the days you pass change; …

list_campaigns

List outbound call campaigns for the authenticated business.

create_campaign

Create an outbound call campaign (cadence + lead batch) and optionally launch it immediately. Launching queues calls for the orchestrator; existing TCPA/consent gating still applies at dial time. Requ…

launch_call_campaign

Start or resume an existing outbound call campaign so Kai begins calling its leads. Needs campaign_id and agent_id (an agent assigned to the same business), the calls:write scope and an admin role in …

pause_call_campaign

Pause an outbound call campaign. Stops its queued and scheduled calls and cancels pending call attempts; a call already in progress may finish. Leads are kept and the campaign can be resumed later wit…

list_workflow_templates

List the cadence/campaign workflow templates KaiCalls can run (standard, aggressive, nurture, custom), including each template's retry interval, defaults (call windows, days, attempts), and a ready-to…

get_analytics

Get a dashboard summary (lead counts by status, conversion rate, call volume and duration, top agents, and business outcomes by type) over a recent time window.

upsert_lead

Create a new lead or update existing leads for the authenticated business, routed through the governed leads API (business access-checked, usage-logged, and audited). To create one, pass `lead` with a…

send_sms

Send a text from an agent's phone line through the governed messaging API. Provide from_agent_id, to, and message. For the immediate confirmation a customer just requested on a booking form, add purpo…

update_agent_config

Edit an agent's live runtime configuration — greeting/first message, inbound or SMS prompt, voice, language model, max call duration, and call-transfer settings — routed through the governed update br…

request_emergency_address

Set the emergency (E911) service address for one of the business's phone numbers with the phone carrier, so a 911 call from that line reaches the right dispatcher. Needs phone_number, the full street …

request_transcript_webhook

Create or update a webhook that receives the business's completed-call events (which can include transcripts) at a URL the business controls. Needs webhook_url and the owner's confirmed approval becau…

request_agent_update

Change a live agent's name, greeting, prompts, voice, model, call length or call transfer through the approval-gated path, for changes made on the owner's behalf that need a recorded approval. Needs a…

request_number_purchase

Buy a specific available phone number for the business from the phone carrier, with the owner's confirmed approval. The carrier bills the number to the business right away. Available numbers come from…

request_config_rollback

Put a live agent back on a saved earlier version of its configuration (listed by list_config_versions), with the owner's confirmed approval. Replaces the current live configuration; callers hear the r…

join_meeting

Send Kai into a Zoom, Google Meet, Microsoft Teams or Webex meeting by its link. Kai joins under the agent name, takes notes, and emails the owner a summary when the meeting ends. If the meeting has a…

get_meeting

List the meetings Kai was sent into (newest first), or one meeting by id with its live status, minutes used and summary, plus the plan's remaining meeting minutes this month. Mirrors GET /api/v1/meeti…

leave_meeting

Have Kai leave a video meeting it is in, or stop trying to join one. Kai drops out of the live call for everyone in it and stops taking notes; this cannot be undone, and joining again takes a new join…

get_usage

List recent API usage events (endpoint, method, status code, cost) for the caller's account. Mirrors GET /api/v1/usage.

list_plans

Read the canonical public KaiCalls plan catalog, monthly USD prices and allowances. Does not select a plan, create checkout, or change billing.

get_checkout_status

Read a Stripe-verified subscription checkout receipt for a business you own. Requires business_id and session_id from checkout. Confirmed billing does not prove agent, number, or call activation; get_…

send_message

Send one message to a business's customer on the channel you choose: a text (sms) from one of the business's agent lines, or a WhatsApp message from its connected WhatsApp number. The same consent, Do…

request_email_sender

Set up a sending address for a business's email campaigns on a domain the business controls (for example mail.example.com). Registers the domain with the email delivery provider and returns the DNS re…

check_email_sender

Re-check a sending domain's DNS records with the email delivery provider now and replace its saved verification proof; may finish provider inbound routing, inbox and webhook setup. Returns what is sti…

record_email_consent

Record that existing customers gave the business permission to email them, with evidence_ref saying where that permission came from. Pass lead_id and email for one customer, or emails for up to 200. A…

revoke_email_consent

Take back email permission for existing customers so no campaign can email them. Pass lead_id and email for one customer, or emails for up to 200, with evidence_ref saying why. Needs an admin of the b…

draft_email_campaign

Save an email campaign for the owner to review: a subject, a plain-text body, the customers to email (lead_ids, each with recorded email permission) and the verified sender. Returns the campaign id an…

approve_email_campaign

The business owner approves one exact revision of a drafted email campaign, named by campaign_id and the fingerprint returned by draft_email_campaign or get_email_campaign. A changed draft has a new f…

launch_email_campaign

Queue an owner-approved email campaign for sending to real customers, within its daily limit. Business owner only. Emails cannot be unsent once delivered; cancel_email_campaign stops what has not gone…

cancel_email_campaign

Stop an email campaign so nothing more is sent from it. Emails already delivered stay delivered. Needs campaign_id and the fingerprint of its current revision. Business owner only.

get_email_campaign

Read a business's email campaigns: its sending addresses and their setup readiness, recent campaigns with status, revision fingerprint and outcome counts, and the customers who can be emailed (recorde…

set_conversation_owner

Set who answers a customer's text conversation. owner 'ai' (the default): Kai replies. 'human': Kai stays quiet and the business owner answers. 'external': Kai stays quiet and the business's own syste…

get_business_verification

Read tenant-scoped business-verification document references, pending/approved/rejected staff-review states and secure upload requirements. No file bytes, storage paths, signed URLs or tax identifiers…

submit_text_registration

Reserved submission contract; execution is currently unavailable and returns submission_unavailable without filing. Shared durable reservation and unknown-outcome reconciliation across dashboard, chec…

get_text_registration

Read where a business stands on its own carrier registration for business texting: saved details (never the EIN; only whether one is on file), payment, filing stage, whether sales texts are allowed, a…

save_text_registration_details

Save a business's legal name, entity type, industry, website, address, authorized contact and what it will text (service only, or service and sales) for its own carrier registration. Business owner on…

start_text_registration_checkout

Create the payment link for a business's own carrier registration (a one-time filing fee plus a monthly campaign fee). Business owner only, and only once the details and the EIN are saved. Returns che…

set_branded_caller_id

File the business name that landlines show when the business's number calls out (caller ID name). Included with the business's own text registration once it is paid; charges nothing. Business owner on…

create_customer_workspace

Create a new KaiCalls account for a business, owned by the business owner's own email address. It lets a partner or helper set up KaiCalls for a business owner. The account starts without a plan or ph…

set_up_business

Optional line customization: sets the business name and greeting Kai answers with, as the owner requested. Not required to make calls, and never changes payment, usage or fraud limits. Extra business …

get_setup_checklist

Read where one business stands on setup: plan, phone number, texting registration, WhatsApp, call and lead alerts, connected mailbox for follow-up email, and email campaign sender. Each step has a sta…

connect_whatsapp

Get the one link a business owner opens to put WhatsApp on their KaiCalls number. They sign in to Facebook as an admin of the business's Meta Business account and verify the number; the business owns …

get_whatsapp_status

Check whether WhatsApp is connected on a business's KaiCalls number, read live from the carrier. Connected only once the number is verified for WhatsApp; otherwise says whether the owner's link is sti…

get_channel_status

Read customer channel setup. Phone calls report configured number resources only: state configured or needs_setup, with canSend/canReceive null because operational availability is unknown. SMS has sta…

get_trust_level

Read one business's KaiCalls trust level (Sprout, Verified, Trusted, Pro, Partner): the current level, the steps to the next one with progress, what each level unlocks, today's outbound calls and text…

recheck_trust_level

Recompute one business's KaiCalls trust level now from its live account activity (card on file, paid bills, days active, real customer calls) and save the result, the same recheck the dashboard runs, …

get_balance

Get plan terms and usage for accessible businesses. No-card trials report 25 lifetime minutes, zero price and no overage; paid plans report the mapped subscription price and billing-cycle usage. Answe…

create_checkout

Create, or reuse, a secure payment page hosted by Stripe where the business owner pays for a KaiCalls plan from list_plans with their own card. Needs business_id, plan_id and an idempotency_key: retry…

list_numbers

List phone numbers assigned to the accessible business(es), with capability and compliance flags. Assignment does not prove a successful inbound test or customer coverage. get_activation_status report…

get_phone_flow

Read how calls ring on the business's hosted phone system: which cells and desk phones ring, for how many seconds, and whether after-hours callers go straight to Kai. Reconciled from the phone system …

update_phone_flow

Replace how calls ring on the business's hosted phone system with a full phone flow: { version: 1, hours: { mode: 'always' | 'business_hours', afterHours: 'kai' }, ring: { members: [{ kind: 'cell', ph…

set_up_phone_system

Turn the business's number into a hosted phone system: Kai is installed as extension 700, the owner's mobile joins the list of phones to ring first, and calls reach Kai when nobody picks up. Idempoten…

get_phone_system_status

Read saved phone-system configuration: extension, resource IDs (never secrets), assigned line, and agreement. phone_system_configuration.configuration_allows_calls means provisioned resources plus a p…

add_team_phone

Add a teammate's (or the owner's) cell to the phones that ring before Kai answers. Idempotent — a cell already listed is reported as already included. Owners and admins are also registered on the admi…

list_conversations

List SMS conversation threads (counterparty timeline metadata) for the authenticated business, most recent first. Mirrors GET /api/v1/sms/conversations.

get_conversation

Get a single SMS conversation thread by ID. Mirrors GET /api/v1/sms/conversations?id=.

get_webhook

List the configured outbound webhook(s) for a business, including supported event types. Mirrors GET /api/v1/webhooks.

set_webhook

Create or update a business outbound webhook (URL + subscribed events). Returns a webhook secret on first creation only. Mirrors POST /api/v1/webhooks.

delete_webhook

Remove a business outbound webhook by ID. Mirrors DELETE /api/v1/webhooks.

list_evals

List canned mock-conversation eval scenarios for an agent (or all accessible agents). Mirrors GET /api/v1/evals.

run_eval

Run a saved test scenario against one of the business's agents and grade the agent's replies: pass eval_id for one scenario, or agent_id for every scenario saved for that agent (see list_evals). The t…

find_voices

Find the three voices that best match a plain description of what the owner wants (for example 'a Southern man who can also speak Spanish' or 'warm older woman, calm'), and get a page link where the o…

list_voices

List the curated, credential-free voice catalog (id, display name, accent, language, gender, sample URL) used to configure agent voices. Mirrors GET /api/v1/voices.

create_agent

Create a new KaiCalls agent — the secretary that answers this business’s calls (the live voice agent plus KaiCalls records) — with a system prompt, greeting, voice, and model. Mirrors POST /api/v1/age…

attach_number

Assign a phone number already in the KaiCalls registry pool to a business (and optionally route it directly to an agent). Does NOT purchase a new number; search_available_numbers and buy_number handle…

set_owner_phone

Saves the owner's own mobile number on the business record (the number Kai texts whenever it takes a call for the owner) so Kai can ring it first and so activation/forwarding follow-ups can reach a hu…

detach_number

Release a phone number from a business back to the unassigned registry pool. Mirrors DELETE /api/v1/phone-numbers.

search_available_numbers

Search the carrier for phone numbers available to purchase (live number inventory). Mirrors GET /api/v1/phone-numbers/search. In the acquisition flow this follows set_owner_phone, which saves a reacha…

buy_number

Request a real phone-number purchase. This is APPROVAL-GATED: the carrier bills immediately on execution, so the tool only prepares a request for authenticated owner review. Caller-supplied human_conf…

list_knowledge

List agent knowledge base entries for a business. Mirrors GET /api/v1/knowledge.

upsert_knowledge

Create a new agent knowledge base entry, or update one when `id` is provided. Mirrors POST /api/v1/knowledge. Creating requires title, content, and content_type.

list_products

List a business's agent product catalog. Mirrors GET /api/v1/products.

upsert_product

Create a new product row, or update one when `id` is provided. Mirrors POST /api/v1/products. Creating requires name and business_id. Pass `quantity` to set/update inventory.

list_config_versions

List an agent's hashed, redacted assistant config version history (rollback lineage included). Pass `version` to fetch one version's full redacted config_snapshot instead of the list. Mirrors GET /api…

get_change_history

List an agent's recent config-change audit trail (change_type, change_source, old/new value, timestamp) from admin_change_history — the same record the admin_get_change_history voice tool reads over t…

rollback_config

Request a rollback to a prior assistant_config_versions snapshot. This changes live greeting, voice, prompt and model settings. When the business owner or an admin is signed in through this connector,…

list_observability_events

List a business-scoped timeline of compact call-runtime events and redacted integration-delivery attempts. Mirrors GET /api/v1/observability-events and uses bounded keyset pagination.

list_tool_execution_logs

List per-call voice-agent tool execution traces — outcome, latency, timeout, and a redacted result preview for each routed tool call. Mirrors GET /api/v1/tool-execution-logs. Answers "did this tool ca…

list_subscription_history

List plan/price change history from subscription_change_history — the billing analogue of admin_change_history, written from the Stripe webhook and the right-size apply job. Mirrors GET /api/v1/subscr…

list_overage_charges

List the idempotent overage-minutes ledger from billing_overage_charges (legacy per-minute-overage tiers only — 2026 plans carry no overage). GET /v1/balance/get_balance only returns an aggregate; thi…

list_rightsize_recommendations

List per-period auto-right-size decisions from plan_rightsize_recommendations, including the dry_run -> notified -> (kept | applied | superseded) lifecycle. Answers "is this business about to get righ…

report_issue

Report a problem with your KaiCalls agent, phone number, billing, or account. Saves the report to your change history and notifies KaiCalls support so a person can follow up on anything broken or not …

Resources · 1

voice-picker

Play three matching voices and switch the business line to one.

ui://kaicalls/voice-picker.html

How to use

Claude Desktop or claude.ai: add a custom connector (Customize → Connectors; on Team and Enterprise plans an owner adds it under Organization settings → Connectors) with this server URL: https://www.kaicalls.com/api/mcp

Cursor or Cline: add to your MCP config:

{
  "mcpServers": {
    "kaicalls": {
      "url": "https://www.kaicalls.com/api/mcp",
      "transport": "streamable-http"
    }
  }
}