Skip to main content
Glama

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
WEBEX_ACCESS_TOKENYesYour Webex bot access token

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": true
}
prompts
{
  "listChanged": false
}
resources
{
  "subscribe": false,
  "listChanged": false
}
experimental
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
list_webex_roomsA

List Webex rooms that the authenticated bot belongs to.

Args: team_id: Optional team ID to filter rooms by team room_type: Optional room type filter ('direct' or 'group') sort_by: Optional sort order ('id', 'lastactivity', 'created') max_results: Optional maximum number of rooms to return (default 100, max 1000)

Returns: Standardized response dictionary with success/error information

create_webex_roomB

Create a new Webex room.

Args: title: Title of the room (required) team_id: Team ID to create room in (optional) classification_id: Classification for the room (optional) is_locked: Whether the room is locked (optional; same property as is_moderated) is_moderated: Whether the room is moderated (optional; same property as is_locked) is_public: Whether the room is public (optional) is_announcement_only: Whether only moderators can post (optional) description: Description of the room (optional)

Returns: Standardized response dictionary with success/error information

update_webex_roomA

Update an existing Webex room.

Args: room_id: Room ID to update (required) title: New title for the room (optional) classification_id: New classification for the room (optional) is_locked: Whether the room should be locked (optional; same property as is_moderated) is_moderated: Whether the room should be moderated (optional; same property as is_locked) is_public: Whether the room should be public (optional) is_announcement_only: Whether only moderators can post (optional) description: New description for the room (optional)

Returns: Standardized response dictionary with success/error information

get_webex_roomA

Get detailed information about a specific Webex room.

Args: room_id: Room ID to get details for (required)

Returns: Standardized response dictionary with success/error information

delete_webex_roomA

Delete a Webex room.

Args: room_id: Room ID to delete (required)

Returns: Standardized response dictionary with success/error information

list_webex_spacesA

List Webex spaces that the authenticated bot belongs to. Note: This is an alias for list_webex_rooms — "room" and "space" are synonymous in Webex.

Args: team_id: Optional team ID to filter spaces by team space_type: Optional space type filter ('direct' or 'group') sort_by: Optional sort order ('id', 'lastactivity', 'created') max_results: Optional maximum number of spaces to return (default 100, max 1000)

Returns: Standardized response dictionary with success/error information

create_webex_spaceA

Create a new Webex space. Note: This is an alias for create_webex_room — "room" and "space" are synonymous in Webex.

Args: title: Title of the space (required) team_id: Team ID to create space in (optional) classification_id: Classification for the space (optional) is_locked: Whether the space is locked (optional; same property as is_moderated) is_moderated: Whether the space is moderated (optional; same property as is_locked) is_public: Whether the space is public (optional) is_announcement_only: Whether only moderators can post (optional) description: Description of the space (optional)

Returns: Standardized response dictionary with success/error information

update_webex_spaceA

Update an existing Webex space. Note: This is an alias for update_webex_room — "room" and "space" are synonymous in Webex.

Args: space_id: Space ID to update (required) title: New title for the space (optional) classification_id: New classification for the space (optional) is_locked: Whether the space should be locked (optional; same property as is_moderated) is_moderated: Whether the space should be moderated (optional; same property as is_locked) is_public: Whether the space should be public (optional) is_announcement_only: Whether only moderators can post (optional) description: New description for the space (optional)

Returns: Standardized response dictionary with success/error information

get_webex_spaceB

Get detailed information about a specific Webex space. Note: This is an alias for get_webex_room — "room" and "space" are synonymous in Webex.

Args: space_id: Space ID to get details for (required)

Returns: Standardized response dictionary with success/error information

delete_webex_spaceA

Delete a Webex space. Note: This is an alias for delete_webex_room — "room" and "space" are synonymous in Webex.

Args: space_id: Space ID to delete (required)

Returns: Standardized response dictionary with success/error information

send_webex_messageB

Send a message to a Webex room or person.

Args: room_id: Room ID to send the message to (use this OR to_person_id/to_person_email) to_person_id: Person ID to send a direct message to to_person_email: Person email to send a direct message to text: Plain text message content markdown: Markdown formatted message content html: HTML formatted message content (for buttons/cards) files: URL to attach (single file URL as a string) parent_id: Parent message ID for threaded replies

Returns: Standardized response dictionary with success/error information

Examples: # Send to room result = send_webex_message( room_id="Y2lzY29zcGFyazovL3VzL1JPT00vYmJjZWIx", text="Hello team!" )

# Send direct message
result = send_webex_message(
    to_person_email="user@company.com",
    markdown="**Important update:** Please review the report"
)
send_webex_message_with_mentionsA

Send a message to a Webex room or person with proper mention support.

Args: room_id: Room ID to send the message to (use this OR to_person_id/to_person_email) to_person_id: Person ID to send a direct message to to_person_email: Person email to send a direct message to text: Plain text message content markdown: Markdown formatted message content html: HTML formatted message content (for buttons/cards) files: URL to attach (single file URL as a string) parent_id: Parent message ID for threaded replies mentions: List of mention dicts with keys: - type: "email", "person_id", or "all" - value: email address or person ID (not needed for "all") - display_name: optional display name

Returns: Standardized response dictionary with success/error information

list_webex_messagesB

List messages from a Webex room.

Args: room_id: Room ID to get messages from (required) mentioned_people: Person ID to filter messages that mention them before: Get messages before this date (ISO 8601 format) before_message: Get messages before this message ID max_results: Maximum number of messages to return (default 50, max 1000)

Returns: Standardized response dictionary with success/error information

delete_webex_messageA

Delete a Webex message.

Args: message_id: ID of the message to delete (required)

Returns: Standardized response dictionary with success/error information

update_webex_messageA

Edit an existing Webex message.

Only the bot or user that sent the original message may edit it. At least one of text or markdown must be provided.

Args: message_id: ID of the message to edit (required) text: New plain text content markdown: New markdown content

Returns: Standardized response dictionary with success/error information

get_webex_attachment_actionA

Retrieve the form data submitted when a user clicks an Adaptive Card button.

This MCP server makes outbound calls to Webex — it does NOT receive inbound webhook events. The action_id must be obtained externally: your own bot application (a separate HTTP server with a public HTTPS endpoint) receives the webhook POST from Webex, extracts the "id" field from the payload, and then supplies that action_id here so this tool can fetch the full submission.

Flow: 1. User clicks a card button in Webex. 2. Webex POSTs the event to your bot's registered webhook endpoint. 3. Your bot extracts action_id from payload["data"]["id"]. 4. Your bot (or an AI agent) calls this tool with that action_id. 5. This tool calls GET /attachment/actions/{id} and returns the inputs.

A webhook must be registered via create_webex_webhook with resource="attachmentActions" and event="created" for step 2 to occur — without it, card submissions are silently dropped by Webex.

Args: action_id: ID of the attachment action to retrieve (required). Comes from payload["data"]["id"] in the webhook POST your bot application receives from Webex.

Returns: Standardized response dictionary with success/error information. The data dict contains the submitted form inputs under the "inputs" key, along with the associated messageId, roomId, and personId.

send_webex_space_messageA

Send a message to a Webex space or person. Note: This is an alias for send_webex_message — "room" and "space" are synonymous in Webex.

Args: space_id: Space ID to send the message to (use this OR to_person_id/to_person_email) to_person_id: Person ID to send a direct message to to_person_email: Person email to send a direct message to text: Plain text message content markdown: Markdown formatted message content html: HTML formatted message content (for buttons/cards) files: URL to attach (single file URL as a string) parent_id: Parent message ID for threaded replies

Returns: Standardized response dictionary with success/error information

list_webex_space_messagesA

List messages from a Webex space. Note: This is an alias for list_webex_messages — "room" and "space" are synonymous in Webex.

Args: space_id: Space ID to get messages from (required) mentioned_people: Person ID to filter messages that mention them before: Get messages before this date (ISO 8601 format) before_message: Get messages before this message ID max_results: Maximum number of messages to return (default 50, max 1000)

Returns: Standardized response dictionary with success/error information

send_webex_adaptive_cardA

Send an Adaptive Card message to a Webex room or person.

Adaptive Cards are rich, interactive message attachments. Clients that do not support cards will display fallback_text instead.

IMPORTANT — Webhook limitation: Card action submissions (Action.Submit) are delivered to the bot only if a webhook is registered for the "attachmentActions" resource on the Webex platform. Without that webhook, submissions are silently dropped and the bot never receives them. Inform the user of this limitation whenever the card includes interactive actions. To receive submissions, a webhook must be created at developer.webex.com or via the Webex Webhooks API targeting the bot's public HTTPS endpoint.

Args: room_id: Room ID to send the card to (use this OR to_person_id/to_person_email) to_person_id: Person ID to send a direct card to to_person_email: Person email to send a direct card to card_body: List of Adaptive Card body elements (required, non-empty). Each element must have a "type" field (e.g. "TextBlock", "Image", "ColumnSet"). Use build_webex_adaptive_card to generate this from high-level inputs. fallback_text: Plain-text fallback shown to clients that do not support cards (required) card_actions: Optional list of action objects (Action.OpenUrl, Action.Submit, etc.) card_version: Adaptive Card schema version — one of "1.0", "1.1", "1.2", "1.3" (default "1.3") parent_id: Parent message ID for threaded replies

Returns: Standardized response dictionary with success/error information

Examples: result = send_webex_adaptive_card( room_id="Y2lzY29zcGFyazovL3VzL1JPT00v...", fallback_text="Build passed", card_body=[ {"type": "TextBlock", "text": "Build Passed", "weight": "Bolder", "size": "Medium"}, {"type": "TextBlock", "text": "All 42 tests green", "color": "Good"}, ], card_actions=[ {"type": "Action.OpenUrl", "title": "View Logs", "url": "https://ci.example.com"} ], )

send_webex_space_adaptive_cardA

Send an Adaptive Card to a Webex space or person. Note: This is an alias for send_webex_adaptive_card — "room" and "space" are synonymous in Webex.

IMPORTANT — Webhook limitation: Card action submissions (Action.Submit) are delivered to the bot only if a webhook is registered for the "attachmentActions" resource on the Webex platform. Without that webhook, submissions are silently dropped and the bot never receives them. Inform the user of this limitation whenever the card includes interactive actions.

Args: space_id: Space ID to send the card to (use this OR to_person_id/to_person_email) to_person_id: Person ID to send a direct card to to_person_email: Person email to send a direct card to card_body: List of Adaptive Card body elements (required, non-empty) fallback_text: Plain-text fallback for clients that do not support cards (required) card_actions: Optional list of action objects card_version: Adaptive Card schema version — "1.0", "1.1", "1.2", or "1.3" (default "1.3") parent_id: Parent message ID for threaded replies

Returns: Standardized response dictionary with success/error information

build_webex_adaptive_cardA

Build an Adaptive Card from high-level inputs without hand-crafting the schema.

Returns card_body and card_actions ready to pass directly to send_webex_adaptive_card. Makes no API calls — pure construction only.

Args: title: Card title displayed as bold text (required) body_text: Optional body paragraph displayed below the title/subtitle subtitle: Optional subtitle displayed below the title in muted text image_url: Optional image URL displayed in the card facts: Optional list of {"title": "...", "value": "..."} key-value pairs displayed as a FactSet table actions: Optional list of action dicts. Each must have "type" ("url" or "submit") and "title". URL actions also need "url"; submit actions accept optional "data". Example: [{"type": "url", "title": "Open", "url": "https://example.com"}] style: Container accent color — "default", "emphasis", "good", "warning", or "attention"

Returns: Dict with "card_body" and "card_actions" keys ready for send_webex_adaptive_card, or a standardized error response dict if validation fails.

Examples: card = build_webex_adaptive_card( title="Deployment Complete", subtitle="Production • v2.3.1", body_text="All health checks passed.", facts=[{"title": "Region", "value": "us-east-1"}, {"title": "Duration", "value": "4m 12s"}], actions=[{"type": "url", "title": "View Dashboard", "url": "https://dash.example.com"}], style="good", ) result = send_webex_adaptive_card(room_id="...", fallback_text="Deployment Complete", **card)

list_webex_membershipsC

List memberships for a room or person.

Args: room_id: Room ID to get memberships for person_id: Person ID to get memberships for person_email: Person email to get memberships for max_results: Maximum number of memberships to return (default 100, max 1000)

Returns: Standardized response dictionary with success/error information

add_webex_membershipC

Add a person to a Webex room.

Args: room_id: Room ID to add person to (required) person_id: Person ID to add (use this OR person_email) person_email: Person email to add (use this OR person_id) is_moderator: Whether to make the person a moderator (optional)

Returns: Standardized response dictionary with success/error information

update_webex_membershipA

Update an existing Webex membership (change moderator/monitor status).

Args: membership_id: Membership ID to update (required) is_moderator: Whether the person should be a moderator (optional) is_monitor: Whether the person should be a monitor (optional)

Returns: Standardized response dictionary with success/error information

delete_webex_membershipA

Remove a person from a Webex room by deleting their membership.

Args: membership_id: Membership ID to delete (required). Use list_webex_memberships to find the membership ID for a person in a room.

Returns: Standardized response dictionary with success/error information

list_webex_space_membershipsA

List memberships for a space or person. Note: This is an alias for list_webex_memberships — "room" and "space" are synonymous in Webex.

Args: space_id: Space ID to get memberships for person_id: Person ID to get memberships for person_email: Person email to get memberships for max_results: Maximum number of memberships to return (default 100, max 1000)

Returns: Standardized response dictionary with success/error information

add_webex_space_membershipA

Add a person to a Webex space. Note: This is an alias for add_webex_membership — "room" and "space" are synonymous in Webex.

Args: space_id: Space ID to add person to (required) person_id: Person ID to add (use this OR person_email) person_email: Person email to add (use this OR person_id) is_moderator: Whether to make the person a moderator (optional)

Returns: Standardized response dictionary with success/error information

get_webex_meA

Get information about the authenticated Webex bot.

Returns: Standardized response dictionary with success/error information

list_webex_peopleA

List people in the organization or search for specific people.

Args: email: Email address to search for display_name: Display name to search for person_id: Person ID to look up a specific person org_id: Organization ID to filter by calling_data: Include calling data in response location_id: Location ID to filter by max_results: Maximum number of people to return (default 100, max 1000)

Returns: Standardized response dictionary with success/error information

list_webex_teamsA

List Webex teams the bot belongs to.

Bot access note: only teams the bot has been explicitly added to are returned. If the list is empty, a human user must invite the bot to one or more teams first. Teams cannot be created by a bot — use a user/integration token for that.

Args: display_name: Filter teams by display name (optional) max_results: Maximum number of teams to return (default 100, max 1000)

Returns: Standardized response dictionary with success/error information

get_webex_teamA

Get detailed information about a specific Webex team.

Bot access note: the bot must be a member of the team. If the team exists but the bot has not been added to it, this will return a not-found error.

Args: team_id: Team ID to get details for (required)

Returns: Standardized response dictionary with success/error information

update_webex_teamA

Update an existing Webex team's name and/or description.

Bot access note: the bot must be a team moderator. If the bot is only a regular member, this operation will fail with a forbidden error.

Args: team_id: Team ID to update (required) name: New name for the team (optional) description: New description for the team (optional)

Returns: Standardized response dictionary with success/error information

delete_webex_teamA

Delete a Webex team.

Bot access note: the bot must be a team moderator. If the bot is only a regular member, this operation will fail with a forbidden error.

Args: team_id: Team ID to delete (required)

Returns: Standardized response dictionary with success/error information

list_webex_team_membershipsA

List members of a Webex team.

Bot access note: the bot must be a member of the team. If the bot has not been added to the team, this will return a not-found error.

Args: team_id: Team ID to list members for (required) max_results: Maximum number of memberships to return (default 100, max 1000)

Returns: Standardized response dictionary with success/error information

add_webex_team_membershipA

Add a person to a Webex team.

Bot access note: the bot must be a team moderator to add members. If the bot is only a regular member, this operation will fail with a forbidden error.

Args: team_id: Team ID to add person to (required) person_id: Person ID to add (use this OR person_email) person_email: Person email to add (use this OR person_id) is_moderator: Whether to make the person a team moderator (optional)

Returns: Standardized response dictionary with success/error information

delete_webex_team_membershipA

Remove a person from a Webex team by deleting their team membership.

Bot access note: the bot must be a team moderator to remove members. If the bot is only a regular member, this operation will fail with a forbidden error. Use list_webex_team_memberships to find the membership ID for a person.

Args: membership_id: Team membership ID to delete (required)

Returns: Standardized response dictionary with success/error information

webex_health_checkA

Validate Webex connectivity and return a structured diagnostic status.

Checks the bot token (identity + API reachability) and, optionally, lists visible rooms to confirm room-access permissions. Designed for agents that need to self-diagnose before starting a workflow.

Args: include_rooms: When True (default), also verify room-list access.

Returns: Standardized success response whose data contains: - overall_status: "healthy", "degraded", or "unhealthy" - checks: per-check result dicts keyed by check name - duration_ms: total wall-clock time for all checks - server_version: running MCP server version - python_version: Python interpreter version string

``overall_status`` is "healthy" when all checks pass, "unhealthy" when
the token check fails, and "degraded" when the token is valid but a
secondary check (e.g. rooms) errors.
list_webex_webhooksC

List all webhooks registered to the bot.

Args: max_results: Maximum number of webhooks to return (default 100, max 100)

Returns: Standardized response dictionary with success/error information

create_webex_webhookA

Register a new webhook with the Webex API.

Args: name: A user-friendly name for the webhook (required) target_url: The URL that receives POST requests from Webex (required). Must be a publicly reachable HTTPS endpoint. resource: The Webex resource type to watch (required). Valid values: - "messages" — message events in a room - "rooms" — room created/updated/deleted - "memberships" — room membership changes - "attachmentActions" — Adaptive Card form submissions - "meetings" — meeting lifecycle events event: The event type to listen for (required). Valid values: - "created" — resource was created - "updated" — resource was updated - "deleted" — resource was deleted - "all" — all event types for the resource filter: Optional filter expression to narrow the events received, e.g. "roomId=" for message events in a specific room secret: Optional secret used by Webex to sign webhook payloads (X-Spark-Signature header). Use this to verify authenticity.

Returns: Standardized response dictionary with success/error information

get_webex_webhookB

Get details for a specific webhook.

Args: webhook_id: The webhook ID to retrieve (required)

Returns: Standardized response dictionary with success/error information

update_webex_webhookA

Update an existing webhook.

The Webex API requires both name and target_url on every update, even when only one field is changing.

Args: webhook_id: The webhook ID to update (required) name: Updated display name for the webhook (required by Webex API) target_url: Updated HTTPS target URL (required by Webex API) secret: Updated signing secret (optional); pass an empty string to clear it status: Updated status — "active" to re-enable or "inactive" to disable (optional)

Returns: Standardized response dictionary with success/error information

delete_webex_webhookA

Delete a webhook by ID.

Args: webhook_id: The webhook ID to delete (required). Use list_webex_webhooks to find the webhook ID.

Returns: Standardized response dictionary with success/error information

Prompts

Interactive templates invoked by user choice

NameDescription
webex-send-announcementSend an announcement to a Webex room
webex-create-team-roomCreate a new team room with proper setup
webex-bulk-messageSend messages to multiple rooms or people
webex-room-managementComprehensive room management workflow
webex-incident-responseCreate incident response room and coordinate team response
webex-bot-health-checkComprehensive bot health and capability assessment
webex-compliance-auditAudit bot usage for compliance and governance
webex-design-adaptive-cardDesign and send an Adaptive Card for a specific use case
webex-handle-card-submissionProcess an Adaptive Card form submission received by the bot application
webex-edit-messageCorrect or update an existing Webex message by its ID
webex-setup-webhookRegister a new Webex webhook for a specific resource and event
webex-rotate-webhook-secretRotate the signing secret on an existing Webex webhook
webex-audit-webhooksAudit all registered webhooks and surface cleanup recommendations

Resources

Contextual data attached and managed by the client

NameDescription
webex_getting_startedGetting started guide for Webex Bot MCP
webex_message_formattingGuide for formatting Webex messages
webex_adaptive_cards_guideGuide for creating and sending Adaptive Cards in Webex
webex_teams_guideBot access model and guidance for Webex Teams tools
webex_current_configCurrent Webex bot configuration and status
webex_troubleshootingCommon issues and troubleshooting guide
webex_security_best_practicesSecurity best practices for Webex bot deployment
webex_use_casesReal-world use cases and implementation examples
server_versionServer version and compatibility information
changelogVersion changelog and migration guide
tools_schemaComplete schema documentation for all available tools
error_codes_referenceComplete reference for all error codes

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/WebexCommunity/webex-bot-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server