关于 Webex MCP
Webex MCP 是通过 stdio 将 AI 助手连接到 Cisco Webex Messaging 的服务,涵盖空间、消息、人员、团队、成员关系、webhook 和附件处理,并支持机器人令牌或 OAuth 认证。
主要功能
- 01管理空间、消息、团队和成员关系
- 02按关键词搜索空间和消息
- 03查找人员并管理 webhook
- 04读取、上传和保存附件
- 05使用机器人令牌或 OAuth 认证
适用场景
- 01搜索 Webex 空间中的消息
- 02发送带文件附件的消息
- 03查看空间收到的图像或文本
- 04管理团队成员和 webhook
MCP 相关
通过 stdio 向 MCP 客户端提供 Cisco Webex Messaging 工具。客户端以本地进程启动服务,并提供机器人令牌或 OAuth 凭据。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
webex-mcp
维护者:有关 GitHub Releases 和 npm 设置,请参阅发布版本。
用于 Cisco Webex Messaging 的 MCP 服务——将 AI 助手连接到 Webex 空间、消息和人员。
精简的 MCP 服务,通过 stdio 提供 Webex 消息工具。可与 Cursor、Claude Desktop、Codex、Claude Code、OpenCode 及其他 MCP 客户端配合使用。
功能
- 全面支持 Webex Messaging 核心 API:空间、消息、成员、人员、团队、webhook、附件操作和文件下载
- 面向 Agent 接收附件:图片内联显示、文本分页内联显示、ZIP/JAR 文件列表,以及将任意文件保存到本地磁盘
- 按关键字搜索空间和消息(客户端扫描)
- 通过
webex-nodeSDK 使用 Bearer 令牌进行身份验证,并为选定端点提供 REST 回退 - OAuth 2.0 Integration 登录,支持自动刷新令牌
要求
- Node.js >= 18
- Webex Bot 访问令牌或 Webex Integration(OAuth)——developer.webex.com
快速开始
选项 A — Bot 令牌
# Run via npx (recommended)
npx -y @yuryev89/webex-mcp@latest --token YOUR_ACCESS_TOKEN
# Or install globally
npm install -g @yuryev89/webex-mcp
webex-mcp --token YOUR_ACCESS_TOKEN
选项 B — OAuth Integration
# 1. Set credentials (or use a .env file in your working directory)
export WEBEX_CLIENT_ID="your-client-id"
export WEBEX_CLIENT_SECRET="your-client-secret"
# 2. Authenticate once (opens browser)
npx -y @yuryev89/webex-mcp@latest login
# 3. Start MCP server (reads saved tokens, auto-refreshes)
npx -y @yuryev89/webex-mcp@latest
Cursor 配置
Bot 令牌
{
"mcpServers": {
"webex": {
"command": "bash",
"args": [
"-lc",
"npx -y @yuryev89/webex-mcp@latest --token \"$WEBEX_ACCESS_TOKEN\""
],
"env": {
"WEBEX_ACCESS_TOKEN": "YOUR_BOT_ACCESS_TOKEN"
}
}
}
}
OAuth Integration
{
"mcpServers": {
"webex": {
"command": "npx",
"args": ["-y", "@yuryev89/webex-mcp@latest"],
"env": {
"WEBEX_CLIENT_ID": "YOUR_CLIENT_ID",
"WEBEX_CLIENT_SECRET": "YOUR_CLIENT_SECRET"
}
}
}
}
在启动 Cursor 前,先运行一次 npx -y @yuryev89/webex-mcp@latest login(设置好 WEBEX_CLIENT_ID 和 WEBEX_CLIENT_SECRET)。
Codex 配置
将以下任一配置添加到 ~/.codex/config.toml(与已有配置合并)。
Bot 令牌
[mcp_servers.webex]
command = "npx"
args = ["-y", "@yuryev89/webex-mcp@latest"]
[mcp_servers.webex.env]
WEBEX_ACCESS_TOKEN = "YOUR_BOT_ACCESS_TOKEN"
OAuth Integration
先完成选项 B — OAuth Integration,然后使用:
[mcp_servers.webex]
command = "npx"
args = ["-y", "@yuryev89/webex-mcp@latest"]
[mcp_servers.webex.env]
WEBEX_CLIENT_ID = "YOUR_CLIENT_ID"
WEBEX_CLIENT_SECRET = "YOUR_CLIENT_SECRET"
或者,将凭据保存在 shell 环境中,并在 [mcp_servers.webex] 内用 env_vars = ["WEBEX_ACCESS_TOKEN"] 替换 [mcp_servers.webex.env] 表(OAuth 则使用 ["WEBEX_CLIENT_ID", "WEBEX_CLIENT_SECRET"])。从该 shell 启动 Codex。
运行 codex mcp list 验证注册情况,然后在 Codex 中使用 /mcp 检查当前启用的服务。
参考:Codex MCP 文档。
Claude Code 配置
以下命令会为你的用户账户注册 Webex,适用于所有项目。选择一种身份验证模式。
Bot 令牌
claude mcp add --scope user \
--env WEBEX_ACCESS_TOKEN=YOUR_BOT_ACCESS_TOKEN \
--transport stdio webex -- npx -y @yuryev89/webex-mcp@latest
OAuth Integration
先完成选项 B — OAuth Integration,然后注册:
claude mcp add --scope user \
--env WEBEX_CLIENT_ID=YOUR_CLIENT_ID \
--env WEBEX_CLIENT_SECRET=YOUR_CLIENT_SECRET \
--transport stdio webex -- npx -y @yuryev89/webex-mcp@latest
运行 claude mcp list 或 claude mcp get webex 检查连接。在 Claude Code 中,使用 /mcp 检查状态和工具。要切换模式,请使用 claude mcp remove --scope user webex 移除现有条目,然后重新注册。
OpenCode 配置
将以下任一示例合并到项目中的 opencode.json,或合并到供所有项目使用的 ~/.config/opencode/opencode.json。
Bot 令牌
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"webex": {
"type": "local",
"command": ["npx", "-y", "@yuryev89/webex-mcp@latest"],
"enabled": true,
"environment": {
"WEBEX_ACCESS_TOKEN": "{env:WEBEX_ACCESS_TOKEN}"
}
}
}
}
启动 OpenCode 前,在环境中设置 WEBEX_ACCESS_TOKEN;{env:...} 会读取该变量。
OAuth Integration
先完成选项 B — OAuth Integration,然后使用:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"webex": {
"type": "local",
"command": ["npx", "-y", "@yuryev89/webex-mcp@latest"],
"enabled": true,
"environment": {
"WEBEX_CLIENT_ID": "{env:WEBEX_CLIENT_ID}",
"WEBEX_CLIENT_SECRET": "{env:WEBEX_CLIENT_SECRET}"
}
}
}
}
启动 OpenCode 时,确保已导出 WEBEX_CLIENT_ID 和 WEBEX_CLIENT_SECRET。运行 opencode mcp list 检查服务。
参考:OpenCode MCP 文档和配置文档。
客户端设置说明
- 每个客户端都会将服务作为本地 stdio 进程启动;无需单独打开服务终端或使用 HTTP URL。
- OAuth 登录由
npx -y @yuryev89/webex-mcp@latest login处理。请使用与客户端相同的 OS 用户和令牌存储配置运行此命令。客户端原生的 MCP OAuth 登录命令不能替代此步骤。 - 使用 OAuth 时,请从客户端配置、继承的环境变量以及任何已加载的
.env中移除WEBEX_ACCESS_TOKEN:静态令牌的优先级高于已保存的 OAuth 令牌。 - 请在本地替换凭据占位符。不要将真实凭据提交到版本控制;命令行参数也可能保留在 shell 历史记录中。
- 确保客户端能够使用 Node.js 和
npx,并在配置更改后重启客户端。 - 试试:“使用 Webex 列出我的空间。” 若要搜索消息,请先确定一个空间;
webex_search_messages一次只会搜索一个空间。
CLI 选项
| 选项 / 命令 | 说明 | 默认值 |
|---|---|---|
--token | Webex 访问令牌(Bot 模式) | $WEBEX_ACCESS_TOKEN |
--fedramp | 使用 FedRAMP 端点 | false |
--debug | 将启动日志写入 stderr | false |
login | OAuth 浏览器登录并保存令牌 | — |
logout | 移除已存储的 OAuth 令牌 | — |
auth-status | 显示 OAuth 过期元数据 | — |
工具
空间
| 工具 | 说明 |
|---|---|
webex_list_spaces | 列出已认证用户的空间(聊天室) |
webex_search_spaces | 按标题/名称搜索空间(不区分大小写) |
webex_get_space | 按 ID 获取空间详情 |
webex_create_space | 创建新空间 |
webex_update_space | 更新空间 |
webex_delete_space | 删除空间 |
webex_get_space_meeting_info | 获取空间的会议详情 |
消息
| 工具 | 说明 |
|---|---|
webex_get_messages | 列出空间中的消息,或按 ID 获取一条消息(includeFileDetails 会添加附件名称/类型/大小) |
webex_search_messages | 在单个空间内搜索关键词 |
webex_create_message | 向空间或私信发送文本和/或文件附件 |
webex_update_message | 更新现有消息 |
webex_delete_message | 删除消息 |
webex_list_direct_messages | 列出 1:1 直接聊天室中的消息(includeFileDetails 同上) |
webex_create_attachment_action | 提交附件卡片操作 |
webex_get_attachment_action | 获取附件操作详情 |
发送文件附件
对于可公开访问的 HTTP(S) URL,请在 webex_create_message 中使用 files:
{
"roomId": "SPACE_ID",
"text": "Here is the report",
"files": ["https://example.com/report.pdf"]
}
对于本地文件,请改用 filePath。服务会使用 multipart 上传文件内容;文件必须位于运行 MCP 服务的机器上,使用绝对路径,且大小不超过 100 MB:
{
"toPersonEmail": "[email protected]",
"filePath": "/absolute/path/to/report.pdf"
}
在 Windows 上,请使用绝对 Windows 路径,例如 C:\\Reports\\report.pdf。
附加文件时,文本和 Markdown 均为可选项。files 必须非空,且不能与 filePath 同时使用。收件人字段(roomId、toPersonId、
toPersonEmail)和用于回复线程的 parentId 均可像发送文本消息时一样使用。
Webex 会强制执行 URL 下载和附件限制;需要额外凭据的私有 URL 不能用作公开文件 URL。请参阅
Webex 附件指南。
文件
| 工具 | 说明 |
|---|---|
webex_get_file_details | 获取消息 files[] URL 的元数据(文件名、类型、大小) |
webex_download_file | 读取文件(最大 10 MB):图片内嵌显示,文本按 offset/maxChars 分页,ZIP/JAR 以条目列表形式显示 |
webex_get_message_images | 下载消息中的所有图片附件,供大模型视觉处理 |
webex_save_file | 将单个文件保存到本地磁盘(最大 100 MB)并返回其路径 |
webex_save_message_files | 将消息中的所有文件保存到本地磁盘 |
读取收到的附件
webex_download_file 的返回内容取决于文件类型:
| 文件 | 结果 |
|---|---|
| PNG、JPEG、GIF、WebP | 内联 ImageContent |
文本:text/*、JSON、XML、SQL、diff/patch、源代码 | JSON 摘要(totalChars、nextOffset 等)+ 文本;每次调用的 maxChars(默认值为 50 000) |
| ZIP、JAR、WAR、EAR | 条目列表(名称、大小、是否加密);不会解压任何内容 |
| 其他文件(PDF、docx、xlsx 等) | 元数据,以及使用 webex_save_file 的提示 |
对于 PDF 和 Office 文档,请保存文件并使用客户端自己的工具打开
(许多 Agent 可以直接读取 PDF 和图像;docx/xlsx 请使用脚本)。保存的文件位于
<download dir>/<message-uuid>/<filename>,其中下载目录为 WEBEX_DOWNLOAD_DIR
或 ~/.cache/webex-mcp/downloads。文件名取自 Webex,经过解码并处理以确保文件系统安全;再次保存会替换原文件,而 webex_save_message_files 会为同一条消息中重名的文件添加
(1)。文件内容会流式写入 <name>.part,并仅在完整写入后重命名。请将保存的文件视为不可信输入:可以打开或列出文件,但切勿运行它们。
如果 Webex 仍在对文件进行病毒扫描,则会返回 423 Locked;下载会等待 Retry-After(最长 10 s),并重试三次后失败。
成员关系
| 工具 | 描述 |
|---|---|
webex_list_memberships | 列出空间成员关系 |
webex_get_membership | 获取成员关系详情 |
webex_add_membership | 邀请人员加入空间 |
webex_update_membership | 更新成员关系(例如,设置主持人) |
webex_remove_membership | 将人员移出空间 |
人员
| 工具 | 描述 |
|---|---|
webex_get_people | 按电子邮件、姓名或 ID 搜索人员 |
webex_get_person | 按 ID 获取人员信息(使用 me 表示自己) |
团队
| 工具 | 描述 |
|---|---|
webex_list_teams | 列出团队 |
webex_create_team | 创建团队 |
webex_get_team | 获取团队详情 |
webex_update_team | 更新团队 |
webex_delete_team | 删除团队 |
webex_list_team_memberships | 列出团队成员关系 |
webex_add_team_membership | 将人员添加到团队 |
webex_get_team_membership | 获取团队成员关系详情 |
webex_update_team_membership | 更新团队成员关系 |
webex_remove_team_membership | 将人员移出团队 |
Webhook
| 工具 | 描述 |
|---|---|
webex_list_webhooks | 列出 Webhook |
webex_create_webhook | 创建 Webhook |
webex_get_webhook | 获取 Webhook 详情 |
webex_update_webhook | 更新 Webhook |
webex_delete_webhook | 删除 Webhook |
限制
webex_search_messages仅适用于单个空间(Webex REST API 不支持全局搜索)- 搜索会逐页扫描消息历史记录,在较大的空间中可能较慢
- Bot 必须是空间的成员,才能读取或发布消息
- OAuth 使用用户委派令牌;Bot 模式使用长期有效的 Bot 令牌
- 消息
files[]URL 需要访问令牌;请使用webex_get_message_images/webex_download_file/webex_save_file,不要直接获取该 URL - 内联视觉图像仅支持 PNG、JPEG、GIF 和 WebP,每张最大 10 MB;内联文本和归档文件列表也限制为 10 MB
- 服务端不会解析 PDF 和 Office 文档;请保存后在本地打开
- ZIP64 归档无法内联列出;请改为保存
身份验证模式
| 模式 | 设置 | 适用场景 |
|---|---|---|
| Bot token | 从开发者门户复制令牌 | 简单的 Cursor 设置、Bot 身份 |
| OAuth Integration | webex-mcp login + client ID/secret | 自动刷新的用户委派访问 |
完整指南
分步设置说明请参阅 docs/HOWTO.md:包括创建 Bot、配置范围、Cursor 配置、提示词示例和故障排除。
本地开发
git clone https://github.com/yuryev89/webexmcp
cd webexmcp
npm install
cp .env.example .env
npm run dev -- --token "$WEBEX_ACCESS_TOKEN"
npm test
许可证
MIT
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。