KaiCalls
Server Details
A phone number for your business or your AI agent. Kai answers it and calls businesses for you.
- 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
- KaiCalls/kaicalls-mcp
- GitHub Stars
- 1
- Server Listing
- KaiCalls MCP Server
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 27 tools
Most tools target a distinct resource (agent, lead, call, voicemail, meeting, voice) and action, and get_trust_level vs recheck_trust_level are cleanly separated as read vs recompute. The main friction is the five-tool LSA cluster (setup, report, account report, leads, conversations) plus status-style tools (check_call_status, get_activation_status, get_business_info) whose boundaries require careful reading, though the descriptions do differentiate them.
Every tool follows a consistent snake_case verb_noun pattern: check_, get_, list_, recheck_ against a clear noun. Even the LSA variants (get_lsa_report / get_lsa_account_report) follow the same convention, so intent is predictable from the name.
27 tools is on the heavy side for what is essentially a read API for one business domain, and the LSA family alone accounts for five entry points. The breadth across calls, leads, agents, campaigns, meetings, trust and voices justifies most of them, but it sits in the borderline-heavy band.
The surface is almost entirely read-only: the only non-read is recheck_trust_level, while update_agent_config, configure_agent_business_rules and rollback_config are referenced by descriptions but not present. get_business_info says next_step names the tool that sets up a phone line, and create_campaign / launch are absent despite workflow templates pointing at their shape — several dead-end references that will strand an agent mid-workflow.
Available Tools
27 toolscheck_call_statusCheck Call StatusARead-onlyIdempotentInspect
Check the status of a call by its ID: any question Kai is waiting on (pending_question), a voicemail message left, or the business calling back. Also takes the intent_id of a call scheduled for calling hours and says when it goes out
Inputs: call_id (required). Returns: call, error, success, pending_question
get_activation_statusGet Activation StatusARead-onlyIdempotentInspect
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. Missing entitlement, incomplete setup or stale sessions do not authorize a call. It cannot assert or advance proof. A completed private test is separate from customer-route coverage; forwarding is optional and does not define whether the assigned phone works.
Inputs: business_id, oauth_transaction_id, activation_session_id, origin_conversation_id, +1 more. Returns: error, proof, state, routes, +9 more
get_analyticsGet AnalyticsARead-onlyIdempotentInspect
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.
Inputs: days. Returns: calls, error, leads, agents, +4 more
get_business_infoGet Business InfoARead-onlyIdempotentInspect
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 business has no working phone line yet, next_step names the tool that sets one up.
Inputs: business_id. Returns: error, success, business, next_step, +2 more
get_call_disclosuresGet Call DisclosuresARead-onlyIdempotentInspect
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 recording), or never. Shows the defaults when the business has not set its own.
Inputs: business_id. Returns: error, success, settings, is_default, +1 more
get_call_recordingGet Call RecordingARead-onlyIdempotentInspect
Get the real call recording URL for a call so reviewers can listen to the voice/audio instead of relying only on the transcript.
Inputs: call_id (required). Returns: call, error, success, recording_available
get_change_historyGet Agent Change HistoryARead-onlyIdempotentInspect
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.
Inputs: agent_id (required), limit. Returns: error, changes, success, agent_id
get_leadGet LeadARead-onlyIdempotentInspect
Get full details for a single lead by ID, including the latest AI lead score and explanation.
Inputs: lead_id (required). Returns: lead, error, success
get_lsa_account_reportget lsa account reportARead-onlyIdempotentInspect
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 calendar dates inclusive at both ends. Source may lag by 30 minutes. Connected phone calls means duration over 30 seconds; responsiveness is the previous 90 days. This is not signed-case revenue or lead-rating reporting.
Inputs: end_date (required), start_date (required), business_id (required), connection_id (required). Returns: error, success
get_lsa_conversationsget lsa conversationsARead-onlyIdempotentInspect
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.
Inputs: lead_id (required), business_id (required). Returns: error, success
get_lsa_reportget lsa reportARead-onlyIdempotentInspect
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 are counted separately because they cannot be rated here. Financial amounts, signed cases and response-time metrics are unavailable in this source and cannot be derived from counts.
Inputs: end (required), start (required), business_id (required). Returns: error, success
get_lsa_setupget lsa setupBRead-onlyIdempotentInspect
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.
Inputs: business_id (required). Returns: error, success
get_meetingGet MeetingsARead-onlyIdempotentInspect
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/meetings.
Inputs: id, business_id. Returns: error, success, meetings, allowance
get_operational_settingsGet Operational SettingsBRead-onlyIdempotentInspect
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 metadata.
Inputs: business_id. Returns: error, agents, success, business, +4 more
get_scam_screeningGet Scam Call ScreeningARead-onlyIdempotentInspect
Read how the business screens scam calls: the mode (off; label, the default, which answers every call and marks likely scams in the call log; or screen, which sends callers with a strong scam sign to a take-a-message screen), the numbers that are never screened, and the most recent calls caught as scams.
Inputs: business_id. Returns: error, success, settings, is_default, +2 more
get_transcriptGet TranscriptBRead-onlyIdempotentInspect
Get the transcript and summary of a completed call
Inputs: call_id (required). Returns: call, error, success, transcript, +3 more
get_trust_levelGet Trust LevelARead-onlyIdempotentInspect
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 texts against current effective account limits, and any hold. Badge progress does not itself establish higher call or text caps. focus 'ladder' explains every level; focus 'level' with level explains one. Read-only: returns saved standing or computes missing/stale standing without saving it or sending notifications. recheck_trust_level recomputes and saves current standing. Levels are earned, never set: no tool can raise one.
Inputs: focus, level, business_id. Returns: held, line, next, error, +13 more
list_agentsList AgentsARead-onlyIdempotentInspect
List the KaiCalls agents on the authenticated account. Shows whether this business already has a secretary answering its calls.
Inputs: limit, offset, business_id. Returns: count, error, limit, agents, +5 more
list_campaignsList CampaignsBRead-onlyIdempotentInspect
List outbound call campaigns for the authenticated business.
Inputs: limit, offset, status. Returns: count, error, limit, offset, +5 more
list_config_versionsList Agent Config VersionsARead-onlyIdempotentInspect
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.
Inputs: agent_id (required), limit, version. Returns: error, success, version, agent_id, +1 more
list_leadsList LeadsARead-onlyIdempotentInspect
List leads for the authenticated business, with optional status/source/agent filters. Includes the latest AI lead score when available.
Inputs: limit, offset, source, status, +1 more. Returns: count, error, leads, limit, +5 more
list_lsa_leadslist lsa leadsBRead-onlyIdempotentInspect
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.
Inputs: business_id (required), limit, offset. Returns: error, success
list_recent_callsList Recent CallsARead-onlyIdempotentInspect
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", "quote"), and by date window; filters combine. Use get_transcript for the full call.
Inputs: after, limit, phone, query, +4 more. Returns: calls, count, error, limit, +5 more
list_voicemailsList VoicemailsARead-onlyIdempotentInspect
List recent voicemails for the authenticated business, including transcripts and recording URLs.
Inputs: limit, offset. Returns: count, error, limit, offset, +4 more
list_voicesList Voice CatalogARead-onlyIdempotentInspect
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.
Inputs: gender, language, provider. Returns: error, voices, success
list_workflow_templatesList Workflow TemplatesARead-onlyIdempotentInspect
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. The cadence_config examples match the shape create_campaign accepts, including multi-step sequences with launch=true. Static catalog — no per-business state.
Inputs: no named parameters. Returns: error, usage, success, defaults, +2 more
recheck_trust_levelRecheck Trust LevelADestructiveInspect
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, for example right after the owner adds a card. Returns the same view as get_trust_level plus whether the level moved up or down. Requires current business membership. Replaces the saved derived state, may record level-change history and may email the current owner when standing changes. It can only reflect what the account has earned; it never sets or raises a level by request.
Inputs: focus, level, business_id. Returns: held, line, next, error, +13 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
AI phone calls from your verified number, with answers, transcripts and recordings.
Give any AI agent a phone number. BotPhone answers your business line and reports every call back.
A phone number for your AI: people and their AIs leave messages, your AI reads them to you.
A real phone number and email for your AI Chief of Staff. Calls, bookings by phone, summaries.
Related MCP Servers
AlicenseNot gradedqualityCmaintenanceEnables AI assistants to call, text, and email businesses on your behalf, read back transcripts, recordings, and replies.93 npmMIT- AlicenseAqualityBmaintenanceVirtual phone number platform for AI agents — rent numbers across 200+ countries, receive SMS, and manage the full activation lifecycle.667 npm4MIT
- AlicenseBqualityDmaintenanceGive AI agents a real phone number and voice. Make calls, send email, manage contacts — 26 tools, 12 resources.431MIT
- AlicenseAqualityDmaintenanceGives AI agents real phone numbers to receive SMS and extract verification codes through tool calls.640 npmMIT
Glama MCP Gateway
Add one secure layer between your agents and this server.