Callmcp

ai.callmcp由 callmcp.ai 發布v0.1.2更新於 Nov 10, 2026

One MCP tool contract for telephony — any call provider, hosted, local, or BYOK.

已驗證STDIO僅桌面開發者工具溝通與協作

概覽

AI 產生的概覽

為助理提供單一且與供應商無關的電話工具契約:通話、簡訊、錄音、逐字稿與電話號碼開通。

可以做什麼
CallMCP 以一套 14 個工具、相同 schema 的契約涵蓋外撥與來電的電信作業:撥打與結束通話、傳送簡訊、取得錄音與逐字稿,以及搜尋、購買、設定與列出電話號碼。同一契約可由不同後端提供(託管、本機或自帶金鑰),因此更換供應商只是設定變更,不必改寫程式。工具依驅動能力開放:不是存在且可用,就是不出現在工具清單中。聯絡外部號碼的外撥動作需要核准識別碼或符合允許清單。
適用情境
適合希望助理透過穩定工具介面撥打電話、傳送簡訊或管理電話號碼的情境,也適合需要在不改動代理程式碼的前提下更換通話後端的情況。需要助理處理通話錄音、逐字稿或號碼開通的工作流程同樣適用。
執行需求
以本機 Node.js 程序執行,透過 npx 從 npm 套件 @callmcp/server 啟動。設定來自 callmcp.config.json 檔案,其路徑由 CALLMCP_CONFIG 指定;若省略則完全以環境變數設定。CALLMCP_DEFAULT_DRIVER 指定工具呼叫未指明驅動時使用的驅動。必須設定驅動,否則伺服器會拒絕啟動,模擬驅動僅在明確的沙箱設定下可用。依所選驅動,需要對應的供應商帳號或金鑰。
安裝前請注意
號碼開通類工具(搜尋、購買、設定、列出)沒有核准關卡,可自主花費真實金錢,包括在驅動要求預付款時透過 x402 機器付款結算費用。外撥通話與簡訊需要核准識別碼或允許清單相符,備援核准路徑使用一次性帶外連結。通話錄音與逐字稿透過此伺服器取得,需考量同意與資料處理問題。供應商憑證透過設定或環境變數提供。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Callmcp,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

One MCP server. Any call provider. Fully local, fully hosted, or bring your own frontier model.

[License: MIT] [GitHub stars]

CallMCP is a single Model Context Protocol server that defines one tool contract — 14 tools, identical schemas, identical error shapes — for outbound/inbound telephony: calls, SMS, recordings, transcripts, and phone-number lifecycle. Point it at a hosted backend, a fully local backend, or a bring-your-own-key composed backend, and your agent code doesn't change. What changes is which tools are present (via capability-gated dynamic discovery), never the shape of a tool that's there.

The normative reference is SPEC.md. This README is the pitch; the spec is the contract.

npx -y @callmcp/server

Before connecting a real provider, run npx -y @callmcp/server doctor. For a safe local walkthrough, run npx -y @callmcp/server --sandbox. The server fails closed when no driver is configured; the mock driver is only available through explicit sandbox configuration.

See examples/ for ready-to-paste Claude Desktop / Claude Code configs for each of the three legs below.


Three structural claims

This isn't "a Twilio wrapper with a marketing page." Three things are actually built into the contract, not bolted on:

1. Provider-neutral, multi-backend contract

Every driver — hosted, local, or BYOK — implements the same 14 tools defined in SPEC.md. Driver-specific behavior lives exclusively inside a namespaced options.<driver_id> passthrough object. There is no make_call_twilio or make_call_kaicalls. A tool either exists for your configured driver (and works, fully, per spec) or it's absent from tools/list — never present-but-broken. Swapping your call backend is a config change, not a rewrite.

2. x402-funded autonomous provisioning to production

search_numbers, buy_number, configure_number, and list_numbers are never human-approval-gated — they don't contact a third party, they contact your own provider account. That includes settling cost via x402 machine payments when a driver requires prepayment (INSUFFICIENT_FUNDS embeds a full x402 challenge an agent can settle and retry). An agent can search for a number, pay for it, configure it, and go live — autonomously, in production, with real money — without a human clicking anything. This is a deliberate contrast with vendor MCPs whose autonomous/self-serve paths are trial- or sandbox-scoped only.

3. Human-in-the-loop outbound approval as designed consent architecture

make_call and send_sms — anything that contacts a phone number that isn't the calling agent's own infrastructure — structurally require a valid approval_id or a standing allowlist match before they act. This isn't a policy suggestion layered on top; it's enforced in the server core, so no driver implementation can bypass it. Primary path is MCP elicitation; the fallback for non-elicitation clients is a single-use out-of-band approval URL — the gate is designed to never silently block forever and never silently open. Read as a TCPA-consent posture: the contract makes "who approved contacting this number, and when" a first-class, auditable object (request_call_approval / list_approvals), not an assumption baked into application code you have to get right yourself.


CallMCP vs. single-vendor MCPs vs. DIY

CapabilityCallMCPVapi MCPTelnyx MCPAgentPhone MCPDIY (Twilio + your own glue)
Tool contractOne schema, 14 tools, portable across backendsSingle-vendor, Vapi onlySingle-vendor, Telnyx onlySingle-vendor, AgentPhone onlyNo contract — you write and maintain it
Swap call backend without rewriting agent codeYes — driver swap onlyNoNoNoNo
Self-hostable / fully local optionYes (Dograh driver)(unverified, recheck before publishing)(unverified, recheck before publishing)(unverified, recheck before publishing)Yes, but you own the entire stack
Bring your own frontier model as the call's "brain"Yes (BYOK driver: any transport + any LLM)(unverified, recheck before publishing)(unverified, recheck before publishing)(unverified, recheck before publishing)Yes, fully manual integration
Autonomous, funded, production-scoped number provisioning (x402)Yes — search_numbers/buy_number/configure_number ungated, x402-payable(unverified, recheck before publishing)Public self-serve docs read as trial-scoped autonomy, not funded production autonomy (unverified, recheck before publishing)(unverified, recheck before publishing)No — manual console purchase, manual compliance
Outbound approval / consent gate structural in the schemaYes — make_call/send_sms require approval_id or allowlist match, enforced server-side(unverified, recheck before publishing)(unverified, recheck before publishing)(unverified, recheck before publishing)No — you build and maintain your own gate
Standalone SMS (not agent-mediated only)Capability-gated per driver, honestly reported — never claimed where it's actually agent-mediated(unverified, recheck before publishing)Yes, native(unverified, recheck before publishing)Yes, native Twilio API
Call recordingCapability-gated per driver, honestly reported(unverified, recheck before publishing)(unverified, recheck before publishing)(unverified, recheck before publishing)Yes, native Twilio API
Real-time transcript streamingCapability-gated per driver, subscribable resource when supported(unverified, recheck before publishing)(unverified, recheck before publishing)(unverified, recheck before publishing)DIY — you build the capture/assembly layer
Source availabilityMIT-licensed server + Apache-2.0 spec, public monorepo(unverified, recheck before publishing)(unverified, recheck before publishing)(unverified, recheck before publishing)N/A — it's your own code
Markup over underlying carrier costZero in the OSS server — it routes at cost; KaiCalls hosted tier is an optional convenience layer, not a requirement(unverified, recheck before publishing)(unverified, recheck before publishing)(unverified, recheck before publishing)Zero markup, 100% of integration cost is yours

Every "(unverified, recheck before publishing)" cell is a placeholder, not a claim — we do not put a number or a fact about a competitor's product in this table without a citation behind it. If you're reading this before that recheck has happened, treat those cells as unknown, not as "no."


Who builds this, and what's actually free

CallMCP is built and maintained by CallMCP / KaiCalls. Full transparency, because hiding this costs more credibility than stating it:

  • This OSS server is not a loss-leader funnel with the real functionality locked behind a paywall. It routes to any configured driver — hosted, local, or BYOK — with no markup and no artificial capability gating. A self-hosted Dograh driver or a BYOK Twilio+LLM driver gets the exact same 14-tool contract as the KaiCalls driver.
  • KaiCalls is the hosted default — the path of least resistance if you want a call backend running in minutes with nothing to self-host. It is not the only supported path, and the spec and conformance suite exist precisely so that claim stays true as the driver ecosystem grows.
  • The driver interface is public and the conformance suite runs in CI. Any driver — including ones we didn't write — can claim conformance, and community PRs are held to the same bar KaiCalls' own driver is held to (see SPEC.md §6).

If any of the above stops being true, that's a bug in this README, not a hidden asterisk — open an issue.


Driver capability matrix

Capability is expressed by presence, not by runtime errors (see SPEC.md §2.2). This table mirrors the spec's degradation appendix (SPEC.md §7) — the honest state of the wider backend landscape at spec-writing time (2026-07-09), not a ceiling on what CallMCP itself can do.

Launch drivers (this repo)

Capabilitykaicalls (hosted)dograh (local)twilio_openai (BYOK)
make_call / end_call (hangup)Yes — hangup via Vapi controlUrl, treated as call-scoped statemake_call yes; no external hangup endpoint (supports_hangup: false)Yes, native Twilio call control
search_numbers / buy_number / configure_numberYesNo purchase flow — BYO carrier account (supports_number_purchase: false)Yes, native Twilio number API
send_smsCapability-gated on the underlying Vapi-class backend; not claimed unless a real standalone send path existsNo SMS capabilityYes, native Twilio SMS
get_recordingYes, once wiredCapability-dependent on the local stackYes, native Twilio recording
get_transcript / realtime streamingYesYes, baseline (Dograh's GET /{workflow_id}/runs/{run_id} returns transcript_url — the one fully source-verified transcript path in the wider landscape)DIY assembly from realtime session events; supports_realtime_transcription only claimed once that assembly is genuinely live

Known gaps across the wider backend landscape (context for driver authors)

Tool / capabilityKnown gaps at spec-writing time
buy_numberAbsent on Synthflow (UI-only, no API), ElevenLabs (BYO-number only), Dograh (BYO carrier), Phonely (not independently drivable)
end_callAbsent on Retell and Synthflow (no hangup endpoint); Dograh has no external hangup endpoint; Vapi supports it only via a per-call ephemeral controlUrl, not a stable REST endpoint
send_smsThe most degraded tool in the whole contract. Only Telnyx, Bland, Autocalls, and Thoughtly expose real standalone SMS. Vapi/Retell/Synthflow are agent-mediated only (not a stable API surface, never claimed as supports_sms: true). Millis, Vogent, and Dograh have no SMS capability at all. AgentLine's own public materials contradict themselves on this (SKILL.md forbids SMS while its API spec defines POST /v1/messages) — cited as unresolved upstream, not resolved on AgentLine's behalf
get_recordingAbsent on AgentLine entirely; LiveKit-based backends require standing up a separate Egress service before it's real
get_transcript (realtime)LiveKit/Pipecat-local stacks require DIY event capture; Bolna's transcript endpoint is unconfirmed; Telnyx's exact transcript route is unverified

A driver claiming a capability it can't demonstrate against the conformance suite fails CI (see SPEC.md §6.2) — this table is a snapshot, not a promise about backends CallMCP doesn't control, and any driver author whose backend's real capability differs from this snapshot updates their own manifest, not this README.


Repo shape

callmcp/callmcp├── SPEC.md                   canonical tool contract (start here)├── packages/│   ├── server/                @callmcp/server — MCP core: transports, driver│   │                          registry, config resolution, approval state│   │                          machine, elicitation + fallback-URL flow,│   │                          dynamic tools/list│   ├── driver-interface/      @callmcp/driver-interface — TS interface,│   │                          capability manifest types, conformance test harness│   ├── driver-kaicalls/       hosted default driver│   ├── driver-dograh/         local/self-hosted driver│   └── driver-byok/           bring-your-own transport + bring-your-own LLM├── examples/                  Claude Desktop / Claude Code config blocks per leg├── server.json                official MCP Registry manifest — published as│                              ai.callmcp/server (registry.modelcontextprotocol.io)├── smithery.yaml               Smithery container deployment config└── Dockerfile                  self-host / Smithery container build

Packages

PackagenpmWhat it is
@callmcp/servernpmThe MCP server core — start here if you're running CallMCP.
@callmcp/driver-interfacenpmThe Driver contract, capability manifest types, conformance harness. Start here if you're writing a new driver.
@callmcp/driver-kaicallsnpmHosted default — KaiCalls' production telephony backend.
@callmcp/driver-dograhnpmFully local — wraps a self-hosted Dograh instance.
@callmcp/driver-byoknpmBring-your-own-key — Twilio transport + OpenAI Realtime (or wire-compatible) brain.

Contributing a driver

Implement the interface in @callmcp/driver-interface, ship a callmcp.manifest.json per SPEC.md §6.1, and run the conformance suite. A capability your manifest doesn't claim true simply results in that tool being absent from tools/list — that's the whole mechanism, not a workaround.

License

MIT for this repository's code. SPEC.md is released under Apache-2.0 as documented in its own header, specifically so anyone can implement a conformant driver without asking permission.

來源:README.md,提交 613339b

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v0.1.2最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分