Webex MCP

io.github.yuryev89由 GitHub 帳號 yuryev89 發布v0.3.0更新於 Nov 6, 2026

Cisco Webex MCP server for messages, spaces, teams, people, webhooks and attachments.

已驗證STDIO僅桌面檔案與儲存溝通與協作

概覽

AI 產生的概覽

本機 MCP 伺服器,將 AI 助理接入 Cisco Webex Messaging,用來管理空間、訊息、成員、團隊、人員、Webhook 與附件。

可以做什麼
  • 列出、搜尋、建立、更新與刪除空間,並查看空間會議資訊
  • 讀取、搜尋、傳送、更新與刪除訊息,包含一對一對話、討論串回覆與附件卡片操作
  • 列出、加入、更新與移除空間及團隊成員;列出、建立、更新與刪除團隊
  • 依電子郵件、姓名或 ID 查詢人員
  • 列出、建立、更新與刪除 Webhook
  • 檢視、下載、儲存與讀取收到的附件:圖片內嵌顯示、文字分頁讀取、ZIP/JAR 項目清單、檔案儲存到本機磁碟
適用情境
適合想讓助理直接在 Webex 內工作的情境:彙整或搜尋某個空間的訊息、草擬並張貼回覆、管理空間成員與團隊,或取出訊息中的附件檢視。
執行需求
透過 npm 套件 @yuryev89/webex-mcp 以 stdio 在本機執行,需要 Node.js 18 以上版本與 npx。需要 Webex 機器人存取權杖(WEBEX_ACCESS_TOKEN 或 --token 參數),或使用 Webex Integration 的 WEBEX_CLIENT_ID 與 WEBEX_CLIENT_SECRET 並完成一次瀏覽器登入。需要連線至 Webex;機器人必須是空間成員才能讀取或張貼訊息。
安裝前請注意
需要 Webex 憑證:機器人權杖或 OAuth 用戶端 ID 與密鑰,可能留在指令列歷史或設定檔中。許多工具會寫入、傳送、邀請或刪除資料(訊息、空間、團隊、成員、Webhook),助理的操作會影響真實人員與頻道。儲存的附件屬於不可信輸入,不應執行。訊息檔案連結需要存取權杖,應透過伺服器工具取得檔案。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Webex MCP,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

webex-mcp

Maintainers: see Publishing a release for GitHub Releases and npm setup.

[npm version] [npm downloads] [license]

MCP server for Cisco Webex Messaging — connect AI assistants to Webex spaces, messages, and people.

Minimal MCP server that exposes Webex messaging tools over stdio. Works with Cursor, Claude Desktop, Codex, Claude Code, OpenCode, and other MCP clients.

Features

  • Full core Webex Messaging API coverage: spaces, messages, memberships, people, teams, webhooks, attachment actions, and file downloads
  • Received attachments for agents: images inline, text paged inline, ZIP/JAR listings, and saving any file to local disk
  • Search spaces and messages by keyword (client-side scan)
  • Bearer token authentication via webex-node SDK with REST fallback for select endpoints
  • OAuth 2.0 Integration login with automatic token refresh

Requirements

Quick start

Option A — Bot token

bash
# Run via npx (recommended)npx -y @yuryev89/webex-mcp@latest --token YOUR_ACCESS_TOKEN
# Or install globallynpm install -g @yuryev89/webex-mcpwebex-mcp --token YOUR_ACCESS_TOKEN

Option B — OAuth Integration

bash
# 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 configuration

Bot token

json
{  "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

json
{  "mcpServers": {    "webex": {      "command": "npx",      "args": ["-y", "@yuryev89/webex-mcp@latest"],      "env": {        "WEBEX_CLIENT_ID": "YOUR_CLIENT_ID",        "WEBEX_CLIENT_SECRET": "YOUR_CLIENT_SECRET"      }    }  }}

Run npx -y @yuryev89/webex-mcp@latest login once before starting Cursor (with WEBEX_CLIENT_ID and WEBEX_CLIENT_SECRET set).

Codex configuration

Add one of the following configurations to ~/.codex/config.toml (merge it with any existing configuration).

Bot token

toml
[mcp_servers.webex]command = "npx"args = ["-y", "@yuryev89/webex-mcp@latest"]
[mcp_servers.webex.env]WEBEX_ACCESS_TOKEN = "YOUR_BOT_ACCESS_TOKEN"

OAuth Integration

Complete Option B — OAuth Integration first, then use:

toml
[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"

Alternatively, keep credentials in your shell environment and replace the [mcp_servers.webex.env] table with env_vars = ["WEBEX_ACCESS_TOKEN"] inside [mcp_servers.webex] (or ["WEBEX_CLIENT_ID", "WEBEX_CLIENT_SECRET"] for OAuth). Start Codex from that shell.

Run codex mcp list to verify registration, then use /mcp in Codex to inspect the active server.

Reference: Codex MCP documentation.

Claude Code configuration

The following commands register Webex for your user account across projects. Choose one authentication mode.

Bot token

bash
claude mcp add --scope user \  --env WEBEX_ACCESS_TOKEN=YOUR_BOT_ACCESS_TOKEN \  --transport stdio webex -- npx -y @yuryev89/webex-mcp@latest

OAuth Integration

Complete Option B — OAuth Integration first, then register:

bash
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

Run claude mcp list or claude mcp get webex to check the connection. Inside Claude Code, use /mcp to inspect status and tools. To switch modes, remove the existing entry with claude mcp remove --scope user webex, then register it again.

Reference: Claude Code MCP documentation.

OpenCode configuration

Merge one of these examples into opencode.json in your project, or ~/.config/opencode/opencode.json for all projects.

Bot token

json
{  "$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}"      }    }  }}

Set WEBEX_ACCESS_TOKEN in your environment before launching OpenCode; {env:...} reads that variable.

OAuth Integration

Complete Option B — OAuth Integration first, then use:

json
{  "$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}"      }    }  }}

Keep WEBEX_CLIENT_ID and WEBEX_CLIENT_SECRET exported when launching OpenCode. Run opencode mcp list to check the server.

References: OpenCode MCP documentation and configuration.

Client setup notes

  • Each client starts the server as a local stdio process; no separate server terminal or HTTP URL is needed.
  • OAuth login is handled by npx -y @yuryev89/webex-mcp@latest login. Run it under the same OS user and token-store configuration as the client. Client-native MCP OAuth login commands do not replace this step.
  • For OAuth, remove WEBEX_ACCESS_TOKEN from the client configuration, inherited environment, and any loaded .env: a static token takes precedence over saved OAuth tokens.
  • Replace credential placeholders locally. Keep real credentials out of version control; CLI arguments may also be retained in shell history.
  • Ensure Node.js and npx are available to the client, then restart it after configuration changes.
  • Try: "Use Webex to list my spaces." For a message search, identify a space first; webex_search_messages searches one space at a time.

CLI options

Option / CommandDescriptionDefault
--tokenWebex access token (Bot mode)$WEBEX_ACCESS_TOKEN
--fedrampUse FedRAMP endpointfalse
--debugLog startup to stderrfalse
loginOAuth browser login, save tokens—
logoutRemove stored OAuth tokens—
auth-statusShow OAuth expiry metadata—

Tools

Spaces

ToolDescription
webex_list_spacesList spaces (rooms) for the authenticated user
webex_search_spacesSearch spaces by title/name (case-insensitive)
webex_get_spaceGet space details by ID
webex_create_spaceCreate a new space
webex_update_spaceUpdate a space
webex_delete_spaceDelete a space
webex_get_space_meeting_infoGet meeting details for a space

Messages

ToolDescription
webex_get_messagesList messages in a space or get one by ID (includeFileDetails adds attachment names/types/sizes)
webex_search_messagesKeyword search within a single space
webex_create_messageSend text and/or file attachments to a space or DM
webex_update_messageUpdate an existing message
webex_delete_messageDelete a message
webex_list_direct_messagesList messages in a 1:1 direct room (includeFileDetails as above)
webex_create_attachment_actionSubmit an attachment card action
webex_get_attachment_actionGet attachment action details
Sending file attachments

Use webex_create_message with files for publicly accessible HTTP(S) URLs:

json
{  "roomId": "SPACE_ID",  "text": "Here is the report",  "files": ["https://example.com/report.pdf"]}

For a local file, use filePath instead. The server uploads its contents using multipart; the file must be on the machine running the MCP server, with an absolute path and a size of at most 100 MB:

json
{  "toPersonEmail": "[email protected]",  "filePath": "/absolute/path/to/report.pdf"}

On Windows, use an absolute Windows path such as C:\\Reports\\report.pdf. Text and markdown are optional when attaching a file. files must be nonempty and cannot be combined with filePath. Recipient fields (roomId, toPersonId, toPersonEmail) and parentId for thread replies work as with text messages. URL downloads and attachment limits are enforced by Webex; private URLs requiring additional credentials cannot be used as public file URLs. See the Webex attachment guide.

Files

ToolDescription
webex_get_file_detailsMetadata (filename, type, size) for a message files[] URL
webex_download_fileRead a file (max 10 MB): images inline, text paged with offset/maxChars, ZIP/JAR as an entry list
webex_get_message_imagesDownload all image attachments on a message for LLM vision
webex_save_fileSave one file to local disk (max 100 MB) and return its path
webex_save_message_filesSave every file of a message to local disk
Reading received attachments

What webex_download_file returns depends on the file:

FileResult
PNG, JPEG, GIF, WebPInline ImageContent
Text: text/*, JSON, XML, SQL, diff/patch, source codeJSON summary (totalChars, nextOffset, …) + the text, maxChars per call (default 50 000)
ZIP, JAR, WAR, EARList of entries (name, size, encrypted); nothing is extracted
Anything else (PDF, docx, xlsx, …)Metadata and a hint to use webex_save_file

For PDF and Office documents, save the file and open it with the client's own tools (many agents read PDFs and images directly; use a script for docx/xlsx). Saved files go to <download dir>/<message-uuid>/<filename>, where the download dir is WEBEX_DOWNLOAD_DIR or ~/.cache/webex-mcp/downloads. Names are taken from Webex, decoded and made safe for the file system; saving again replaces the file, and webex_save_message_files adds (1) to same-named files of one message. The body streams to <name>.part and is renamed only when complete. Treat saved files as untrusted input: open or list them, never run them.

If Webex is still virus-scanning a file it answers 423 Locked; downloads wait for Retry-After (up to 10 s) and retry three times before failing.

Memberships

ToolDescription
webex_list_membershipsList space memberships
webex_get_membershipGet membership details
webex_add_membershipInvite a person to a space
webex_update_membershipUpdate membership (e.g. moderator)
webex_remove_membershipRemove a person from a space

People

ToolDescription
webex_get_peopleSearch people by email, name, or ID
webex_get_personGet a person by ID (use me for yourself)

Teams

ToolDescription
webex_list_teamsList teams
webex_create_teamCreate a team
webex_get_teamGet team details
webex_update_teamUpdate a team
webex_delete_teamDelete a team
webex_list_team_membershipsList team memberships
webex_add_team_membershipAdd a person to a team
webex_get_team_membershipGet team membership details
webex_update_team_membershipUpdate team membership
webex_remove_team_membershipRemove a person from a team

Webhooks

ToolDescription
webex_list_webhooksList webhooks
webex_create_webhookCreate a webhook
webex_get_webhookGet webhook details
webex_update_webhookUpdate a webhook
webex_delete_webhookDelete a webhook

Limitations

  • webex_search_messages works within a single space only (Webex REST API has no global search)
  • Search scans message history page by page — may be slow in large spaces
  • Bot must be a member of a space to read or post messages
  • OAuth uses user-delegated tokens; Bot mode uses a long-lived Bot token
  • Message files[] URLs require the access token; use webex_get_message_images / webex_download_file / webex_save_file instead of fetching the URL directly
  • Inline vision images are limited to PNG, JPEG, GIF, and WebP, max 10 MB each; inline text and archive listings are also limited to 10 MB
  • PDF and Office documents are not parsed by the server; save them and open them locally
  • ZIP64 archives cannot be listed inline; save them instead

Authentication modes

ModeSetupBest for
Bot tokenCopy token from developer portalSimple Cursor setup, bot identity
OAuth Integrationwebex-mcp login + client ID/secretUser-delegated access with auto-refresh

Full guide

See docs/HOWTO.md for step-by-step setup: bot creation, scopes, Cursor config, example prompts, and troubleshooting.

Local development

bash
git clone https://github.com/yuryev89/webexmcpcd webexmcpnpm installcp .env.example .envnpm run dev -- --token "$WEBEX_ACCESS_TOKEN"npm test

License

MIT

來源:README.md,提交 3da990a

工具

0
SourceWeft 曾在隔離沙箱中以無憑證方式啟動該軟體包一次,以列出其工具,但未能完成:伺服器未在限時內回應。

版本歷史

1
  1. v0.3.0最新Nov 6, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分