callmcp について
callmcpは、着信・発信電話向けのMCPサーバーで、ホスト型、ローカル、BYOKの各バックエンドに共通する14ツールの契約を定めています。機能に応じたツール検出と、通話・SMSのサーバー側承認により、各バックエンドの対応状況を反映します。
主な機能
- 0114の電話機能に共通する契約
- 02ホスト型・ローカル・BYOKバックエンド
- 03機能に応じたツール検出
- 04発信通話とSMSの承認ゲート
- 05x402決済による番号のプロビジョニング
- 06対応時の録音・文字起こしツール
活用シーン
- 01エージェントコードを変えずに電話バックエンドを切り替え
- 02ホスト型またはセルフホスト環境で通話を実行
- 03電話番号への連絡前に承認を求める
- 04エージェントから電話番号を取得・設定
MCP 対応
MCPクライアントに、プロバイダーに依存しない電話機能のツール群を提供します。利用可能なツールは、設定されたドライバーの機能に応じて動的に検出されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @callmcp/serverCALLMCP_CONFIGPath to a callmcp.config.json file. Omit to configure entirely via env vars.CALLMCP_DEFAULT_DRIVERdriver_id routed to when a tool call omits `driver` (e.g. kaicalls, dograh, twilio_openai).ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
14掲載時のツール一覧 · 2 週間前に更新
このツールにパラメーターはありません。
詳細
1つの MCP サーバーで、あらゆる通話プロバイダーに対応。完全ローカル、完全ホスト型、または独自のフロンティアモデルを利用できます。
CallMCP は、発信・着信の電話機能(通話、SMS、録音、文字起こし、電話番号のライフサイクル)に対して、1つのツール契約(14個のツール、共通のスキーマ、共通のエラー形式)を定義する単一のModel Context Protocolサーバーです。ホスト型バックエンド、完全ローカルなバックエンド、または独自のキーを持ち込んで構成するバックエンドに接続でき、エージェントのコードを変更する必要はありません。変わるのは、機能に応じた動的な検出によって利用可能になるツールだけであり、利用可能なツールの形式が変わることはありません。
規範となるリファレンスはSPEC.mdです。この README は概要を示し、仕様書が契約を定めています。
npx -y @callmcp/server
実際のプロバイダーに接続する前に、npx -y @callmcp/server doctorを実行してください。
安全にローカルで試すには、npx -y @callmcp/server --sandboxを実行してください。
ドライバーが設定されていない場合、サーバーはフェイルクローズします。モックドライバーは
明示的なサンドボックス設定でのみ利用できます。
以下の3つの構成それぞれについて、すぐに貼り付けて使える Claude Desktop / Claude Code の設定はexamples/を参照してください。
3つの構造的な主張
これは「マーケティングページ付きの Twilio ラッパー」ではありません。以下の3つは後付けではなく、契約に実際に組み込まれています。
1. プロバイダーに依存しないマルチバックエンド契約
すべてのドライバー(ホスト型、ローカル、BYOK)は、SPEC.mdで定義されている同じ14個のツールを実装します。ドライバー固有の動作は、名前空間付きのoptions.<driver_id>パススルーオブジェクト内だけに記述されます。make_call_twilioやmake_call_kaicallsはありません。設定したドライバーでツールが利用可能な場合は、仕様どおりに完全に動作します。そうでなければ、tools/listに表示されません。存在するのに壊れているツールはありません。通話バックエンドの切り替えは、書き換えではなく設定変更で済みます。
2. x402で資金を調達し、本番環境へ自律的にプロビジョニング
search_numbers、buy_number、configure_number、list_numbersは、人間による承認を必要としません。第三者ではなく、自分自身のプロバイダーアカウントに接続するためです。これには、ドライバーが前払いを必要とする場合のx402による機械間決済も含まれます(INSUFFICIENT_FUNDSには、エージェントが決済して再試行できる完全なx402チャレンジが含まれます)。エージェントは番号を検索し、支払い、設定して、本番環境で実際の資金を使いながら、人間が何かをクリックすることなく自律的に運用を開始できます。これは、自律的なセルフサービスの経路がトライアルまたはサンドボックスのみに限定されているベンダー製 MCP とは明確に異なります。
3. 設計上の同意アーキテクチャとしての、人間が介在する発信承認
make_callとsend_smsは、エージェント自身のインフラに属さない電話番号へ連絡するあらゆる操作であり、実行前に有効なapproval_idまたは登録済みの許可リストとの一致を構造的に必須とします。これは上位レイヤーに追加されたポリシー上の提案ではありません。サーバーのコアで強制されるため、どのドライバー実装も回避できません。主な方法は MCP のエリシテーションです。エリシテーションに対応していないクライアントには、単回使用の帯域外承認 URL をフォールバックとして用意しています。このゲートは、いつまでも黙ってブロックすることも、黙って開くこともないように設計されています。TCPAの同意に関する姿勢として捉えると、この契約では「誰が、いつ、この番号への連絡を承認したか」を、アプリケーションコードに正しく組み込む必要のある前提ではなく、監査可能な第一級オブジェクト(request_call_approval / list_approvals)として扱います。
CallMCP とシングルベンダーの MCP、DIY の比較
| 機能 | CallMCP | Vapi MCP | Telnyx MCP | AgentPhone MCP | DIY(Twilio + 独自の連携コード) |
|---|---|---|---|---|---|
| ツールの契約 | 1 つのスキーマ、14 個のツール。バックエンド間で移植可能 | シングルベンダー、Vapi のみ | シングルベンダー、Telnyx のみ | シングルベンダー、AgentPhone のみ | 契約なし — 作成と保守は自分で行います |
| エージェントのコードを書き換えずに通話バックエンドを切り替え | はい — ドライバーの切り替えのみ | いいえ | いいえ | いいえ | いいえ |
| セルフホスト可能/完全ローカルのオプション | はい(Dograh ドライバー) | (未検証。公開前に再確認してください) | (未検証。公開前に再確認してください) | (未検証。公開前に再確認してください) | はい。ただし、スタック全体を自分で管理します |
| 通話の「頭脳」として独自のフロンティアモデルを使用 | はい(BYOK ドライバー:任意のトランスポート + 任意の LLM) | (未検証。公開前に再確認してください) | (未検証。公開前に再確認してください) | (未検証。公開前に再確認してください) | はい。完全に手動で連携します |
| 自律的な本番環境向け資金払い込み済み番号プロビジョニング(x402) | はい — search_numbers/buy_number/configure_number はゲートなしで、x402 による支払いが可能です | (未検証。公開前に再確認してください) | 公開されているセルフサービスのドキュメントから読み取れるのは、試用版の範囲での自律性であり、本番環境向けの資金払い込み済み自律性ではありません(未検証。公開前に再確認してください) | (未検証。公開前に再確認してください) | いいえ — コンソールでの手動購入と、手動でのコンプライアンス対応が必要です |
| 発信の承認/同意ゲートがスキーマに構造的に組み込まれている | はい — make_call/send_sms には approval_id または許可リストとの一致が必要で、サーバー側で強制されます | (未検証。公開前に再確認してください) | (未検証。公開前に再確認してください) | (未検証。公開前に再確認してください) | いいえ — 独自のゲートを構築し、保守する必要があります |
| 単独の SMS(エージェント経由に限定されない) | ドライバーごとに機能を判定し、正確に報告します — 実際にはエージェント経由の場合、そうであるとは決して主張しません | (未検証。公開前に再確認してください) | はい、ネイティブ対応 | (未検証。公開前に再確認してください) | はい、Twilio API にネイティブ対応 |
| 通話録音 | ドライバーごとに機能を判定し、正確に報告します | (未検証。公開前に再確認してください) | (未検証。公開前に再確認してください) | (未検証。公開前に再確認してください) | はい、Twilio API にネイティブ対応 |
| リアルタイムの文字起こしストリーミング | ドライバーごとに機能を判定します。対応している場合は、購読可能なリソースとして提供します | (未検証。公開前に再確認してください) | (未検証。公開前に再確認してください) | (未検証。公開前に再確認してください) | DIY — キャプチャ/組み立てレイヤーを自分で構築します |
| ソースの公開状況 | MIT ライセンスのサーバー + Apache-2.0 仕様、公開モノレポ | (未検証。公開前に再確認してください) | (未検証。公開前に再確認してください) | (未検証。公開前に再確認してください) | 該当なし — 自分で作成したコードです |
| 基盤となる通信事業者の費用に対する上乗せ料金 | OSS サーバーではゼロ — 原価でルーティングします。KaiCalls のホスティングプランは任意の利便性向上レイヤーであり、必須ではありません | (未検証。公開前に再確認してください) | (未検証。公開前に再確認してください) | (未検証。公開前に再確認してください) | 上乗せ料金はゼロ。連携コストの 100%は自分で負担します |
各「(未検証。公開前に再確認してください)」のセルはプレースホルダーであり、主張ではありません。出典なしに、競合製品について数値や事実をこの表に記載することはありません。再確認が行われる前にこの表を読んでいる場合、これらのセルは「いいえ」ではなく「不明」として扱ってください。
これを作っているのは誰か、実際に無料で使えるものは何か
CallMCP は CallMCP / KaiCalls が構築・保守しています。隠しておくよりも明かしたほうが信頼を損なわずに済むため、すべて率直にお伝えします。
- このオープンソースサーバーは、実際の機能を有料の壁の向こうに隠した、赤字覚悟の集客用ファネルではありません。 ホスト型、ローカル、BYOK のいずれであっても、設定された任意のドライバーにルーティングし、上乗せ料金も人為的な機能制限もありません。セルフホスト型の Dograh ドライバーでも、BYOK の Twilio+LLM ドライバーでも、KaiCalls ドライバーとまったく同じ 14 ツールの契約に対応します。
- KaiCalls はホスト型のデフォルトです。セルフホストするものなしで、数分で通話バックエンドを稼働させたい場合に、最も手軽な選択肢です。サポートされている唯一の方法ではありません。ドライバーのエコシステムが拡大してもこの主張が成り立つように、仕様と適合性テストスイートを用意しています。
- ドライバーインターフェースは公開されており、適合性テストスイートは CI で実行されます。 私たちが作成していないものも含め、どのドライバーでも適合を宣言できます。また、コミュニティからの PR も KaiCalls 自身のドライバーと同じ基準で審査されます(
SPEC.md§6 を参照)。
上記のいずれかが事実でなくなった場合、それは隠れた但し書きではなく、この README の不具合です。イシューを作成してください。
ドライバーの機能マトリックス
機能の有無は実行時エラーではなく、機能の存在で示されます(SPEC.md §2.2 を参照)。この表は、仕様の機能縮退に関する付録(SPEC.md §7)を反映しています。仕様作成時(2026-07-09)におけるバックエンド全体の状況を率直に示したものであり、CallMCP 自体の機能の上限ではありません。
ローンチ時のドライバー(このリポジトリ)
| 機能 | kaicalls(ホスト型) | dograh(ローカル) | twilio_openai(BYOK) |
|---|---|---|---|
make_call / end_call(通話の終了) | 対応 — Vapi の controlUrl 経由で通話を終了。通話スコープの状態として扱います | make_call は対応。外部から通話を終了するエンドポイントはありません(supports_hangup: false) | 対応。Twilio のネイティブな通話制御を使用します |
search_numbers / buy_number / configure_number | 対応 | 購入フローには非対応 — 通信事業者のアカウントは各自で用意します(supports_number_purchase: false) | 対応。Twilio のネイティブな番号 API を使用します |
send_sms | 基盤となる Vapi クラスのバックエンドで機能が利用可能な場合のみ対応。実際に独立した送信経路が存在しない限り、対応を謳いません | SMS 機能には非対応 | 対応。Twilio のネイティブな SMS を使用します |
get_recording | 対応。接続後に利用可能です | ローカルスタックの機能に依存します | 対応。Twilio のネイティブな録音を使用します |
get_transcript / リアルタイムストリーミング | 対応 | 対応。基本機能(Dograh の GET /{workflow_id}/runs/{run_id} は transcript_url を返します。これは、より広いバックエンド全体でソースを完全に検証できる唯一の文字起こし経路です) | リアルタイムセッションイベントから手動で組み立てます。その組み立てが実際に稼働している場合に限り、supports_realtime_transcription への対応を謳います |
より広範なバックエンド環境における既知の不足点(ドライバー作成者向けの参考情報)
| ツール/機能 | 仕様作成時点での既知の不足点 |
|---|---|
buy_number | Synthflow(UI 専用で API なし)、ElevenLabs(BYO 番号のみ)、Dograh(BYO キャリア)、Phonely(単独では操作できない)では利用できません |
end_call | Retell と Synthflow では利用できません(通話終了エンドポイントなし)。Dograh には外部から通話を終了するエンドポイントがありません。Vapi では、通話ごとに一時的な controlUrl を介する場合のみ利用でき、安定した REST エンドポイントはありません |
send_sms | 契約全体で最も機能が制限されているツールです。単独で実行できる SMS を提供しているのは Telnyx、Bland、Autocalls、Thoughtly のみです。Vapi/Retell/Synthflow はエージェント経由のみで、安定した API サーフェスではありません(supports_sms: true として扱ったことはありません)。Millis、Vogent、Dograh には SMS 機能がありません。AgentLine の公開資料はこの点で矛盾しています(SKILL.md では SMS が禁止されていますが、API 仕様では POST /v1/messages が定義されています)。これは未解決の上流課題として記載しており、AgentLine に代わって解決するものではありません |
get_recording | AgentLine にはまったくありません。LiveKit ベースのバックエンドでは、実際に利用する前に別途 Egress サービスを立ち上げる必要があります |
get_transcript(リアルタイム) | LiveKit/Pipecat のローカルスタックでは独自にイベントを取得する必要があります。Bolna の文字起こしエンドポイントは未確認です。Telnyx の正確な文字起こしルートは未検証です |
準拠テストスイートで実証できない機能をドライバーが申告すると、CI に失敗します(SPEC.md §6.2 を参照)。この表は現時点のスナップショットであり、CallMCP が制御できないバックエンドの機能を保証するものではありません。バックエンドの実際の機能がこのスナップショットと異なる場合、ドライバー作成者はこの README ではなく、自身のマニフェストを更新してください。
リポジトリの構成
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
パッケージ
| パッケージ | npm | 内容 |
|---|---|---|
@callmcp/server | npm | MCP サーバーのコアです。CallMCP を実行する場合は、ここから始めてください。 |
@callmcp/driver-interface | npm | Driver コントラクト、機能マニフェストの型、準拠テストハーネスです。新しいドライバーを作成する場合は、ここから始めてください。 |
@callmcp/driver-kaicalls | npm | ホスト型のデフォルトです。KaiCalls の本番テレフォニーバックエンドです。 |
@callmcp/driver-dograh | npm | 完全ローカル型です。セルフホスト可能な Dograh インスタンスをラップします。 |
@callmcp/driver-byok | npm | 独自のキーを使用します。Twilio トランスポートと OpenAI Realtime(またはワイヤー互換のもの)を頭脳として組み合わせます。 |
ドライバーのコントリビュート
@callmcp/driver-interface のインターフェースを実装し、SPEC.md §6.1 に従って callmcp.manifest.json を用意し、準拠テストスイートを実行してください。マニフェストで true と申告していない機能は、そのツールが tools/list に表示されないだけです。これが仕組みそのものであり、回避策ではありません。
ライセンス
このリポジトリのコードには MIT ライセンスが適用されます。SPEC.md は、許可を求めることなく誰でも準拠ドライバーを実装できるよう、同ファイルのヘッダーに記載のとおり Apache-2.0 ライセンスで公開されています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。