Integrate AI with Webex Messaging
The Webex MCP Server gives AI assistants 52 tools for Cisco Webex messaging: messages, rooms, teams, people, webhooks, and enterprise ECM features.
0.1.0Add to Favorites
Why it matters
Empower AI assistants with comprehensive access to Cisco Webex messaging functionalities. This MCP server provides 52 tools to manage messages, rooms, teams, and more, enabling seamless AI-driven communication.
Outcomes
What it gets done
Connect AI assistants to Webex for message creation and retrieval.
Manage Webex rooms, teams, and user information via AI.
Automate Webex communication tasks through an AI interface.
Securely manage Webex API credentials for AI integration.
Install
Add it to your toolbox
Run in your project directory:
curl -fsSL https://spark.entire.vc/get/vb-webex | bash Capabilities
Tools your agent gets
Send messages to rooms
Retrieve message history
Modify existing messages
Delete messages
Get information about a specific message
Create new Webex spaces
View available rooms
Get information about a room
Overview
Webex MCP Server
This MCP server exposes 52 Cisco Webex messaging tools to AI assistants, covering messages, rooms, teams, memberships, people, webhooks, and enterprise ECM features, with Docker support and both STDIO and HTTP transport modes. Use it to let an AI assistant manage Webex messaging and spaces on your behalf. Review AI-issued delete actions before confirming, and plan for manual Webex Bearer token renewal since tokens expire every 12 hours.
What it does
The Webex MCP Server is a Model Context Protocol server providing AI assistants comprehensive access to Cisco Webex messaging through 52 tools organized into seven categories: Messages (6 tools - create, list, edit, delete messages), Rooms (6 tools - create and manage Webex spaces), Teams (5 tools - team creation and management), Memberships (10 tools - room and team membership operations), People (6 tools - user profile and directory management), Webhooks (7 tools - event notifications and integrations), and Enterprise (12 tools - ECM folders, room tabs, and attachments). It supports both STDIO and HTTP (StreamableHTTP) transport modes, Docker containerization for production deployment, and includes a tool-discovery system (npm run discover-tools, plus a tools-manifest.json describing categories, required environment variables, and testing coverage) for inspecting and filtering the available toolset.
When to use - and when NOT to
Use it when you want an AI assistant to send, manage, or automate Webex messages, spaces, teams, and enterprise content on your behalf - for example, posting updates to a room, managing team membership, or setting up webhook-driven notifications. Because the toolset includes message and content deletion and enterprise-level operations, review AI-issued delete actions before confirming them, especially in shared or production Webex organizations. Webex Bearer tokens are short-lived (the documented token expires in 12 hours) and must be renewed manually from the Webex developer portal, so this is not a fully unattended, long-running integration without a token-refresh process in place.
Inputs and outputs
Input is a natural-language or direct tool-call request identifying the target message, room, team, member, or webhook and the desired action. Output is the resulting Webex API response: created/edited/deleted message or room confirmations, membership or directory listings, or webhook registration status.
How to install
Requires Node.js 18+ (20+ recommended - fetch is unavailable on older versions without swapping in node-fetch) and a Webex API token from developer.webex.com.
git clone <repository-url>
cd webex-messaging-mcp-server
npm install
cp .env.example .env
# Edit .env with your Webex API token
node mcpServer.js
Set WEBEX_PUBLIC_WORKSPACE_API_KEY (the bearer token, without the "Bearer " prefix) in .env; optional variables include WEBEX_API_BASE_URL, WEBEX_USER_EMAIL, PORT, and MCP_MODE (stdio or http). Register the server in Claude Desktop's MCP configuration for STDIO mode, or run npm run start:http for HTTP mode. Docker deployment is also supported via docker build / docker run or docker-compose up webex-mcp-server.
Who it's for
Teams and developers using Cisco Webex who want an AI assistant to manage messaging, rooms, teams, membership, and enterprise content directly, including webhook-driven automation, rather than manually operating the Webex app or API.
Source README
Webex MCP Server
A Model Context Protocol (MCP) server that provides AI assistants with comprehensive access to Cisco Webex messaging capabilities.
Overview
This MCP server enables AI assistants to interact with Webex messaging through 52 different tools covering:
- Messages: Send, edit, delete, and retrieve messages
- Rooms: Create and manage Webex spaces
- Teams: Team creation and membership management
- People: User management and directory operations
- Webhooks: Event notifications and integrations
- Enterprise Features: ECM folders, room tabs, and attachments
Features
- ✅ Complete Webex API Coverage: 52 tools covering all major messaging operations
- ✅ Docker Support: Production-ready containerization
- ✅ Dual Transport: Both STDIO and HTTP (StreamableHTTP) modes
- ✅ Enterprise Ready: Supports Cisco enterprise authentication
- ✅ Type Safe: Full TypeScript/JavaScript implementation with proper error handling
- ✅ Centralized Configuration: Easy token and endpoint management
Quick Start
Prerequisites
- Node.js 18+ (20+ recommended). Warning: if you run with a lower version of Node,
fetchwon't be present. Tools usefetchto make HTTP calls. To work around this, you can modify the tools to usenode-fetchinstead. Make sure thatnode-fetchis installed as a dependency and then import it asfetchinto each tool file. - Docker (optional, for containerized deployment)
- Webex API token from developer.webex.com
Token Renewal
Webex Bearer tokens are short-lived. Your current token expires in 12 hours. To renew:
- Visit: https://developer.webex.com/messaging/docs/api/v1/rooms/list-rooms
- Login with your email
- Copy the new bearer token from your profile
- Update environment variable "WEBEX_PUBLIC_WORKSPACE_API_KEY" with new token (remove "Bearer " prefix)
Installation
Clone and install dependencies:
git clone <repository-url> cd webex-messaging-mcp-server npm installConfigure environment:
cp .env.example .env # Edit .env with your Webex API tokenTest the server:
# List available tools node index.js tools # Discover tools with detailed analysis npm run discover-tools # Start MCP server (STDIO mode - default) node mcpServer.js # Start MCP server (HTTP mode) npm run start:http
🔍 Tool Discovery
The server includes comprehensive tool discovery capabilities:
Tool Discovery Commands
# Human-readable tool analysis
npm run discover-tools
# JSON output for programmatic use
npm run discover-tools -- --json
# Filter tools by category
ENABLED_TOOLS=create_message,list_rooms npm run discover-tools
# Get help
npm run discover-tools -- --help
Tool Manifest
The tools-manifest.json file provides:
- Tool Categories: Messages, Rooms, Teams, Memberships, People, Webhooks, Enterprise
- 52 Total Tools: Complete Webex messaging API coverage
- Environment Configuration: Required and optional variables
- Testing Information: Coverage and validation details
- Migration History: MCP protocol upgrade documentation
Tool Organization
Tools are organized by functionality:
- Messages (6 tools): Create, list, edit, delete messages
- Rooms (6 tools): Room management and configuration
- Teams (5 tools): Team creation and management
- Memberships (10 tools): Room and team membership operations
- People (6 tools): User profile and directory management
- Webhooks (7 tools): Event notifications and webhook management
- Enterprise (12 tools): ECM folders, room tabs, attachments
Docker Usage
Build and run:
docker build -t webex-mcp-server . docker run -i --rm --env-file .env webex-mcp-serverUsing docker-compose:
docker-compose up webex-mcp-server
Configuration
Environment Variables
| Variable | Required | Description | Default |
|---|---|---|---|
WEBEX_PUBLIC_WORKSPACE_API_KEY |
Yes | Webex API token (without "Bearer " prefix) | - |
WEBEX_API_BASE_URL |
No | Webex API base URL | https://webexapis.com/v1 |
WEBEX_USER_EMAIL |
No | Your Webex email (for reference) | - |
PORT |
No | Port for HTTP mode | 3001 |
MCP_MODE |
No | Transport mode (stdio or http) |
stdio |
Getting a Webex API Token
- Visit developer.webex.com
- Sign in with your Cisco/Webex account
- Copy the bearer token from the API documentation
- Important: Remove the "Bearer " prefix when adding to your
.envfile
MCP Client Integration
Claude Desktop (STDIO Mode)
Add to your Claude Desktop configuration:
{
"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 Mode Integration
For HTTP-based MCP clients, start the server in HTTP mode:
# Start HTTP server
npm run start:http
# Server endpoints:
# Health check: http://localhost:3001/health
# MCP endpoint: http://localhost:3001/mcp
The server supports MCP 2025-11-25 protocol with StreamableHTTP transport, including:
- Proper CORS configuration with
mcp-session-idheader exposure - Session management for stateful connections
- Server-Sent Events (SSE) response format
Other MCP Clients
For STDIO mode:
docker run -i --rm --env-file .env webex-mcp-server
For HTTP mode:
docker run -p 3001:3001 --rm --env-file .env webex-mcp-server --http
Available Tools
Core Messaging
create_message- Send messages to roomslist_messages- Retrieve message historyedit_message- Modify existing messagesdelete_message- Remove messagesget_message_details- Get specific message information
Room Management
create_room- Create new Webex spaceslist_rooms- Browse available roomsget_room_details- Get room informationupdate_room- Modify room settingsdelete_room- Remove rooms
Team Operations
create_team- Create teamslist_teams- Browse teamsget_team_details- Get team informationupdate_team- Modify team settingsdelete_team- Remove teams
Membership Management
create_membership- Add people to roomslist_memberships- View room membersupdate_membership- Change member rolesdelete_membership- Remove memberscreate_team_membership- Add team memberslist_team_memberships- View team members
People & Directory
get_my_own_details- Get your profilelist_people- Search for usersget_person_details- Get user informationcreate_person- Add new users (admin only)update_person- Modify user detailsdelete_person- Remove users (admin only)
Webhooks & Events
create_webhook- Set up event notificationslist_webhooks- Manage webhooksget_webhook_details- Get webhook informationupdate_webhook- Modify webhooksdelete_webhook- Remove webhookslist_events- Get activity logsget_event_details- Get specific event information
Enterprise Features
create_room_tab- Add tabs to roomslist_room_tabs- View room tabsget_room_tab_details- Get tab informationupdate_room_tab- Modify tabsdelete_room_tab- Remove tabscreate_attachment_action- Handle form submissionsget_attachment_action_details- Get attachment detailslist_ecm_folder- Enterprise content managementget_ecm_folder_details- Get ECM folder detailscreate_ecm_folder- Create ECM configurationsupdate_ecm_linked_folder- Modify ECM foldersunlink_ecm_linked_folder- Remove ECM links
Transport Modes
STDIO Mode (Default)
The default transport mode for MCP clients like Claude Desktop:
# Start in STDIO mode
node mcpServer.js
# or
npm start
HTTP Mode (StreamableHTTP)
HTTP-based transport supporting MCP 2025-11-25 protocol:
# Start in HTTP mode
npm run start:http
# or
node mcpServer.js --http
HTTP Mode Features:
- Health Check:
GET http://localhost:3001/health - MCP Endpoint:
POST http://localhost:3001/mcp - Session Management: Automatic session ID handling
- CORS Support: Proper cross-origin configuration
- Protocol: MCP 2025-11-25 with StreamableHTTP transport
Environment Variables:
MCP_MODE=http- Force HTTP modePORT=3001- Custom port (default: 3001)
Smithery Integration
The server is configured for automatic deployment via Smithery with HTTP runtime:
# smithery.yaml
runtime: "nodejs"
main: "mcpServer.js"
envMapping:
webexApiKey: "WEBEX_PUBLIC_WORKSPACE_API_KEY"
webexApiBaseUrl: "WEBEX_API_BASE_URL"
Deploy with: smithery deploy
Development
Project Structure
├── lib/
│ ├── tools.js # Tool discovery and loading
│ └── webex-config.js # Centralized API configuration
├── tools/
│ └── webex-public-workspace/webex-messaging/
│ ├── create-a-message.js
│ ├── list-messages.js
│ └── ... (50 more tools)
├── scripts/
│ └── update-webex-tools.js # Automated tool updates
├── mcpServer.js # Main MCP server
├── index.js # CLI interface
├── Dockerfile # Container configuration
└── docker-compose.yml # Multi-container setup
Adding New Tools
- Create a new tool file in
tools/webex-public-workspace/webex-messaging/ - Follow the existing tool pattern with proper imports
- Add the tool path to
tools/paths.js - Test with
node index.js tools
Security
- Non-root container: Runs as user
mcp(UID 1001) - Multi-stage build: Optimized production image
- Environment isolation: Secrets passed via environment variables
- Health checks: Container monitoring support
Testing
🧪 Comprehensive Test Suite
- 118 unit tests across 53 test suites
- 100% pass rate with comprehensive coverage
- 50+ API endpoints tested end-to-end
- 20+ critical bug fixes validated
# Run all tests
npm test
# Run with coverage
npm run test:coverage
# Run tests locally (same as npm test)
npm run test:local
# Validate code quality + tests
npm run validate
🔒 Pre-Commit Quality Gates
Automatic quality assurance using Husky pre-commit hooks:
# Automatically runs on git commit:
🚀 Running pre-commit validation...
🔍 Checking code quality and running 118 unit tests...
✅ All validations passed! Commit proceeding...
What's validated:
- JavaScript syntax checking
- All 118 unit tests must pass
- Code quality standards
- API implementation correctness
See tests/README.md for detailed testing documentation.
FAQ
Common questions
Trust
How it checks out
Discussion
Questions & comments · 0
Sign In Sign in to leave a comment.
