nrjchnd
服务介绍
VoIPBin MCP 服务器

VoIPBin MCP 服务器
这是一个用于 VoIPBin API 的模型上下文协议(MCP)服务器实现,使 AI 模型能够与 VoIP 服务进行交互。
免责声明
本软件按“原样”提供,不附带任何形式的明示或暗示保证。作者不对本软件的完整性、可靠性和准确性做出任何保证。使用本软件的风险由您自行承担。作者不对因使用本软件而产生的任何损害负责。
概述
此 MCP 服务器为 AI 模型提供了与 VoIPBin API 服务交互的标准接口。它实现了模型上下文协议规范,并支持 SSE 和 stdio 两种传输类型。
特性
- 通过 MCP 协议完全集成 VoIPBin API
- 支持 stdio 和 SSE 两种传输模式
- 提供全面且带有适当注释的工具定义
- 类型安全的请求/响应处理
- 异步 HTTP 请求
- 正确的错误处理和验证
- 支持 Docker 以便于部署
可用工具
呼叫管理
get_calls: 获取呼叫列表,可选过滤get_call: 获取特定呼叫的详细信息create_call: 创建新的呼叫end_call: 结束一个活跃的呼叫
座席管理
get_agents: 获取座席列表get_agent: 获取特定座席的详细信息update_agent_status: 更新座席的状态
活动管理
get_campaigns: 获取活动列表get_campaign: 获取特定活动的详细信息create_campaign: 创建新的活动
录音管理
get_recordings: 获取呼叫录音列表get_recording: 获取特定录音的详细信息
队列管理
get_queues: 获取呼叫队列列表get_queue: 获取特定队列的详细信息
会议管理
get_conferences: 获取活跃会议列表create_conference: 创建新的会议
聊天管理
get_chats: 获取聊天会话列表send_chat_message: 在聊天会话中发送消息
账单管理
get_billing_info: 获取当前账单信息get_billing_history: 获取账单历史记录,可选日期过滤
设置
本地开发环境设置
-
创建虚拟环境:
bash
python -m venv venv
source venv/bin/activate # 在 Windows 上: venvScriptsactivate -
安装依赖项:
bash
pip install -r requirements.txt -
创建
.env文件:
bash
cp .env.example .env -
使用您的 VoIPBin API 凭证更新
.env文件:
VOIPBIN_API_URL=https://api.voipbin.net/v1.0
VOIPBIN_API_KEY=your-api-key-here
PORT=8000
Docker 设置
- 使用 Docker Compose 构建并运行:
bash
构建并启动容器
docker-compose up --build
以分离模式运行
docker-compose up -d
停止容器
docker-compose down
- 或者直接使用 Docker 构建并运行:
bash
构建镜像
docker build -t voipbin-mcp-server .
运行容器
docker run -d
-p 8000:8000
-e VOIPBIN_API_KEY=your-api-key-here
-e VOIPBIN_API_URL=https://api.voipbin.net/v1.0
voipbin-mcp-server
运行服务器
本地开发
标准 I/O 模式
bash
python src/main.py --transport stdio
SSE 模式
bash
python src/main.py --transport sse --port 8000
Docker
使用 Docker 时,默认情况下服务器以 SSE 模式运行。容器将端口 8000 用于 SSE 连接。
工具使用示例
创建呼叫
json
{
"name": "create_call",
"arguments": {
"body": {
"phone_number": "+1234567890",
"agent_id": "agent_123",
"campaign_id": "campaign_456"
}
}
}
获取呼叫详情
json
{
"name": "get_call",
"arguments": {
"call_id": "call_789"
}
}
创建会议
json
{
"name": "create_conference",
"arguments": {
"body": {
"name": "Team Meeting",
"participants": ["+1234567890", "+0987654321"]
}
}
}### 发送聊天消息
json
{
"name": "send_chat_message",
"arguments": {
"chat_id": "chat_123",
"body": {
"message": "Hello, how can I help you today?"
}
}
}
工具注解
每个工具都包含提供其行为元数据的注解:
readOnlyHint:指示该工具是否仅读取数据destructiveHint:指示该工具是否修改或删除数据idempotentHint:指示重复调用是否与单次调用具有相同的效果openWorldHint:指示该工具是否在开放世界上下文中操作
错误处理
服务器包括全面的错误处理:
- 无效的API凭证
- 网络连接问题
- 无效的请求参数
- 速率限制
- 服务器错误
开发
添加新工具
要添加一个新工具:
- 在
list_tools()函数中添加工具定义 - 在
voipbin_tool()函数中实现工具处理器 - 更新文档
测试
运行测试套件:
bash
python -m pytest tests/
安全性
- API密钥安全地存储在环境变量中
- 所有请求均经过身份验证
- 强制使用HTTPS进行API通信
- 对所有请求执行输入验证
- Docker容器以非root用户身份运行
- 健康检查确保容器正常运行
贡献
- 分叉仓库
- 创建特性分支
- 提交您的更改
- 推送到分支
- 创建拉取请求
许可证
本项目根据MIT许可证授权 - 详情请参阅LICENSE文件。
MIT许可证是一种宽松的许可证,简短而直接。它允许人们在提供归因并免除您责任的前提下自由使用代码。
您可以对这段代码做什么:
- 商业用途
- 修改它
- 分发它
- 私人使用
- 再许可它
您必须做什么:
- 包含原始版权声明
- 包含许可证文本
- 明确归因于原始来源
- 在任何衍生作品中保持归因
您不能做什么:
- 因损害而追究作者的责任
- 删除或模糊归因
- 声称作品是您自己的
有关MIT许可证的更多信息,请访问choosealicense.com/licenses/mit/。