Webex呼叫中心配置MCP服务器
用于管理和配置Cisco Webex呼叫中心资源的综合模型上下文协议(MCP)服务器。此服务器为178多个配置API提供了LLM友好的界面,包括团队、用户、技能、队列等。
🚀 快速开始
地方发展(标准模式)
要使用MCP Inspector或Gemini CLI在本地运行服务器进行测试,请执行以下操作:
- 克隆和安装:
git clone
cd webexccconfig-mcp
npm install- 配置环境:
创建一个 .env 文件或导出以下变量:
export WEBEX_TOKEN="your_access_token"
export WEBEX_ORG_ID="your_organization_id"
export WEBEX_BASE_URL="https://api.wxcc-us1.cisco.com/v1"- 在开发模式下运行:
npm run dev使用MCP检查员进行测试
如果你想运行编译后的Javascript(如果你已经运行过npm run build,建议使用): 命令:节点 参数:/Users/cpalau/wodev/work/webexconfig mcp/dist/index.js(注意:从命令字段中完全删除webexconfig mcp) 如果你想直接运行TypeScript而不构建: 命令:npx 参数:添加这三个单独的参数(大多数检查器UI允许您添加多个参数或根据UI通过空格分隔它们): TSX /用户/cpalau/wodev/work/webexconfig mcp/src/index.ts -- 标准版
与Claude Code或Gemini CLI一起使用
对于基于终端的AI助手,如 克劳德代码 或 Gemini CLI,使用stdio模式配置服务器。
克劳德代码: 直接通过CLI添加MCP服务器:
claude mcp add webexcc node /absolute/path/to/webexccconfig-mcp/dist/index.js*注意:确保您的 WEBEX_TOKEN, WEBEX_ORG_ID,以及 WEBEX_BASE_URL 在运行Claude Code之前,将它们导出到您的环境中,或传入。*
标准MCP配置JSON(Gemini/Claude桌面): 如果您的客户端使用配置文件(如 mcp.json 或 claude_desktop_config.json),添加以下条目:
{
"mcpServers": {
"webexccconfig-mcp": {
"command": "node",
"args": [
"/absolute/path/to/webexccconfig-mcp/dist/index.js"
],
"env": {
"WEBEX_TOKEN": "your_access_token",
"WEBEX_ORG_ID": "your_organization_id",
"WEBEX_BASE_URL": "https://api.wxcc-us1.cisco.com/v1"
}
}
}
}*(如果直接运行TypeScript而不构建,请使用 npx 作为命令,与 ["tsx", "/absolute/path/to/webexccconfig-mcp/src/index.ts"] 作为论据)。*
部署到Google Cloud Run(SSE/HTTP模式)
服务器已针对Cloud Run进行了优化,使用 Streamable HTTP 运输。
- 安装部署脚本:
cp deploy.sh.example deploy.sh
chmod +x deploy.sh
# Edit deploy.sh with your GCP Project ID and Region- 部署:
./deploy.sh dev- 使用IAM确保安全:
通过禁用公共访问和授予权限来确保您的服务受到保护 roles/run.invoker 授权用户/服务帐户。
其他云提供商
该项目包括一个多阶段 Dockerfile。您可以将容器部署到任何提供商(AWS Fargate、Azure容器应用程序等):
- 端口: 监听由定义的端口
PORT环境变量(默认8080)。 - 运输: 用途
SSE和Streamable HTTP自动当PORT存在。
______________________________________________________________________
🏗 架构文档
核心组件
- TypeScript和ESM: 采用现代ES模块构建,具有高性能和兼容性。
- McpServer SDK: 利用官方
@modelcontextprotocol/sdk. - Express框架: 用于HTTP/SSE传输层。
- 佐德: 为所有工具提供强大的运行时类型安全和自动生成的JSON模式。
传输机制
- 标准运输(当地): 基于CLI的交互的默认模式。
- SSEServerTransport(标准): 通过以下方式提供传统SSE支持
/sse和/messages. - StreamableHTTPServerTransport(统一): 通过以下方式实现高级、统一的端点
/mcp它处理流启动和消息发布。
会话管理
服务器使用 单例模式 为了 StreamableHTTPServerTransport 以高效地处理HTTP上的多个多路复用会话。对于标准SSE,它创建了隔离 McpServer 每个会话都有实例,以确保状态完整性。
______________________________________________________________________
🤖 AI编码与改进指南
该项目旨在通过人工智能编码工具(如Gemini、Cursor或Windsurf)轻松扩展。
如何添加新的API工具
- 定义DTO: 将接口添加到
src/types.ts.跟随IDTO命名约定。 - 注册工具: 在
src/index.ts,添加新server.tool呼叫内registerTools功能。 - 图案:
server.tool(
"Tool_Name",
"Human-readable description",
{ /* Zod Schema */ },
async (params) => {
const url = `${config.baseUrl}/organization/${config.orgId}/path`;
// Perform fetch and handle IApiErrorResponse
}
);AI改进技巧
- 保持手术状态: 编辑到
src/index.ts应该有针对性。使用独特的锚点,如工具注释replace操作。 - 干燥逻辑: 考虑重构
fetch如果您要添加许多类似的GET/POST工具,请将逻辑添加到辅助函数中。 - 首先验证: 总是使用
z.number().int()对于ID或计数,以及z.enum()对于固定的API值。
______________________________________________________________________
📋 可用API和实现状态
| API名称 | 描述 | 资源路径 | 实现 |
|---|---|---|---|
| 通讯录 | 管理通讯簿和条目。 | /v1/address-book | ✅ 完成(13个工具) |
| 用户 | 管理代理、主管和个人资料。 | /v2/user | ✅ 完成(12个工具) |
| 团队 | 管理组和容量。 | /v2/team | ✅ 完成(9个工具) |
| 技能 | 基于专业知识的路由配置。 | /v1/skill | ✅ 完成(11个工具) |
| 联系服务队列 | 入境持有和分销。 | /v3/contact-service-queue | ✅ 完成(14个工具) |
| 桌面布局/配置文件 | 代理桌面配置。 | /v2/desktop-layout | ✅ 完成(18个工具) |
| 拨号计划/号码 | 路由和号码映射。 | /v3/dial-number | ✅ 完成(18个工具) |
| 多媒体配置文件 | 多渠道代理限制。 | /v2/multimedia-profile | ✅ 完成(9个工具) |
| 外线ANI | 出站活动设置。 | /v1/outdial-ani | ✅ 完成(14个工具) |
| 全局变量 | 交叉流变量管理。 | /v2/cad-variable | ✅ 完成(10个工具) |
| 营业时间 | 时间表和覆盖。 | /v1/business-hours | ✅ 完成(22个工具) |
______________________________________________________________________
📚 API 参考
每个已实施工具的详细文档都可以在 docs/ 和 apireference/ 文件夹。这些文件来源于 官方Webex联系中心API文档.
