🚀 Webex MCP Server
Webex MCP Server 是一個模型上下文協議(MCP)服務器,它為 AI 助手提供了全面訪問思科 Webex 消息傳遞功能的能力,助力 AI 更高效地與 Webex 進行交互。
🚀 快速開始
前提條件
- Node.js 18 及以上版本(推薦 20 及以上)。注意:如果使用較低版本的 Node,將沒有
fetch 方法。工具使用 fetch 進行 HTTP 調用。若要解決此問題,可以修改工具以使用 node-fetch 代替。確保將 node-fetch 作為依賴項安裝,然後在每個工具文件中以 fetch 形式導入。
- Docker(可選,用於容器化部署)
- 從 developer.webex.com 獲取的 Webex API 令牌
令牌續訂
Webex 承載令牌的有效期較短,當前令牌將在 12 小時後過期。續訂步驟如下:
- 訪問:https://developer.webex.com/messaging/docs/api/v1/rooms/list-rooms
- 使用您的電子郵件登錄
- 從您的個人資料中複製新的承載令牌
- 使用新令牌更新環境變量 "WEBEX_PUBLIC_WORKSPACE_API_KEY"(去除 "Bearer " 前綴)
安裝
-
克隆並安裝依賴項:
git clone <repository-url>
cd webex-messaging-mcp-server
npm install
-
配置環境:
cp .env.example .env
-
測試服務器:
node index.js tools
node mcpServer.js
Docker 使用方法
-
構建並運行:
docker build -t webex-mcp-server .
docker run -i --rm --env-file .env webex-mcp-server
-
使用 docker-compose:
docker-compose up webex-mcp-server
✨ 主要特性
- ✅ 完整的 Webex API 覆蓋:提供 52 種工具,涵蓋所有主要的消息傳遞操作
- ✅ 支持 Docker:支持生產就緒的容器化部署
- ✅ 雙傳輸模式:支持 STDIO 和 SSE(服務器發送事件)兩種模式
- ✅ 企業級適配:支持思科企業認證
- ✅ 類型安全:完全使用 TypeScript/JavaScript 實現,並具備完善的錯誤處理機制
- ✅ 集中配置:便於進行令牌和端點管理
📦 安裝指南
環境變量
| 屬性 |
詳情 |
WEBEX_PUBLIC_WORKSPACE_API_KEY |
必需 |
WEBEX_API_BASE_URL |
可選 |
WEBEX_USER_EMAIL |
可選 |
PORT |
可選 |
獲取 Webex API 令牌
- 訪問 developer.webex.com
- 使用您的思科/Webex 賬戶登錄
- 從 API 文檔中複製承載令牌
- 重要提示:添加到
.env 文件時,去除 "Bearer " 前綴
💻 使用示例
MCP 客戶端集成
Claude Desktop
將以下內容添加到您的 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"
}
},
}
}
其他 MCP 客戶端
STDIO 模式:
docker run -i --rm --env-file .env webex-mcp-server
SSE 模式:
docker run -p 3001:3001 --rm --env-file .env webex-mcp-server --sse
📚 詳細文檔
可用工具
核心消息傳遞
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 鏈接
開發
項目結構
├── 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 # 多容器設置
添加新工具
- 在
tools/webex-public-workspace/webex-messaging/ 中創建一個新的工具文件
- 遵循現有工具的模式進行正確導入
- 將工具路徑添加到
tools/paths.js 中
- 使用
node index.js tools 進行測試
🔧 技術細節
安全
- 非根容器:以用戶
mcp(UID 1001)身份運行
- 多階段構建:優化生產鏡像
- 環境隔離:通過環境變量傳遞機密信息
- 健康檢查:支持容器監控
測試
🧪 全面的測試套件
- 118 個單元測試,分佈在 53 個測試套件中
- 100% 通過率,覆蓋全面
- 50 多個 API 端點 進行端到端測試
- 20 多個關鍵錯誤修復 經過驗證
npm test
npm run test:coverage
npm run validate
🔒 提交前質量檢查
使用 Husky 提交前鉤子進行自動質量保證:
🚀 Running pre-commit validation...
🔍 Checking code quality and running 118 unit tests...
✅ All validations passed! Commit proceeding...
驗證內容包括:
- JavaScript 語法檢查
- 所有 118 個單元測試必須通過
- 代碼質量標準
- API 實現正確性
詳細測試文檔請參閱 tests/README.md。
🤝 貢獻指南
- 分叉倉庫
- 創建功能分支
- 進行更改
- 提交時自動運行測試,通過提交前鉤子實現
- 確保所有 118 個測試都通過
- 提交拉取請求
📄 許可證
本項目採用 MIT 許可證,詳情請參閱 LICENSE 文件。
🛠️ 支持
- 問題反饋:通過 GitHub 問題報告錯誤和提出功能請求
- 文檔參考:詳細的設置說明請參閱 SETUP-COMPLETE.md
- 社區交流:加入 MCP 社區頻道參與討論