Webex MCP Server
Official Webex MCP server with 52 tools for messages, rooms, teams, people, memberships, webhooks, and enterprise content management.
The Webex MCP Server is Cisco Webex's official Model Context Protocol bridge between AI agents and the Webex collaboration platform. It exposes 52 tools that let an AI assistant send messages, manage rooms (spaces) and teams, administer memberships, look up people, configure webhooks, and work with enterprise features like room tabs, attachment actions, and ECM (Enterprise Content Management) linked folders. The goal is to let natural language agents control Webex without learning the REST API surface directly.
Cisco offers two ways to consume the server. A hosted remote server is available at https://mcp.webexapis.com/mcp/webex-messaging for clients that support remote MCP via OAuth (VS Code, OpenAI Codex, Amazon Q, and others). For local development or self hosting, the WebexSamples organization publishes an open source reference implementation in Node.js that can run in STDIO mode for Claude Desktop or HTTP mode for streamable clients. Both implementations expose the same tool surface and authenticate against Webex APIs with a bearer token.
The server organizes tools into seven groups: Messages (6), Rooms (6), Teams (5), Memberships (10), People (6), Webhooks (7), and Enterprise (12). It supports the full lifecycle of each resource (create, list, read, update, delete) plus event enumeration for webhook driven workflows.
Tools
| Tool | Description |
|---|---|
create_message |
Post a message to a room or as a direct message to a person. |
list_messages |
List messages in a room, with paging and date filters. |
edit_message |
Edit the text or markdown of a previously sent message. |
delete_message |
Delete a message by ID. |
get_message_details |
Retrieve details for a single message. |
create_room |
Create a new Webex room (space). |
list_rooms |
List rooms the authenticated user belongs to. |
get_room_details |
Get metadata for a room. |
update_room |
Rename or update a room. |
delete_room |
Delete a room. |
create_team |
Create a new team. |
list_teams |
List teams the user belongs to. |
get_team_details |
Get team metadata. |
update_team |
Update team properties. |
delete_team |
Delete a team. |
create_membership |
Add a person to a room. |
list_memberships |
List room memberships. |
update_membership |
Update moderator status on a membership. |
delete_membership |
Remove a person from a room. |
create_team_membership |
Add a person to a team. |
list_team_memberships |
List members of a team. |
get_my_own_details |
Return profile for the authenticated user. |
list_people |
Search the people directory. |
get_person_details |
Get a person by ID. |
create_person |
Create a user (admin scope required). |
update_person |
Update a user's profile. |
delete_person |
Delete a user (admin scope required). |
create_webhook |
Register a webhook for Webex events. |
list_webhooks |
List webhooks owned by the user. |
get_webhook_details |
Fetch a webhook by ID. |
update_webhook |
Update a webhook. |
delete_webhook |
Delete a webhook. |
list_events |
List recent events for the org. |
get_event_details |
Get details for one event. |
create_room_tab |
Pin a URL tab into a room. |
list_room_tabs |
List tabs pinned in a room. |
get_room_tab_details |
Get details of a single room tab. |
update_room_tab |
Update a room tab. |
delete_room_tab |
Delete a room tab. |
create_attachment_action |
Submit an Adaptive Card attachment action. |
get_attachment_action_details |
Get an attachment action by ID. |
list_ecm_folder |
List ECM linked folders in a room. |
get_ecm_folder_details |
Get an ECM linked folder. |
create_ecm_folder |
Link an ECM folder into a room. |
update_ecm_linked_folder |
Update an ECM linked folder. |
unlink_ecm_linked_folder |
Unlink an ECM folder from a room. |
Option A: Hosted remote server (recommended)
Point your MCP client at the hosted endpoint and authenticate with an OAuth bearer token from a Webex integration.
- Server URL:
https://mcp.webexapis.com/mcp/webex-messaging - Auth:
Authorization: Bearer <WEBEX_ACCESS_TOKEN>
Example VS Code config (.vscode/mcp.json) using mcp-remote:
{
"servers": {
"webex-messaging": {
"command": "npx",
"args": [
"mcp-remote",
"https://mcp.webexapis.com/mcp/webex-messaging",
"--header",
"Authorization: Bearer ${WEBEX_ACCESS_TOKEN}"
]
}
}
}
Prerequisites:
- A Webex account at developer.webex.com
- A personal access token (12 hour expiry) or a registered Webex Integration with OAuth2 client_id and client_secret. Authorization URL:
https://webexapis.com/v1/authorize, Token URL:https://webexapis.com/v1/access_token.
Option B: Self host the open source reference implementation
Clone the WebexSamples repo and run it locally with Node.js 18+ (20+ recommended) or Docker.
git clone https://github.com/WebexSamples/webex-messaging-mcp-server.git
cd webex-messaging-mcp-server
npm install
cp .env.example .env
# Edit .env and set WEBEX_PUBLIC_WORKSPACE_API_KEY
node mcpServer.js # STDIO mode
npm run start:http # HTTP mode on PORT 3001
Claude Desktop config (Docker, STDIO mode):
{
"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"
}
}
}
}
Environment variables:
WEBEX_PUBLIC_WORKSPACE_API_KEY(required): Webex API token, without theBearerprefixWEBEX_API_BASE_URL(optional): defaults tohttps://webexapis.com/v1WEBEX_USER_EMAIL(optional): reference field for your accountPORT(optional): HTTP mode port, default 3001MCP_MODE(optional):stdioorhttp, defaultstdio
Tokens copied from the developer portal expire in 12 hours. Use an OAuth integration for production deployments.
- Have an AI assistant post status updates, release notes, or incident summaries into specific Webex spaces by name
- Search and summarize recent messages in a team space, for example "summarize what the platform team discussed about the migration this week"
- Programmatically create a Webex room when a Jira ticket or PagerDuty incident is opened, add the right people via memberships, and post a kickoff message
- Manage the people directory at admin scope: provision new users, update roles and licenses, or deactivate accounts
- Register and manage webhooks so downstream automations receive events when messages or memberships change
- Pin reference dashboards or ECM folders as room tabs for an ongoing project
- "Create a Webex room called 'Q3 launch war room', add alice@acme.com and bob@acme.com, and post the launch checklist."
- "List the last 50 messages in the #platform-oncall room and summarize the active incidents."
- "Find the person named Sarah Chen in our org and DM her the meeting notes."
- "Register a webhook that posts to https://hooks.example.com/webex when any message mentions me."
- "Pin our Grafana dashboard URL as a tab in the SRE room."
- Official Cisco Webex implementation with a hosted remote endpoint, no self hosting required for basic use
- Broad coverage with 52 tools spanning messaging, spaces, teams, directory, webhooks, and ECM
- Open source reference implementation available under MIT, supports both STDIO and HTTP transports plus Docker
- Standard OAuth2 with Webex Integrations for production grade auth and granular scopes
- Personal access tokens from the developer portal expire after 12 hours, requiring OAuth setup for anything beyond quick tests
- Scope of the messaging server does not include meetings, recordings, or admin analytics; those live in separate Webex MCP servers (for example the Meetings MCP server)
- The reference repository is published under WebexSamples and is positioned as sample code rather than a versioned product release, so production users may want to fork and pin
- Webex Meetings MCP Server for scheduling and managing Webex meetings
- Slack MCP server for the equivalent capability on Slack
- Microsoft Teams MCP integrations for Teams based collaboration workflows