satheeshkumarvadivel/webex_mcp_server
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
-
Clone the repository
-
Install dependencies using uv:
uv pip install -r requirements.txt
Or install directly from pyproject.toml:
uv pip install .
- Set up environment variables in
.envfile:
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.
-
Set up PostgreSQL database:
- Install PostgreSQL if not already installed
- Create a database named
webex_mcp(or use the name specified in your.envfile) - Create the
action_itemtable 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