🚀 ExotelMCP
ExotelMCP 是一個模型上下文協議(MCP)服務器,它能實現 Claude AI 與 Exotel 的短信和語音通話服務通信 API 的無縫集成,還提供便捷的音頻工具。
🚀 快速開始
在使用 Exotel MCP 服務器之前,請確保你已完成以下準備工作:
- 安裝最新版本的 Claude 桌面應用程序。
- 安裝 Node.js 和 npm,這是 MCP 遠程連接所必需的。
- 擁有一個 Exotel 賬戶,並獲取 API 憑證。
- 若尚未安裝 MCP 遠程包,請進行安裝。
安裝 MCP 遠程包
如果你還沒有安裝 mcp-remote
,可以運行以下命令進行安裝:
npm install -g mcp-remote
驗證安裝是否成功:
npm list -g mcp-remote
Claude 桌面配置
要將 ExotelMCP 與 Claude 集成,請在你的 Claude 桌面設置中添加以下配置: 位置:Claude 桌面 → 設置 → 開發者 → 編輯配置
{
"mcpServers": {
"exotel": {
"command": "npx",
"args": [
"mcp-remote",
"http://ec2-13-127-242-200.ap-south-1.compute.amazonaws.com:8080/mcp",
"--allow-http",
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "{'token':'YOUR_EXOTEL_TOKEN','from_number':'YOUR_FROM_NUMBER','dlt_temp':'YOUR_DLT_TEMPLATE','dlt_entity':'YOUR_DLT_ENTITY','caller_id':'YOUR_CALLER_ID','api_domain':'https://YOUR_SUB_DOMAIN','account_sid':'YOUR_ACCOUNT_SID','exotel_portal_url':'YOUR_EXOTEL_DASHBOARD_BASE_URL'}"
}
}
}
}
所需憑證
請將佔位符值替換為你實際的 Exotel 憑證:
YOUR_EXOTEL_TOKEN:Base64 編碼的 API 憑證
此令牌是通過將你的 Exotel API 密鑰和密鑰以 Base64 格式編碼創建的。 步驟 1:從 Exotel 儀表板獲取 API 憑證
- 登錄到你的 Exotel 儀表板。
- 導航到 設置 → API 設置。
- 複製你的 API 密鑰 和 API 密鑰。
步驟 2:創建 Base64 令牌
格式:
api_key:api_secret
(用冒號分隔) 示例:如果你的 API 密鑰是abc123
,API 密鑰是xyz789
,則將它們組合為:abc123:xyz789
步驟 3:編碼為 Base64 你可以使用以下任何方法: 在線工具:
- 訪問 base64encode.org。
- 輸入你的
api_key:api_secret
字符串。 - 複製編碼結果。 命令行(Mac/Linux):
echo -n "your_api_key:your_api_secret" | base64
命令行(Windows):
[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("your_api_key:your_api_secret"))
其他所需值:
- YOUR_FROM_NUMBER:你在 Exotel 註冊的電話號碼(從儀表板 → 號碼獲取)。
- YOUR_DLT_TEMPLATE:用於短信合規性的 DLT 模板 ID(從儀表板 → DLT 獲取)。
- YOUR_DLT_ENTITY:用於短信合規性的 DLT 實體 ID(從儀表板 → DLT 獲取)。
- YOUR_CALLER_ID:你註冊的來電顯示 ID(從儀表板 → 號碼獲取)。
- YOUR_ACCOUNT_SID:你的 Exotel 賬戶 SID(從儀表板 → API 設置獲取)。
- YOUR_SUB_DOMAIN:你的 Exotel 賬戶子域名(從儀表板 → API 設置獲取)。
- YOUR_EXOTEL_DASHBOARD_BASE_URL:你的 Exotel 儀表板基礎 URL。
配置完成後,你可以使用 Claude 通過自然語言命令與 Exotel 服務進行交互。只需描述你想要執行的操作,Claude 將通過 MCP 服務器處理 API 調用。 示例命令:
- "向 +919999999999 發送短信,內容為 '來自 Claude 的問候!'"
- "撥打 +919999999999"
- "檢查我最後一條短信的發送狀態"
- "將 +919999999999 與 +919888888888 進行通話連接" 音頻命令:
- "播放來自 https://example.com/song.mp3 的音頻"
- "打開音頻播放器界面"
- "下載來自 https://example.com/podcast.mp3 的音頻"
✨ 主要特性
- 📱 短信服務:發送單條、批量和動態短信,符合 DLT 合規要求。
- ☎️ 語音通話:發起語音通話、連接號碼並與通話流程集成。
- 📊 狀態跟蹤:即時交付狀態和回調管理。
- 🎵 快速音頻工具:一鍵音頻播放、下載和訪問網絡播放器。
- 🔐 安全認證:基於令牌的認證系統。
- 🤖 Claude AI 集成:通過 MCP 協議與 Claude 直接集成。
📦 安裝指南
安裝 MCP 遠程包
如果你還沒有安裝 mcp-remote
,可以運行以下命令進行安裝:
npm install -g mcp-remote
驗證安裝是否成功:
npm list -g mcp-remote
💻 使用示例
基礎用法
配置完成後,你可以使用 Claude 通過自然語言命令與 Exotel 服務進行交互。例如:
"Send an SMS to +919999999999 saying 'Hello from Claude!'"
高級用法
在複雜場景下,你可以組合多個操作,如同時發送多條短信和發起語音通話:
"Send an SMS to +919999999999 saying 'Hello from Claude!' and call +919888888888"
📚 詳細文檔
API 服務
短信服務
發送單條短信
向特定電話號碼發送符合 DLT 合規要求的單條短信。 示例:
向 +919999999999 發送短信,內容為 "來自 Claude 的問候!",使用 DLT 模板 1107160086208866373 和實體 1101428740000012125
發送批量短信(相同消息)
同時向多個收件人發送相同的消息。 示例:
向以下號碼發送 "歡迎使用我們的服務!":+919999999999、+919888888888、+919777777777
發送動態批量短信
向多個收件人發送個性化消息,每個消息內容不同。 示例:
發送個性化消息:向 +919999999999 發送 "你好,John",向 +919888888888 發送 "你好,Jane"
語音服務
發起語音通話
使用你註冊的 Exotel 號碼向任何電話號碼發起語音通話。 示例:
從我的註冊號碼撥打 +919999999999
連接兩個號碼
在單個通話中橋接兩個電話號碼,將它們連接在一起。 示例:
在會議通話中連接 +919999999999 和 +919888888888
通話流程集成
將電話號碼連接到預定義的 Exotel 通話流程或 IVR 系統。 示例:
將 +919999999999 連接到通話流程應用 ID 12345
狀態與跟蹤服務
檢查短信發送狀態
獲取已發送短信的即時發送狀態和詳細信息。 示例:
檢查發送到 +919999999999 的短信的發送狀態
檢查語音通話狀態
檢索語音通話的詳細信息、時長和狀態。 示例:
獲取撥打到 +919999999999 的通話詳細信息
獲取通話歷史記錄
檢索批量通話詳細信息和歷史記錄以進行分析。 示例:
獲取從 +919999999999 撥打的所有通話詳細信息
號碼信息
獲取電話號碼的元數據和信息。 示例:
獲取電話號碼 +919999999999 的信息
音頻服務
快速音頻工具
一鍵式快速音頻播放和管理工具。
快速播放音頻
獲取可點擊的鏈接,以便在瀏覽器中播放任何音頻 URL。 示例:
播放來自 https://example.com/song.mp3 的音頻
打開音頻播放器
訪問基於網絡的音頻播放器界面以進行全面控制。 示例:
打開音頻播放器界面
快速下載
獲取任何音頻文件的直接下載鏈接。 示例:
下載來自 https://example.com/song.mp3 的音頻
🔧 技術細節
認證
Exotel MCP 服務器使用安全的基於令牌的認證。你所有的 Exotel 憑證都在 Claude 桌面配置中進行配置,並用於與 Exotel 的 API 進行認證。
安全特性
- 安全令牌處理:你的 Exotel API 令牌得到安全處理。
- 用戶隔離:每個用戶的數據都保持獨立和安全。
- DLT 合規性:內置支持印度短信的 DLT(分佈式賬本技術)要求。
獲取你的 Exotel 憑證
- 登錄到你的 Exotel 儀表板
- 導航到設置 → API 設置 以獲取你的 API 密鑰、API 密鑰和賬戶 SID。
- 轉到號碼部分 以記錄你註冊的電話號碼和來電顯示 ID。
- 訪問 DLT 部分 以獲取你的 DLT 模板和實體 ID(印度短信合規性必需)。
- 使用 API 密鑰和密鑰創建你的 Base64 令牌,如 配置 部分所述。 所有這些憑證都應正確格式化並添加到你的 Claude 配置中,如上所示。
託管與部署
🌐 重要提示:需要公共域名
此應用程序必須使用公共域名並啟用 HTTPS 進行託管,原因如下:
- MCP 遠程連接:Claude 桌面通過公共互聯網連接到你的服務器。
- Exotel 網絡鉤子:Exotel 需要向你的服務器發送回調通知。
- 安全性:Claude 與你的服務器之間的安全通信需要 HTTPS。
- 生產就緒:確保 SMS/語音狀態更新的可靠服務。
部署選項
Docker 設置
FROM openjdk:21-jdk-slim
WORKDIR /app
COPY target/mcp_api-0.0.1-SNAPSHOT.jar app.jar
EXPOSE 8080
CMD ["java", "-jar", "app.jar"]
# 構建並運行
docker build -t exotel-mcp .
docker run -p 8080:8080 -e EXOTEL_BASE_URL=https://your-domain.com exotel-mcp
使用 HTTPS 的 Docker Compose
version: '3.8'
services:
app:
build: .
ports:
- "8080:8080"
environment:
- EXOTEL_BASE_URL=https://your-domain.com
nginx:
image: nginx:alpine
ports:
- "80:80"
- "443:443"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./ssl:/etc/ssl/certs
環境配置
生產環境變量
# 服務器配置
SERVER_PORT=8080
SPRING_PROFILES_ACTIVE=production
# 應用程序 URL(關鍵 - 必須與你的域名匹配)
EXOTEL_BASE_URL=https://your-domain.com
# 安全性
SPRING_SECURITY_REQUIRE_SSL=true
# 日誌記錄
LOGGING_LEVEL_ROOT=WARN
LOGGING_LEVEL_COM_EXAMPLE_MCP_API=INFO
更新 Claude 配置
{
"mcpServers": {
"exotel": {
"command": "npx",
"args": [
"mcp-remote",
"https://your-domain.com/mcp",
"--allow-http", // 如果你的服務器運行在 HTTPS 上,請刪除此選項
"--header",
"Authorization:${AUTH_HEADER}"
],
"env": {
"AUTH_HEADER": "{'token':'YOUR_EXOTEL_TOKEN','from_number':'YOUR_FROM_NUMBER','dlt_temp':'YOUR_DLT_TEMPLATE','dlt_entity':'YOUR_DLT_ENTITY','caller_id':'YOUR_CALLER_ID','api_domain':'https://YOUR_SUB_DOMAIN','account_sid':'YOUR_ACCOUNT_SID','exotel_portal_url':'YOUR_EXOTEL_DASHBOARD_BASE_URL'}"
}
}
}
}
生產清單
- [ ] 域名:已註冊並配置 DNS。
- [ ] HTTPS:已安裝並正常工作的 SSL 證書。
- [ ] 服務器:應用程序在端口 8080 上運行。
- [ ] 防火牆:端口 80、443 和 8080 已開放。
- [ ] 監控:已配置健康檢查和日誌記錄。
音頻服務要求
快速音頻工具:
- ✅ 可在任何具有互聯網訪問權限的服務器上運行。
- ✅ 無需特殊硬件。
- ✅ 基於瀏覽器的播放。
- ✅ 支持所有常見音頻格式(mp3、wav、ogg 等)。
測試你的部署
1. 測試 MCP 端點
curl https://your-domain.com/mcp
# 應返回數據:{"type": "connection_established"}
3. 使用 Claude 進行測試
- 使用你的域名更新 Claude 配置。
- 重啟 Claude 桌面。
- 發送測試消息:"使用 DltEntityId=XXXXXXX、From=EXOTEL、DltTemplateId=XXXXXXXXX 向 +919999999999 發送測試短信"
部署故障排除
連接問題
- 檢查防火牆設置。
- 驗證 DNS 傳播:
nslookup your-domain.com
- 測試 HTTPS:
curl -I https://your-domain.com
應用程序問題
- 檢查應用程序日誌:
tail -f logs/mcp-server.log
- 驗證環境變量。
- 測試數據庫連接。
回調問題
- 確保網絡鉤子可以訪問你的服務器。
- 檢查 Exotel 回調 URL 配置。
- 驗證回調的 HTTPS 是否正常工作。
📄 許可證
文檔中未提及相關信息。
📄 支持
獲取幫助
- 配置問題:仔細檢查你的 Exotel 憑證和 Claude 配置。
- 部署問題:驗證域名、HTTPS 和服務器可訪問性。
- API 使用:參考 API 服務 部分的使用示例。
- Exotel 賬戶:聯繫 Exotel 支持解決賬戶相關問題。
- DLT 合規性:確保你的 DLT 模板和實體 ID 已正確註冊。
常見問題
"連接失敗" 錯誤
- 驗證你的域名是否可訪問:
curl https://your-domain.com/mcp
- 檢查你的
mcp-remote
安裝:npm list -g mcp-remote
- 確保 HTTPS 已正確配置。
- 驗證防火牆允許端口 443 上的傳入連接。
"認證失敗" 錯誤
- 驗證你的 Exotel API 令牌是否正確從
api_key:api_secret
格式進行 Base64 編碼。 - 仔細檢查你從 Exotel 儀表板 → 設置 → API 設置獲取的 API 密鑰和 API 密鑰。
- 確保在編碼之前 API 密鑰和密鑰之間包含冒號 (
:
) 分隔符。 - 檢查你的賬戶 SID 是否與你的 Exotel 賬戶匹配。
- 確保你的電話號碼已正確在 Exotel 註冊。
短信未送達
- 驗證 DLT 模板和實體 ID 是否正確。
- 檢查你的消息內容是否與註冊的 DLT 模板匹配。
- 確保收件人號碼有效且可訪問。
- 檢查回調網絡鉤子是否正在接收狀態更新。
網絡鉤子/回調問題
- 驗證你的服務器是否可從互聯網訪問。
- 檢查 HTTPS 證書是否有效。
- 確保回調 URL 使用你的公共域名。
- 手動測試網絡鉤子端點。
資源
- Exotel 文檔:https://developer.exotel.com/
- DLT 信息:https://www.trai.gov.in/
- Claude 桌面:https://claude.ai/
- Spring Boot 部署:https://docs.spring.io/spring-boot/docs/current/reference/html/deployment.html
- Let's Encrypt:https://letsencrypt.org/
🌐 請記住:此應用程序在生產環境中使用時需要一個啟用 HTTPS 的公共域名。該域名對於 Claude 桌面連接和 Exotel 網絡鉤子交付至關重要。
🚀 準備部署了嗎? 遵循上述託管指南,開始通過 Claude AI 發送短信、撥打電話和使用音頻工具!







