返回市场
WebEx消息MCP服务器

WebEx消息MCP服务器

作者:Kashyap-AI-ML-Solutions6 星标更新:2025-11-21

项目介绍

MseeP.ai 安全评估徽章

Webex MCP 服务器

一个模型上下文协议(MCP)服务器,为 AI 助手提供全面访问 Cisco Webex 消息功能的能力。

<a href="https://glama.ai/mcp/servers/@Kashyap-AI-ML-Solutions/webex-messaging-mcp-server"> <img width="380" height="200" src="https://gips3.baidu.com/it/u=3794202263,2985980479&fm=3081&app=3081&f=PNG?w=760&h=400" alt="Webex Server MCP 服务器" /> </a>

概述

此 MCP 服务器使 AI 助手能够通过 52 种不同的工具与 Webex 消息进行交互,涵盖以下功能:

  • 消息:发送、编辑、删除和检索消息
  • 房间:创建和管理 Webex 空间
  • 团队:团队创建和成员管理
  • 人员:用户管理和目录操作
  • Webhook:事件通知和集成
  • 企业功能:ECM 文件夹、房间标签和附件

特性

  • 完整的 Webex API 覆盖:52 种工具覆盖所有主要的消息操作
  • Docker 支持:生产就绪的容器化
  • 双传输模式:支持 STDIO 和 HTTP(StreamableHTTP)模式
  • 企业级支持:支持 Cisco 企业认证
  • 类型安全:完整的 TypeScript/JavaScript 实现,带有适当的错误处理
  • 集中配置:轻松管理令牌和端点

快速开始

前提条件

  • Node.js 18+(推荐 20+)。警告:如果使用较低版本的 Node,fetch 将不可用。工具使用 fetch 进行 HTTP 调用。解决方法是修改工具以使用 node-fetch。确保 node-fetch 已作为依赖项安装,并将其导入每个工具文件中。
  • Docker(可选,用于容器化部署)
  • developer.webex.com 获取 Webex API 令牌

令牌续期

Webex Bearer 令牌有效期较短。当前令牌将在 12 小时后过期。续期步骤如下:

  1. 访问:https://developer.webex.com/messaging/docs/api/v1/rooms/list-rooms
  2. 使用您的电子邮件登录
  3. 从个人资料中复制新的 Bearer 令牌
  4. 更新环境变量 "WEBEX_PUBLIC_WORKSPACE_API_KEY",移除 "Bearer " 前缀

安装

  1. 克隆并安装依赖项:

    git clone <repository-url>
    cd webex-messaging-mcp-server
    npm install
    
  2. 配置环境:

    cp .env.example .env
    # 编辑 .env 文件,添加您的 Webex API 令牌
    
  3. 测试服务器:

    # 列出可用工具
    node index.js tools
    
    # 详细分析工具
    npm run discover-tools
    
    # 启动 MCP 服务器(默认为 STDIO 模式)
    node mcpServer.js
    
    # 启动 MCP 服务器(HTTP 模式)
    npm run start:http
    

🔍 工具发现

服务器包括全面的工具发现功能:

工具发现命令

# 人类可读的工具分析
npm run discover-tools

# JSON 输出,适用于程序化使用
npm run discover-tools -- --json

# 按类别过滤工具
ENABLED_TOOLS=create_message,list_rooms npm run discover-tools

# 获取帮助
npm run discover-tools -- --help

工具清单

tools-manifest.json 文件提供以下内容:

  • 工具类别:消息、房间、团队、成员、人员、Webhook、企业
  • 52 个总工具:完整的 Webex 消息 API 覆盖
  • 环境配置:必需和可选变量
  • 测试信息:覆盖率和验证详情
  • 迁移历史:MCP 协议升级文档

工具组织

工具按功能组织:

  • 消息(6 个工具):创建、列出、编辑、删除消息
  • 房间(6 个工具):房间管理和配置
  • 团队(5 个工具):团队创建和管理
  • 成员(10 个工具):房间和团队成员操作
  • 人员(6 个工具):用户资料和目录管理
  • Webhook(7 个工具):事件通知和 Webhook 管理
  • 企业(12 个工具):ECM 文件夹、房间标签、附件

Docker 使用

  1. 构建和运行:

    docker build -t webex-mcp-server .
    docker run -i --rm --env-file .env webex-mcp-server
    
  2. 使用 docker-compose:

    docker-compose up webex-mcp-server
    

配置

环境变量

变量是否必需描述默认值
WEBEX_PUBLIC_WORKSPACE_API_KEYWebex API 令牌(不带 "Bearer " 前缀)-
WEBEX_API_BASE_URLWebex API 基础 URLhttps://webexapis.com/v1
WEBEX_USER_EMAIL您的 Webex 邮箱(仅作参考)-
PORTHTTP 模式的端口3001
MCP_MODE传输模式(stdiohttpstdio

获取 Webex API 令牌

  1. 访问 developer.webex.com
  2. 使用您的 Cisco/Webex 账户登录
  3. 从 API 文档中复制 Bearer 令牌
  4. 重要:在添加到 .env 文件时,移除 "Bearer " 前缀

MCP 客户端集成

Claude Desktop(STDIO 模式)

在 Claude Desktop 配置中添加:

{
  "mcpServers": {
    "webex-messaging": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "WEBEX_PUBLIC_WORKSPACE_API_KEY",
        "-e",
        "WEBEX_USER_EMAIL",
        "-e",
        "WEBEX_API_BASE_URL",
        "webex-mcp-server"
      ],
      "env": {
        "WEBEX_USER_EMAIL": "your.email@company.com",
        "WEBEX_API_BASE_URL": "https://webexapis.com/v1",
        "WEBEX_PUBLIC_WORKSPACE_API_KEY": "your_token_here"
      }
    }
  }
}

HTTP 模式集成

对于基于 HTTP 的 MCP 客户端,启动服务器的 HTTP 模式:

# 启动 HTTP 服务器
npm run start:http

# 服务器端点:
# 健康检查:http://localhost:3001/health
# MCP 端点:http://localhost:3001/mcp

服务器支持 MCP 2025-06-18 协议,使用 StreamableHTTP 传输,包括:

  • 正确的 CORS 配置,暴露 mcp-session-id
  • 会话管理,支持有状态连接
  • 服务器发送事件(SSE)响应格式

其他 MCP 客户端

对于 STDIO 模式:

docker run -i --rm --env-file .env webex-mcp-server

对于 HTTP 模式:

docker run -p 3001:3001 --rm --env-file .env webex-mcp-server --http

可用工具

核心消息

  • create_message - 发送消息到房间
  • list_messages - 检索消息历史
  • edit_message - 修改现有消息
  • delete_message - 删除消息
  • get_message_details - 获取特定消息信息

房间管理

  • create_room - 创建新的 Webex 空间
  • list_rooms - 浏览可用房间
  • get_room_details - 获取房间信息
  • update_room - 修改房间设置
  • delete_room - 删除房间

团队操作

  • create_team - 创建团队
  • list_teams - 浏览团队
  • get_team_details - 获取团队信息
  • update_team - 修改团队设置
  • delete_team - 删除团队

成员管理

  • create_membership - 添加人员到房间
  • list_memberships - 查看房间成员
  • update_membership - 更改成员角色
  • delete_membership - 删除成员
  • create_team_membership - 添加团队成员
  • list_team_memberships - 查看团队成员

人员与目录

  • get_my_own_details - 获取您的个人资料
  • list_people - 搜索用户
  • get_person_details - 获取用户信息
  • create_person - 添加新用户(仅管理员)
  • update_person - 修改用户详情
  • delete_person - 删除用户(仅管理员)

Webhook 与事件

  • create_webhook - 设置事件通知
  • list_webhooks - 管理 Webhook
  • get_webhook_details - 获取 Webhook 信息
  • update_webhook - 修改 Webhook
  • delete_webhook - 删除 Webhook
  • list_events - 获取活动日志
  • get_event_details - 获取特定事件信息

企业功能

  • create_room_tab - 添加标签到房间
  • list_room_tabs - 查看房间标签
  • get_room_tab_details - 获取标签信息
  • update_room_tab - 修改标签
  • delete_room_tab - 删除标签
  • create_attachment_action - 处理表单提交
  • get_attachment_action_details - 获取附件信息
  • list_ecm_folder - 企业内容管理
  • get_ecm_folder_details - 获取 ECM 文件夹信息
  • create_ecm_folder - 创建 ECM 配置
  • update_ecm_linked_folder - 修改 ECM 文件夹
  • unlink_ecm_linked_folder - 删除 ECM 链接

传输模式

STDIO 模式(默认)

默认的 MCP 客户端传输模式,如 Claude Desktop:

# 在 STDIO 模式下启动
node mcpServer.js
# 或
npm start

HTTP 模式(StreamableHTTP)

基于 HTTP 的传输,支持 MCP 2025-06-18 协议:

# 在 HTTP 模式下启动
npm run start:http
# 或
node mcpServer.js --http

HTTP 模式特性:

  • 健康检查GET http://localhost:3001/health
  • MCP 端点POST http://localhost:3001/mcp
  • 会话管理:自动处理会话 ID
  • CORS 支持:正确的跨域配置
  • 协议:MCP 2025-06-18,使用 StreamableHTTP 传输

环境变量:

  • MCP_MODE=http - 强制 HTTP 模式
  • PORT=3001 - 自定义端口(默认:3001)

Smithery 集成

服务器配置为通过 Smithery 自动部署,使用 HTTP 运行时:

# smithery.yaml
runtime: "nodejs"
main: "mcpServer.js"
envMapping:
  webexApiKey: "WEBEX_PUBLIC_WORKSPACE_API_KEY"
  webexApiBaseUrl: "WEBEX_API_BASE_URL"

部署命令:smithery deploy

开发

项目结构

├── lib/
│   ├── tools.js           # 工具发现和加载
│   └── webex-config.js    # 集中的 API 配置
├── tools/
│   └── webex-public-workspace/webex-messaging/
│       ├── create-a-message.js
│       ├── list-messages.js
│       └── ... (50 个更多工具)
├── scripts/
│   └── update-webex-tools.js  # 自动更新工具
├── mcpServer.js           # 主 MCP 服务器
├── index.js              # CLI 接口
├── Dockerfile             # 容器配置
└── docker-compose.yml    # 多容器设置

添加新工具

  1. tools/webex-public-workspace/webex-messaging/ 目录中创建一个新的工具文件
  2. 按照现有工具的模式编写,确保正确导入
  3. 将工具路径添加到 tools/paths.js
  4. 使用 node index.js tools 进行测试

安全

  • 非 root 容器:以用户 mcp(UID 1001)运行
  • 多阶段构建:优化的生产镜像
  • 环境隔离:通过环境变量传递密钥
  • 健康检查:支持容器监控

测试

🧪 全面的测试套件

  • 118 个单元测试,分布在 53 个测试套件中
  • 100% 通过率,覆盖全面
  • 50+ API 端点,端到端测试
  • 20+ 严重 Bug 修复,已验证
# 运行所有测试
npm test

# 运行带覆盖率的测试
npm run test:coverage

# 本地运行测试(与 npm test 相同)
npm run test:local

# 验证代码质量和测试
npm run validate

🔒 提交前的质量门控

使用 Husky 提交前钩子自动进行质量保证:

# 在 git 提交时自动运行:
🚀 运行提交前验证...
🔍 检查代码质量和运行 118 个单元测试...
✅ 所有验证通过!提交继续...

验证的内容:

  • JavaScript 语法检查
  • 118 个单元测试必须全部通过
  • 代码质量标准
  • API 实现正确性

详见 tests/README.md 以获取详细的测试文档。

贡献

  1. 叉仓库
  2. 创建功能分支
  3. 进行更改
  4. 测试在提交时自动运行,通过预提交钩子
  5. 确保所有 118 个测试通过
  6. 提交拉取请求

许可

MIT 许可证 - 详见 LICENSE 文件

支持

  • 问题:通过 GitHub Issues 报告 Bug 和功能请求
  • 文档:参见 SETUP-COMPLETE.md 以获取详细的设置说明
  • 社区:加入 MCP 社区频道讨论