VoIPBin MCP Server

MIT License
  • Linux
  • Apple

Integrations

  • Used for managing environment variables such as API credentials, with a .env file for configuration of the VoIPBin API key and URL.

  • Provides containerization support for easy deployment of the MCP server, with Docker Compose configuration and proper security practices for running the container.

  • Supports testing of the MCP server implementation with a test suite that can be run to verify functionality.

VoIPBin MCP 服务器

VoIPBin API 的模型上下文协议 (MCP) 服务器实现,使 AI 模型能够与 VoIP 服务交互。

免责声明

本软件按“原样”提供,不提供任何明示或暗示的保证。作者不保证本软件的完整性、可靠性或准确性。使用本软件的风险由您自行承担。作者对因使用本软件而造成的任何损害概不负责。

概述

该 MCP 服务器为 AI 模型与 VoIPBin 的 API 服务交互提供了标准化接口。它实现了模型上下文协议 (MCP) 规范,并支持 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 :使用可选的日期过滤功能检索账单历史记录

设置

本地开发设置

  1. 创建虚拟环境:
python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
  1. 安装依赖项:
pip install -r requirements.txt
  1. 创建.env文件:
cp .env.example .env
  1. 使用您的 VoIPBin API 凭证更新.env文件:
VOIPBIN_API_URL=https://api.voipbin.net/v1.0 VOIPBIN_API_KEY=your-api-key-here PORT=8000

Docker 设置

  1. 使用 Docker Compose 构建并运行:
# Build and start the container docker-compose up --build # Run in detached mode docker-compose up -d # Stop the container docker-compose down
  1. 或者直接使用 Docker 构建并运行:
# Build the image docker build -t voipbin-mcp-server . # Run the container 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 模式

python src/main.py --transport stdio

SSE模式

python src/main.py --transport sse --port 8000

Docker

使用 Docker 时,服务器默认以 SSE 模式运行。容器公开 8000 端口用于 SSE 连接。

工具使用示例

创建呼叫

{ "name": "create_call", "arguments": { "body": { "phone_number": "+1234567890", "agent_id": "agent_123", "campaign_id": "campaign_456" } } }

获取通话详情

{ "name": "get_call", "arguments": { "call_id": "call_789" } }

创建会议

{ "name": "create_conference", "arguments": { "body": { "name": "Team Meeting", "participants": ["+1234567890", "+0987654321"] } } }

发送聊天消息

{ "name": "send_chat_message", "arguments": { "chat_id": "chat_123", "body": { "message": "Hello, how can I help you today?" } } }

工具注释

每个工具都包含提供有关其行为的元数据的注释:

  • readOnlyHint :指示该工具是否仅读取数据
  • destructiveHint :指示该工具是否修改或删除数据
  • idempotentHint :指示重复调用是否与单次调用具有相同的效果
  • openWorldHint :指示该工具是否在开放世界环境中运行

错误处理

该服务器包括全面的错误处理:

  • API 凭证无效
  • 网络连接问题
  • 请求参数无效
  • 速率限制
  • 服务器错误

发展

添加新工具

要添加新工具:

  1. list_tools()函数中添加工具定义
  2. voipbin_tool()函数中实现工具处理程序
  3. 更新文档

测试

运行测试套件:

python -m pytest tests/

安全

  • API 密钥安全地存储在环境变量中
  • 所有请求都经过身份验证
  • API 通信强制使用 HTTPS
  • 对所有请求执行输入验证
  • Docker 容器以非 root 用户身份运行
  • 健康检查确保容器正常运行

贡献

  1. 分叉存储库
  2. 创建功能分支
  3. 提交你的更改
  4. 推送到分支
  5. 创建拉取请求

执照

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。

MIT 许可证是一种简明扼要的许可证。它允许任何人对代码进行任何操作,只要他们提供源代码归属信息,并且不追究您的责任。

使用此代码可以做什么:

  • 用于商业用途
  • 修改它
  • 分发它
  • 私下使用
  • 再授权

你必须做的事:

  • 包含原始版权声明
  • 包含许可证文本
  • 明确注明原始来源
  • 在任何衍生作品中保留署名

您不能做的事情:

  • 要求作者承担损害赔偿责任
  • 删除或隐藏归属信息
  • 声明该作品为您自己的作品

有关 MIT 许可证的更多信息,请访问choosealicense.com/licenses/mit/

ID: eidmvi5tei