VoIPBin MCP Server
一个模型上下文协议服务器,使人工智能模型能够与 VoIPBin 的 VoIP 服务进行交互,支持呼叫管理、座席管理、营销活动、电话会议和聊天功能等特性。
README
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: 检索账单历史记录,可选择日期过滤
设置
本地开发设置
- 创建一个虚拟环境:
python -m venv venv
source venv/bin/activate # 在 Windows 上:venv\Scripts\activate
- 安装依赖项:
pip install -r requirements.txt
- 创建一个
.env文件:
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 构建和运行:
# 构建并启动容器
docker-compose up --build
# 在分离模式下运行
docker-compose up -d
# 停止容器
docker-compose down
- 或者直接使用 Docker 构建和运行:
# 构建镜像
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 模式
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 凭据
- 网络连接问题
- 无效的请求参数
- 速率限制
- 服务器错误
开发
添加新工具
要添加新工具:
- 在
list_tools()函数中添加工具定义 - 在
voipbin_tool()函数中实现工具处理程序 - 更新文档
测试
运行测试套件:
python -m pytest tests/
安全
- API 密钥安全地存储在环境变量中
- 所有请求都经过身份验证
- HTTPS 用于 API 通信
- 对所有请求执行输入验证
- Docker 容器以非 root 用户身份运行
- 健康检查确保容器正常运行
贡献
- Fork 存储库
- 创建一个功能分支
- 提交您的更改
- 推送到分支
- 创建一个 Pull Request
许可证
本项目根据 MIT 许可证授权 - 有关详细信息,请参阅 LICENSE 文件。
MIT 许可证是一个宽松的许可证,简短而切中要点。 它允许人们对代码做任何他们想做的事情,只要他们提供对您的归属,并且不追究您的责任。
您可以使用此代码做什么:
- 用于商业用途
- 修改它
- 分发它
- 私下使用它
- 授予它子许可
你必须做什么:
- 包括原始版权声明
- 包括许可证文本
- 提供对原始来源的明确归属
- 在任何衍生作品中保持归属
你不能做什么:
- 让作者对损害负责
- 删除或模糊归属
- 声称该作品是您自己的
有关 MIT 许可证的更多信息,请访问 choosealicense.com/licenses/mit/。
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。