OITVOIP MCP服务器
   
🎯 生产就绪的NetSapiens集成\ 全面的MCP服务器,为AI代理提供对NetSapiens VoIP平台的完全访问
一种模型上下文协议(MCP)服务器,为AI代理提供对NetSapiens VoIP平台的无缝访问。该服务器使AI应用程序能够与NetSapiens功能进行交互,包括用户管理、呼叫详细记录和系统信息。
⚡ 特性
- 👥 用户管理:搜索用户、获取详细信息、设备、回答规则、问候语和语音邮件
- 📞 电话号码管理:跨域列出和管理电话号码
- 🎯 呼叫中心运营:管理呼叫队列、代理、登录/注销和统计信息
- 📊 呼叫分析:访问CDR记录、代理统计信息和呼叫模式
- 🏢 域管理:完成域管理和配置
- 🤖 自动总机:配置和管理自动助理
- 🎵 媒体管理:处理保留的问候语、语音邮件和音乐
- 💰 计费集成:访问计费信息和使用数据
- 🔧 实时操作:实时访问NetSapiens平台数据
- ⚡ 错误处理:强大的错误处理和详细的日志记录
- 🛡️ 速率限制:API保护的内置速率限制
- 📝 TypeScript:完全支持TypeScript,具有全面的类型安全性
🏗️ 建筑
oitvoip-mcp-server/
├── src/
│ ├── index.ts # Main MCP server implementation
│ └── netsapiens-client.ts # NetSapiens API client
├── types/
│ └── config.ts # TypeScript type definitions
├── docs/ # Documentation
├── build/ # Compiled JavaScript output
├── package.json # Project dependencies
├── tsconfig.json # TypeScript configuration
└── README.md # This file🚀 快速开始
先决条件
- Node.js 18.0.0或更高版本
- npm或yarn包管理器
- NetSapiens API证书
安装
选项1:来自npm(推荐)
npm install -g oitvoip-mcp-server选项2:来源
- 克隆存储库
git clone https://github.com/OITApps/oitvoip-mcp-server.git
cd oitvoip-mcp-server- 安装依赖项
npm install- 构建项目
npm run build- 在MCP客户端中配置
使用NetSapiens凭据将服务器添加到MCP客户端配置中(请参阅下面的MCP客户端设置部分)
发展模式
对于热重载开发:
npm run dev🔧 配置
此MCP服务器完全通过MCP客户端的配置文件进行配置。 没有单独 .env 需要文件 -所有配置都通过MCP客户端配置中的环境变量传递。
所需配置
NETSAPIENS_API_URL:您的NetSapiens API端点(通常https://api.ucaasnetwork.com)NETSAPIENS_API_TOKEN:您的NetSapiens API代币
可选配置
DEBUG:设置为true启用调试日志记录(默认值:false)NETSAPIENS_TIMEOUT:API请求超时(以毫秒为单位)(默认值:30000)
🔌 MCP客户端设置
OpenCode
对于OpenCode,请将MCP服务器添加到您的配置文件中 ~/.opencode/mcp.json:
如果通过npm安装:
{
"mcpServers": {
"oitvoip": {
"command": "oitvoip-mcp-server",
"env": {
"NETSAPIENS_API_URL": "https://api.ucaasnetwork.com",
"NETSAPIENS_API_TOKEN": "your_api_token_here"
}
}
}
}如果从源代码安装:
{
"mcpServers": {
"oitvoip": {
"command": "node",
"args": ["/path/to/oitvoip-mcp-server/build/index.js"],
"env": {
"NETSAPIENS_API_URL": "https://api.ucaasnetwork.com",
"NETSAPIENS_API_TOKEN": "your_api_token_here"
}
}
}
}克劳德桌面
对于Claude Desktop,将服务器添加到配置文件中:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json 视窗: %APPDATA%\Claude\claude_desktop_config.json
如果通过npm安装:
{
"mcpServers": {
"oitvoip": {
"command": "oitvoip-mcp-server",
"env": {
"NETSAPIENS_API_URL": "https://api.ucaasnetwork.com",
"NETSAPIENS_API_TOKEN": "your_api_token_here"
}
}
}
}如果从源代码安装:
{
"mcpServers": {
"oitvoip": {
"command": "node",
"args": ["/path/to/oitvoip-mcp-server/build/index.js"],
"env": {
"NETSAPIENS_API_URL": "https://api.ucaasnetwork.com",
"NETSAPIENS_API_TOKEN": "your_api_token_here"
}
}
}
}光标
对于Cursor,将服务器添加到MCP配置文件中 ~/.cursor/mcp.json:
如果通过npm安装:
{
"mcpServers": {
"oitvoip": {
"command": "oitvoip-mcp-server",
"env": {
"NETSAPIENS_API_URL": "https://api.ucaasnetwork.com",
"NETSAPIENS_API_TOKEN": "your_api_token_here"
}
}
}
}如果从源代码安装:
{
"mcpServers": {
"oitvoip": {
"command": "node",
"args": ["/path/to/oitvoip-mcp-server/build/index.js"],
"env": {
"NETSAPIENS_API_URL": "https://api.ucaasnetwork.com",
"NETSAPIENS_API_TOKEN": "your_api_token_here"
}
}
}
}配置说明
- 替换
/path/to/oitvoip-mcp-server安装的实际路径 - 替换
your_api_token_here使用您的实际NetSapiens API代币 - 所有配置都是通过MCP客户端处理的,没有单独的
.env需要文件 - 配置后,重新启动MCP客户端以加载服务器
🛠️ 可用工具(共23个)
👥 用户管理
1.搜索用户
在NetSapiens系统中按用户名搜索用户。
{
"name": "search_users",
"arguments": {
"query": "john.doe",
"domain": "company.com",
"limit": 20
}
}2.获取用户详细信息
检索特定用户的详细信息。
{
"name": "get_user",
"arguments": {
"userId": "john.doe",
"domain": "company.com"
}
}3.获取用户设备
获取分配给特定用户的设备。
{
"name": "get_user_devices",
"arguments": {
"userId": "john.doe",
"domain": "company.com"
}
}📞 电话号码管理
4.获取电话号码
获取域的电话号码。
{
"name": "get_phone_numbers",
"arguments": {
"domain": "company.com",
"limit": 50
}
}5.获取电话号码详细信息
获取特定电话号码的详细信息。
{
"name": "get_phone_number",
"arguments": {
"domain": "company.com",
"phoneNumber": "+15551234567"
}
}🏢 域管理
6.获取域名
获取NetSapiens系统中的域列表。
{
"name": "get_domains",
"arguments": {}
}7.获取域名详细信息
获取特定域的详细信息。
{
"name": "get_domain",
"arguments": {
"domain": "company.com"
}
}🎯 呼叫中心管理
8.获取呼叫队列
获取域的呼叫队列。
{
"name": "get_call_queues",
"arguments": {
"domain": "company.com"
}
}9.获取呼叫队列详细信息
获取特定呼叫队列的详细信息。
{
"name": "get_call_queue",
"arguments": {
"domain": "company.com",
"queueId": "sales-queue"
}
}10.获取呼叫队列代理
获取分配给呼叫队列的代理。
{
"name": "get_call_queue_agents",
"arguments": {
"domain": "company.com",
"queueId": "sales-queue"
}
}11.找代理人
获取域的代理。
{
"name": "get_agents",
"arguments": {
"domain": "company.com"
}
}12.登录代理
将代理登录到呼叫队列。
{
"name": "login_agent",
"arguments": {
"domain": "company.com",
"queueId": "sales-queue",
"agentId": "agent001"
}
}13.注销代理
从呼叫队列中注销代理。
{
"name": "logout_agent",
"arguments": {
"domain": "company.com",
"queueId": "sales-queue",
"agentId": "agent001"
}
}📊 呼叫分析
14.获取CDR记录
使用可选筛选检索呼叫详细记录。
{
"name": "get_cdr_records",
"arguments": {
"startDate": "2024-01-01",
"endDate": "2024-01-31",
"user": "john.doe",
"domain": "company.com",
"limit": 100
}
}15.获取代理统计信息
获取域的代理统计信息。
{
"name": "get_agent_statistics",
"arguments": {
"domain": "company.com",
"agentId": "agent001"
}
}🤖 自动总机
16.安排汽车服务员
为域获取自动助理。
{
"name": "get_auto_attendants",
"arguments": {
"domain": "company.com"
}
}📋 答案规则
17.获取用户答案规则
获取用户的答案规则。
{
"name": "get_user_answer_rules",
"arguments": {
"userId": "john.doe",
"domain": "company.com"
}
}18.获取用户答案规则
获取用户的特定答案规则。
{
"name": "get_user_answer_rule",
"arguments": {
"userId": "john.doe",
"domain": "company.com",
"timeframe": "business"
}
}🎵 媒体管理
19.获得用户问候
为用户获取问候。
{
"name": "get_user_greetings",
"arguments": {
"userId": "john.doe",
"domain": "company.com"
}
}20.获取用户语音邮件
获取用户的语音邮件。
{
"name": "get_user_voicemails",
"arguments": {
"userId": "john.doe",
"domain": "company.com"
}
}21.暂停音乐播放
获取域的音乐保留文件。
{
"name": "get_music_on_hold",
"arguments": {
"domain": "company.com"
}
}💰 计费
22.获取账单
获取域的计费信息。
{
"name": "get_billing",
"arguments": {
"domain": "company.com"
}
}🔧 系统
23.测试连接
测试与NetSapiens API的连接。
{
"name": "test_connection",
"arguments": {}
}📝 API示例
搜索用户
// Search for users with "john" in a specific domain
const result = await mcp.callTool('search_users', {
query: 'john',
domain: 'company.com',
limit: 10
});获取用户详细信息
// Get detailed information about a specific user
const result = await mcp.callTool('get_user', {
userId: 'john.doe',
domain: 'company.com'
});获取通话记录
// Get call records for a specific user in the last month
const result = await mcp.callTool('get_cdr_records', {
startDate: '2024-01-01',
endDate: '2024-01-31',
user: 'john.doe',
domain: 'company.com'
});获取用户设备
// Get devices assigned to a user
const result = await mcp.callTool('get_user_devices', {
userId: 'john.doe',
domain: 'company.com'
});🏃♂️ 发展
可用脚本
npm run build-将TypeScript编译为JavaScriptnpm run dev-在开发模式下运行,热重新加载npm start-运行已编译的服务器npm run watch-开发观看模式npm run clean-清理构建目录
项目结构
src/
├── index.ts # Main server entry point
├── netsapiens-client.ts # NetSapiens API client
└── tools/ # Individual tool implementations
types/
├── config.ts # Configuration types
└── netsapiens.ts # NetSapiens API types添加新工具
- 在中定义工具
ListToolsRequestSchema处理器 - 在中添加处理程序方法
CallToolRequestSchema处理器 - 在NetSapiens客户端中实现工具逻辑
- 根据需要更新类型定义
🔒 安全
🔐 MCP安全最佳实践
- API令牌:在MCP客户端配置中安全配置NetSapiens API令牌
- 令牌安全:使用强大的API令牌并定期轮换
- 访问控制:确保API令牌具有最低要求的权限
- 速率限制:内置速率限制可防止API滥用
- 错误处理:安全的错误记录,不暴露敏感数据
- 输入验证:所有输入在处理前都经过验证
🚨 安全指南
- 安全MCP配置:安全地存储MCP客户端配置文件
- 强大的API代币:使用安全的NetSapiens API代币并定期轮换
- 监控访问:检查NetSapiens访问日志中是否存在未经授权的使用
- 定期审计:运行
npm audit定期检查依赖漏洞 - 保持更新:维护安全补丁的最新版本
- 仅限HTTPS:所有API通信都使用安全的HTTPS连接
- 环境隔离:为开发/生产环境使用不同的令牌
🐛 故障排除
常见问题
- 连接失败
- 在中验证您的API URL和令牌 .env - 检查与NetSapiens服务器的网络连接 - 确保API令牌具有正确的权限
- 构建错误
- 跑 npm run clean 并重建 - 检查TypeScript配置 - 验证是否已安装所有依赖项
- 未找到工具
- 确保工具名称完全匹配 - 检查工具是否正确注册 ListToolsRequestSchema
调试模式
通过设置启用调试日志记录 DEBUG=true 在你的 .env 文件:
DEBUG=true📚 文档
🤝 贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🏢 关于OITVOIP
OITVOIP提供基于NetSapiens平台的全面VoIP解决方案。此MCP服务器实现了AI应用程序和我们的VoIP基础设施之间的无缝集成。
______________________________________________________________________
内置❤️ OITVOIP团队
*从前端技巧到后端才华,我们将其全部叠加!* ⭐
