webex_mcp_server

satheeshkumarvadivel/webex_mcp_server

3.1

If you are the rightful owner of webex_mcp_server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

This is a Webex MCP Server that can be used to send messages and schedule/update/cancel meetings using the Webex API.

Webex MCP Server

This is a Webex MCP Server that can be used to send messages and schedule/update/cancel meetings using the Webex API.

Features

  • Send messages to users or rooms
  • Schedule new meetings
  • Update existing meetings
  • Cancel meetings
  • Add reminders to messages
  • Get user todo lists

Setup

Prerequisites

  • Python 3.13+
  • uv for dependency management
  • Webex account with API access

Installation

  1. Clone the repository

  2. Install dependencies using uv:

uv pip install -r requirements.txt

Or install directly from pyproject.toml:

uv pip install .
  1. Set up environment variables in .env file:
WEBEX_ACCESS_TOKEN=your_webex_api_token_here
WEBEX_DEFAULT_ROOM_ID=optional_default_room_id_for_simple_messages

# PostgreSQL Database Configuration
POSTGRES_DB=webex_mcp
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_HOST=localhost
POSTGRES_PORT=5432

You can obtain a Webex API token from the Webex Developer Portal.

  1. Set up PostgreSQL database:

    • Install PostgreSQL if not already installed
    • Create a database named webex_mcp (or use the name specified in your .env file)
    • Create the action_item table with the following schema:
CREATE TABLE action_item (
    message_id          TEXT PRIMARY KEY,
    room_id             TEXT NOT NULL,
    user_id             TEXT NOT NULL,
    user_email          TEXT NOT NULL,
    original_message    TEXT NOT NULL,
    timestamp           TIMESTAMPTZ NOT NULL,
    last_updated        TIMESTAMPTZ,
    status              VARCHAR(32),
    priority            VARCHAR(32),
    extracted_on        TIMESTAMPTZ,
    metadata            JSONB,
    action_item_to      TEXT
);

Usage

Start the server:

uv run python3 main.py

The server will run on http://127.0.0.1:8080 by default.

API Endpoints

Send Message

Send a simple message to the default room:

POST /send_message
Body: "Hello, world!"

Send a detailed message:

POST /send_message
Body: {
  "room_id": "Y2lzY29zcGFyazovL3VzL1JPT00vYmJjZWIxYWQtNDNmMS0zYjU4LTkxNDctZjE0YmIwYzRkMTU0",
  "text": "Hello, world!"
}
Schedule Meeting
POST /schedule_meeting
Body: {
  "title": "Project Status Meeting",
  "start": "2025-09-03T10:00:00Z",
  "end": "2025-09-03T11:00:00Z",
  "timezone": "UTC",
  "agenda": "Discuss project status and next steps",
  "invitees": ["person1@example.com", "person2@example.com"]
}
Update Meeting
POST /update_meeting
Body: {
  "meeting_id": "meeting_id_here",
  "meeting_details": {
    "title": "Updated Project Status Meeting",
    "start": "2025-09-03T11:00:00Z",
    "end": "2025-09-03T12:00:00Z"
  }
}
Cancel Meeting
POST /cancel_meeting
Body: {
  "meeting_id": "meeting_id_here"
}
Add Reminder to Message
POST /add_reminder
Body: {
  "message_id": "message_id_here"
}

This will add a reminder to an existing message by creating a reply with a reminder flag.

Get User Todo List
POST /get_user_todo_list
Body: {
  "user_email": "user@example.com"
}

Retrieves the todo list for the specified user from the PostgreSQL database. The todos are stored in the action_item table.

Development

This project uses:

  • FastMCP for the API server
  • Pydantic for data validation
  • WebexTeamsSDK for Webex API integration