home / mcp / webex mcp server

Webex MCP Server

A Model Context Protocol (MCP) server that provides AI assistants with comprehensive access to Cisco Webex messaging capabilities.

Installation
Add the following to your MCP client configuration file.

Configuration

View docs
{
  "mcpServers": {
    "kashyap-ai-ml-solutions-webex-messaging-mcp-server": {
      "url": "http://localhost:3001/mcp",
      "headers": {
        "PORT": "3001",
        "MCP_MODE": "stdio",
        "WEBEX_USER_EMAIL": "[email protected]",
        "WEBEX_API_BASE_URL": "https://webexapis.com/v1",
        "WEBEX_PUBLIC_WORKSPACE_API_KEY": "your_token_here"
      }
    }
  }
}

You can run a complete MCP server that gives AI assistants access to Webex messaging capabilities. This server exposes a large set of tools to manage messages, rooms, teams, memberships, people, webhooks, and enterprise features, all via a standardized MCP interface. It supports both local STDIO and HTTP-based transports, making it flexible for development and production deployments.

How to use

To use the Webex MCP Server, run it in STDIO mode for a local, interactive session or start it in HTTP mode to connect from MCP clients over HTTP. In STDIO mode, your client communicates directly through the process input/output. In HTTP mode, clients send requests to a dedicated HTTP endpoint and receive responses via the MCP protocol.

How to install

# Prerequisites
node -v
# Expect Node.js 18+ (20+ recommended)
# Docker (optional)

# Install dependencies from a clean clone
git clone <repository-url>
cd webex-messaging-mcp-server
npm install

# Configure environment
cp .env.example .env
# Edit .env to include your Webex API token and related settings

# Start in STDIO mode (default)
node mcpServer.js
# Or simply
npm start

# Start in HTTP mode
npm run start:http

Configuration and startup notes

Environment variables you commonly configure include the Webex API token and API base URL. Set WEBEX_PUBLIC_WORKSPACE_API_KEY to your token (without the Bearer prefix). Optionally configure WEBEX_API_BASE_URL, WEBEX_USER_EMAIL, PORT, and MCP_MODE to control how the server runs.

If you switch to HTTP mode, the server exposes a health endpoint and an MCP endpoint you can use from clients. For example, health checks are available at the health URL and the MCP endpoint at the /mcp path on your chosen port.

Notes on transport modes and endpoints

The server supports both STDIO and HTTP transports. STDIO is the default and works well for local development and environments that can spawn a process and communicate through its standard streams. HTTP mode enables client applications to connect over HTTP with the MCP protocol.

In HTTP mode, you typically run the server and then connect clients to the HTTP MCP endpoint, for example http://localhost:3001/mcp, while health checks can be performed at http://localhost:3001/health.

Security and maintenance

Resulting deployments should run in a non-root context when containerized. Use environment isolation for secrets and enable health checks to monitor service availability. If you rotate Webex tokens, update the WEBEX_PUBLIC_WORKSPACE_API_KEY value in your environment and restart the server.

Troubleshooting tips

If you encounter missing fetch in older Node versions, upgrade Node.js to 18+ or ensure you install a fetch polyfill (or switch to a compatible http client within tools). Check that the WEBEX_API_BASE_URL is reachable and that the token in WEBEX_PUBLIC_WORKSPACE_API_KEY is valid and has not expired.

MCP client integration examples

To connect a client in STDIO mode, spawn the server process and communicate through standard input and output. To connect via HTTP, point your MCP client to the HTTP endpoint and send MCP requests following the StreamableHTTP protocol. Refer to your client’s documentation for how to format and send those requests.

Security best practices

Run containerized with a non-root user, enable secrets management, and keep dependencies up to date. Use version pins for Node and dependencies to avoid unexpected breaking changes.

Advanced usage

If you need to renew a Webex token, follow the token renewal workflow and update WEBEX_PUBLIC_WORKSPACE_API_KEY in your environment. When deploying with HTTP, the server will handle MCP sessions and SSE-like response handling to ensure stateful connections are maintained properly.

Available tools

create_message

Send a new message to a Webex room or space

list_messages

Retrieve message history from a room or space

edit_message

Edit an existing message by its ID

delete_message

Delete a message by its ID

get_message_details

Get detailed information about a specific message

create_room

Create a new Webex room/space

list_rooms

List available Webex rooms/spaces

get_room_details

Get details for a specific room

update_room

Update settings for a room

delete_room

Remove a room

create_team

Create a Webex team

list_teams

List existing teams

get_team_details

Get details for a specific team

update_team

Update team settings

delete_team

Delete a team

create_membership

Add a member to a room or team

list_memberships

List memberships for a room or team

update_membership

Change a membership's role or state

delete_membership

Remove a membership

create_team_membership

Add members to a team

list_team_memberships

List members of a team

get_my_own_details

Retrieve the current user's profile details

list_people

Search and list Webex directory users

get_person_details

Get details for a directory person

create_person

Add a new directory person (admin only)

update_person

Update a directory person's details

delete_person

Remove a directory person (admin only)

create_webhook

Create a webhook for event notifications

list_webhooks

List existing webhooks

get_webhook_details

Get details for a webhook

update_webhook

Update a webhook

delete_webhook

Delete a webhook

list_events

List activity events

get_event_details

Get details for a specific event

create_room_tab

Add a tab to a room

list_room_tabs

List room tabs

get_room_tab_details

Get details for a room tab

update_room_tab

Update a room tab

delete_room_tab

Delete a room tab

create_attachment_action

Handle form submissions via attachments

get_attachment_action_details

Get details for an attachment action

list_ecm_folder

List ECM folders

get_ecm_folder_details

Get details for an ECM folder

create_ecm_folder

Create an ECM folder configuration

update_ecm_linked_folder

Update ECM linked folder settings

unlink_ecm_linked_folder

Unlink an ECM folder