servers / kaicalls
KaiCalls MCP server
communitystreamable_httpremotedestructive capablehealthy
AI phone secretary: place calls, read transcripts, list calls, agents, and stats.
01Tools · 51
How to read this: tool names here are observed from a live tools/list handshake. The Risk label is a heuristic inferred from the tool name (write/destructive verbs), not from executing the tool — a conservative guess, not a verified capability. We never escalate risk from a description. Found one that's wrong? Tell us — we fix on report.
| Tool | Risk | Side effects | Approval |
|---|---|---|---|
| make_call Initiate a real outbound phone call via a KaiCalls AI agent. Pass an idempotency_key to make the request safely retryable: a replay with the same key returns the original call instead of dialing again, and the same key with different arguments is rejected. | read | false | unknown |
| configure_textable_links Create or repair the business_links entries used by the send_link/send_sms tools. Use this when callers need booking, directions, cancellation, sister-location, or service-specific links texted without exposing raw URLs in the voice prompt. | unknown | unknown | unknown |
| create_agent Create a new KaiCalls voice agent (Vapi assistant + KaiCalls records) with a system prompt, greeting, voice, and model. Mirrors POST /api/v1/agents. Every subsequent mutation to this agent is versioned (assistant_config_versions) and reversible via rollback_config — inspect history with get_change_history / list_config_versions. Compliance: KaiCalls automatically applies state-aware AI-disclosure and consent handling to every agent it provisions, and flags high-risk business categories for extra review. | write | true | unknown |
| rollback_config Roll an agent's deployed voice configuration back to a prior assistant_config_versions snapshot — restoring greeting, voice, prompt, and scalar model params (never secrets/credentials) onto the live agent. This OVERWRITES the live deployed config, so it is APPROVAL-GATED: without human-grade authority (an authority envelope with mode human_confirmed, or a dashboard approval) the tool executes nothing and returns a pending_approval record the business owner approves or denies from the dashboard — relay the returned confirmation text to them. Agent-initiated rollbacks never run unattended. Wraps the same version-restore logic as POST /api/v1/agents/rollback and the admin_rollback_change voice tool, via the agent.config.rollback update intent. Discover a target with list_config_versions or get_change_history. Every executed rollback records a new config version; to repeat a rollback that already executed, pass a fresh idempotency_key. | read | false | unknown |
| check_call_status Check the status of a call by its ID | read | false | unknown |
| get_transcript Get the transcript and summary of a completed call | read | false | unknown |
| list_agents List KaiCalls agents available to the authenticated account | read | false | unknown |
| get_business_info Get business information, agent count, and recent call stats | read | false | unknown |
| 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. | read | false | unknown |
| get_lead Get full details for a single lead by ID, including the latest AI lead score and explanation. | read | false | unknown |
| get_operational_settings Audit the business-level operational setup Claude needs before changing a client account: staff alert recipients, SMS/email alert flags, escalation rules, textable send-link entries, and assigned agent voice/model/greeting metadata. | read | false | unknown |
| delete_webhook Remove a business outbound webhook by ID. Mirrors DELETE /api/v1/webhooks. | destructive | true | true |
| detach_number Release a phone number from a business back to the unassigned registry pool. Mirrors DELETE /api/v1/phone-numbers. | unknown | unknown | unknown |
| 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. | read | false | unknown |
| get_conversation Get a single SMS conversation thread by ID. Mirrors GET /api/v1/sms/conversations?id=. | read | false | unknown |
| 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. | write | true | unknown |
| request_kaicalls_update Ask the KaiCalls on-behalf update broker to perform a scoped, governed mutation. Supported intents: phone.emergency_address.set, transcripts.sink.configure, agent.patch, numbers.purchase, agent.config.rollback. Prefer update_agent_config for prompt/voice/model edits, configure_agent_business_rules for a single named operational prompt section, upsert_lead for lead create/update, send_sms for outbound texts, configure_staff_alerts for alert recipients/rules, and configure_textable_links for send-link setup. Mutating requests need an idempotency_key; high-risk changes need human authority. The broker returns needs_user_input, needs_approval, pending_approval, executed, denied, or unsupported — never an unaudited side effect. | write | true | unknown |
| 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 — use search_available_numbers + buy_number for that. Mirrors POST /api/v1/phone-numbers. | unknown | unknown | unknown |
| 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/subscription-history. | read | false | unknown |
| list_products List a business's agent product catalog. Mirrors GET /api/v1/products. | read | false | unknown |
| list_numbers List phone numbers owned by the accessible business(es), with capability and compliance flags. Mirrors GET /api/v1/numbers. | read | false | unknown |
| list_campaigns List outbound call campaigns for the authenticated business. | read | false | unknown |
| list_knowledge List agent knowledge base entries for a business. Mirrors GET /api/v1/knowledge. | read | false | unknown |
| run_eval Run a single eval scenario (eval_id) or every scenario for an agent (agent_id) against its live Vapi assistant and grade the result. Bills Vapi compute. Mirrors POST /api/v1/evals/run. | write | true | unknown |
| get_webhook List the configured outbound webhook(s) for a business, including supported event types. Mirrors GET /api/v1/webhooks. | read | false | unknown |
| 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-use cadence_config example. Call this before create_campaign so an external agent can trigger a multi-step sequence with launch=true instead of guessing the cadence_config shape blind. Static catalog — no per-business state. | read | false | unknown |
| 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. | unknown | unknown | unknown |
| 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. Requires admin role on the business. | write | true | unknown |
| send_sms Send an outbound text message from one of your agents' phone lines to a recipient, routed through the governed messaging API. Compliance gates (opt-out / Do-Not-Call / quiet-hours), rate limits, and message logging all apply. Provide from_agent_id (the sending agent), to (recipient phone in E.164), and message. Optionally link lead_id to attribute the text and respect that lead's automation-pause state. | write | true | unknown |
| 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 broker so every change keeps the consent + audit trail (a versioned config snapshot and change history). Every write here is reversible: inspect what changed with get_change_history or list_config_versions, then undo it with rollback_config. Mutating changes need an idempotency_key; high-impact live changes need human authority (an authority envelope) or queue_for_approval for dashboard sign-off. For just a single named operational-rules section, prefer configure_agent_business_rules. | write | true | unknown |
| search_available_numbers Search the carrier for phone numbers available to purchase (real-time Twilio inventory lookup). Mirrors GET /api/v1/phone-numbers/search. | read | false | unknown |
| 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/v1/agents/versions. | read | false | unknown |
| 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 right-sized". Mirrors GET /api/v1/rightsize-recommendations. | read | false | unknown |
| get_usage List recent API usage events (endpoint, method, status code, cost) for the caller's account. Mirrors GET /api/v1/usage. | read | false | unknown |
| list_conversations List SMS conversation threads (counterparty timeline metadata) for the authenticated business, most recent first. Mirrors GET /api/v1/sms/conversations. | read | false | unknown |
| list_tool_execution_logs List per-call Vapi tool execution traces from vapi_tool_execution_logs — outcome, latency, timeout, and a redacted result preview for each routed tool call. Mirrors GET /api/v1/tool-execution-logs. Answers "did this tool call actually work". | read | false | unknown |
| list_sms_messages List recent SMS messages for the authenticated business. Filter by conversation or direction (inbound/outbound). | read | false | unknown |
| 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. | unknown | unknown | unknown |
| 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. | read | false | unknown |
| configure_staff_alerts Configure business-owned staff alert recipients and post-call escalation rules. Use this for emergency/urgent texts, callback alerts, billing/provider follow-up alerts, and ensuring alerts go only to the correct business staff. | unknown | unknown | unknown |
| 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. Use this for cross-business handoffs, callback language, alert promises, and client-specific operating rules without round-tripping the whole prompt manually. | unknown | unknown | unknown |
| 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 the phone. Every mutation KaiCalls makes to an agent (via update_agent_config, configure_agent_business_rules, the admin call-in secretary, or the dashboard) is logged here and reversible with rollback_config. | read | false | unknown |
| list_leads List leads for the authenticated business, with optional status/source/agent filters. Includes the latest AI lead score when available. | read | false | unknown |
| list_recent_calls List recent calls for the authenticated business | read | false | unknown |
| list_evals List canned mock-conversation eval scenarios for an agent (or all accessible agents). Mirrors GET /api/v1/evals. | read | false | unknown |
| get_balance Get per-business minutes-used and subscription status across every business the caller can access. Mirrors GET /api/v1/balance. | read | false | unknown |
| 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 at least one of name/phone/email plus optional status/source/notes/agent_id/etc. To update, pass `updates`: an array of { id, ...fields } for one or many existing leads (status, name, phone, email, notes, address, city, state, zip). Updates are access-checked per row and report partial success. | read | false | unknown |
| 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; this returns the underlying per-period ledger rows. Mirrors GET /api/v1/overage-charges. | read | false | unknown |
| 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. | read | false | unknown |
| list_voicemails List recent voicemails for the authenticated business, including transcripts and recording URLs. | read | false | unknown |
| buy_number Purchase a real phone number from the carrier and register it to a business. This spends real money — the number is billed by the carrier immediately, so the purchase is APPROVAL-GATED: without human-grade authority (an authority envelope with mode human_confirmed, or a dashboard approval) the tool executes nothing and returns a pending_approval record the business owner approves or denies from the dashboard — relay the returned confirmation text to them. Agent-initiated purchases never run unattended. Does not auto-attach an agent; call attach_number afterward to route it. Mirrors POST /api/v1/phone-numbers/purchase via the numbers.purchase update intent. Compliance: KaiCalls automatically applies state-aware AI-disclosure and consent handling to numbers it provisions, and flags high-risk business categories for extra review. | read | false | unknown |
02Install & source
https://www.kaicalls.com/api/mcp
remote_url- repohttps://github.com/cgallic/kaicalls-mcp
- homepagehttps://www.kaicalls.com/api/mcp
- licenseNOASSERTION
- adoption0 stars · 0 forks
03Access granted
Maps & location · writeProcess payments · writeUpdate a CRM · writeManage e-commerce · writeWorkflow automation · destructive
The access this server can exercise, inferred from its verified tools — not a declared OAuth scope.
05Provenance & freshness
sourcesOfficial MCP Registry [p1]
last_checked2026-08-21 16:30Z
next_check2026-08-21 19:30Z
cadenceevery 3h
verifiedhandshake:skipped metadata:passed handshake:skipped metadata:passed handshake:skipped metadata:passed handshake:skipped metadata:passed handshake:skipped metadata:passed
index_statusindex — 9 unique facts >= 5
06Badge
Add the “as seen on MCPExplorer” badge to your README.
[](https://mcpexplorer.com/servers/kaicalls)
Next step
This is one server. A loadout combines the right servers, governance, and proven plays for a whole job — assembled deliberately, not tool-dumped.
Explore loadouts →