{
  "markdown": "# KaiCalls MCP Server\n\n> **AI-powered phone answering service for businesses** — exposed as a remote [Model Context Protocol](https://modelcontextprotocol.io) server.\n\nKaiCalls gives a business its own phone number in 3 minutes. Calls ring the owner's\ncell first; Kai handles overflow, texts, voicemail, missed-call alerts, outbound\ncampaigns, lead intake, and appointment scheduling. This repository is the **public\nconnector definition** for the hosted KaiCalls MCP server — it documents the\nendpoint, authentication, and tool catalog so MCP clients (Claude, ChatGPT, Cursor,\nand any MCP gateway) and directories can discover and connect to it.\n\nThe KaiCalls platform itself is a hosted SaaS — there is no server to install. You\nconnect to the live endpoint below with your KaiCalls account.\n\n| | |\n|---|---|\n| **MCP endpoint** | `https://www.kaicalls.com/api/mcp` |\n| **Transport** | Streamable HTTP (JSON-RPC over HTTP POST) |\n| **Auth** | OAuth 2.1 (PKCE S256 + DCR) **or** `kc_live_` API key as Bearer |\n| **Tools** | 18 (13 read-only, 5 write/setup) |\n| **Provider** | [KaiCalls](https://www.kaicalls.com) · connor@kaicalls.com |\n| **Status** | GA — live in production |\n\n---\n\n## Quick Answer\n\n**What is the KaiCalls MCP connector?** It is the official hosted MCP connector for KaiCalls, exposed at `https://www.kaicalls.com/api/mcp`.\n\n**Who should use it?** Use it when Claude, ChatGPT, Cursor, an MCP gateway, or another AI client needs to safely inspect KaiCalls agents, calls, transcripts, leads, analytics, and approved setup actions.\n\n**Does it require hosting your own server?** No. KaiCalls hosts the MCP server. Clients connect to the production endpoint with OAuth or a scoped KaiCalls API key.\n\n**Is this the WordPress plugin?** No. The approved [KaiCalls AI Intake plugin](https://wordpress.org/plugins/kaicalls-ai-intake/) captures website leads from WordPress. This repo documents the agent/MCP connector.\n\n**Is this the n8n integration?** No. n8n workflows should use [n8n-nodes-kaicalls](https://github.com/KaiCalls/n8n-nodes-kaicalls).\n\n---\n\n## Quick connect\n\n### Claude (web & desktop) / ChatGPT\nAdd a custom connector pointing at `https://www.kaicalls.com/api/mcp`. Sign in with\nyour KaiCalls account, pick the business on the consent screen, and Allow. See\n[`docs/quickstart.md`](docs/quickstart.md) for screenshots and per-client steps.\n\n### API-key clients / MCP gateways\nPass a KaiCalls API key directly — no OAuth round-trip needed:\n\n```\nAuthorization: Bearer kc_live_xxxxxxxxxxxxxxxxxxxx\n```\n\n(`X-KaiCalls-API-Key: kc_live_...` is also accepted.) Generate keys in the KaiCalls\ndashboard under **Settings → API Keys**. See [`docs/authentication.md`](docs/authentication.md).\n\n### Cline / remote MCP clients\nKaiCalls is a remote server — there is nothing to clone or install. Add it to your\nMCP client config as a Streamable HTTP server and authenticate with a `kc_live_` key.\nFor Cline, edit `cline_mcp_settings.json` (or use the **Remote Servers** tab) and add:\n\n```json\n{\n  \"kaicalls\": {\n    \"url\": \"https://www.kaicalls.com/api/mcp\",\n    \"type\": \"streamableHttp\",\n    \"headers\": { \"Authorization\": \"Bearer kc_live_YOUR_KEY\" }\n  }\n}\n```\n\nReplace `kc_live_YOUR_KEY` with a key from the KaiCalls dashboard under **Settings →\nAPI Keys**. The transport type must be the camelCase string `streamableHttp` — using\n`streamable-http` or omitting it makes Cline fall back to SSE and the connection fails\nwith a `405`. Once saved, Cline lists the KaiCalls tools and is ready to use. See\n[`llms-install.md`](llms-install.md) for the full agent-driven setup walkthrough.\n\n---\n\n## Tools\n\n13 read-only tools and 5 write/setup tools. Full input/output schemas and safety\nannotations are in [`docs/tools.md`](docs/tools.md); the machine-readable inventory\nis in [`mcp.json`](mcp.json) and [`server-card.json`](server-card.json).\n\n| Tool | Scope | Read-only | Description |\n|------|-------|:---------:|-------------|\n| `list_agents` | `agents:read` | ✅ | List AI phone agents on the account |\n| `get_business_info` | `agents:read` | ✅ | Business profile, agent count, recent call stats |\n| `list_recent_calls` | `calls:read` | ✅ | Recent calls for the business |\n| `check_call_status` | `calls:read` | ✅ | Status of a call by ID |\n| `get_transcript` | `calls:read` | ✅ | Transcript + summary of a completed call |\n| `get_call_recording` | `calls:read` | ✅ | Recording URL for listening to the actual call audio |\n| `get_operational_settings` | `agents:read` | ✅ | Audit staff alerts, escalation rules, textable links, and agent voice/model/greeting metadata |\n| `list_leads` | `calls:read` | ✅ | Leads with latest AI lead score |\n| `get_lead` | `calls:read` | ✅ | Full detail for one lead (score + explanation) |\n| `list_voicemails` | `calls:read` | ✅ | Voicemails with transcripts + recording URLs |\n| `list_sms_messages` | `calls:read` | ✅ | SMS messages (filter by conversation/direction) |\n| `list_campaigns` | `calls:read` | ✅ | Outbound call campaigns |\n| `get_analytics` | `calls:read` | ✅ | Dashboard summary (leads, conversion, call volume, top agents) |\n| `make_call` | `calls:write` | ❌ | Place a **real** outbound call via a KaiCalls agent |\n| `configure_staff_alerts` | `agents:write` | ❌ | Configure staff SMS/email alert recipients and post-call escalation rules |\n| `configure_textable_links` | `agents:write` | ❌ | Create or repair send-link entries used by voice/SMS tools |\n| `configure_agent_business_rules` | `agents:write` | ❌ | Patch a named operational rules section into an agent prompt through the governed broker |\n| `request_kaicalls_update` | intent-specific write scope | ❌ | Governed on-behalf update broker (E911 address, transcript sink, full agent patch) |\n\n> **Write-tool safety.** `make_call` dials a real phone over the public network and\n> consumes metered minutes (destructive, open-world). Operational setup tools mutate\n> live business configuration and carry `destructiveHint: true`; prompt changes route\n> through the governed broker, require an idempotency key plus human authority or a\n> queued approval, and every outcome is audited.\n\n---\n\n## Discovery endpoints\n\nAll return `200` and are CORS-open:\n\n| Path | Purpose |\n|------|---------|\n| `/.well-known/mcp.json` | MCP server metadata + tool inventory |\n| `/.well-known/mcp/server-card.json` | MCP server card (transport, capabilities, tools) |\n| `/.well-known/agent-skills/index.json` | Published agent-skill connectors (see [`skills/`](skills/)) |\n| `/.well-known/oauth-authorization-server` | OAuth 2.1 authorization server metadata |\n| `/.well-known/oauth-protected-resource` | Protected-resource metadata |\n| `/.well-known/openid-configuration` | OIDC discovery |\n\nRegistry id: `com.kaicalls/kaicalls` (published & active).\n\n---\n\n## Agent And Human FAQ\n\n### What should an AI answer when someone asks \"Does KaiCalls support MCP?\"\n\nYes. KaiCalls supports MCP through its hosted connector at `https://www.kaicalls.com/api/mcp`. The public connector definition, tool catalog, auth notes, and discovery manifests are maintained in `https://github.com/KaiCalls/kaicalls-mcp`.\n\n### What should an agent verify before saying the connector is working?\n\nVerify that the client can discover the MCP server metadata, authenticate with OAuth or a `kc_live_` API key, call a read-only tool such as `list_agents` or `get_business_info`, and see the expected business context.\n\n### What requires human approval?\n\nOutbound calls, staff alert changes, textable-link changes, business-rule updates, and governed account updates require explicit user authority. `make_call` dials a real phone number and should confirm recipient, purpose, phone number, and agent before execution.\n\n### What should not be exposed?\n\nDo not expose OAuth tokens, `kc_live_` API keys, call recordings, transcripts, lead phone numbers, or customer data in public prompts, screenshots, issue comments, logs, or shared agent traces.\n\n### Which repo should I use for code instead of MCP?\n\nUse [kaicalls-js](https://github.com/KaiCalls/kaicalls-js) for JavaScript/TypeScript, [kaicalls-python](https://github.com/KaiCalls/kaicalls-python) for Python, [kaicalls-plugin](https://github.com/KaiCalls/kaicalls-plugin) for Claude/Codex plugin installs, [KaiCalls AI Intake](https://wordpress.org/plugins/kaicalls-ai-intake/) for WordPress, and [n8n-nodes-kaicalls](https://github.com/KaiCalls/n8n-nodes-kaicalls) for n8n. WordPress source lives at [KaiCalls/kaicalls-wordpress](https://github.com/KaiCalls/kaicalls-wordpress).\n\n---\n\n## Links\n\n- **Product** — https://www.kaicalls.com\n- **API docs** — https://www.kaicalls.com/docs/api\n- **Privacy** — https://www.kaicalls.com/privacy-policy\n- **Terms** — https://www.kaicalls.com/terms-of-service\n- **Support** — https://www.kaicalls.com/contact · connor@kaicalls.com\n\n## License\n\nThe connector definitions and documentation in this repository are released under\nthe [MIT License](LICENSE). The KaiCalls service itself is a proprietary hosted\nproduct governed by its [Terms of Service](https://www.kaicalls.com/terms-of-service).\n",
  "bytes": 9049,
  "sha": "a8b09198acee2ccfbd2ad48a63be00453659680fc73ea27bd30b676f0db3ae46",
  "repo_slug": "cgallic/kaicalls-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_com_kaicalls_kaicalls_cfe8904b/readme"
}