---
name: webex-meetings
description: Use when the user wants to list, create, update, or delete Webex meetings, inspect meeting status or participants, retrieve summaries, list recordings, or access transcripts through Webex REST-backed MCP tools.
---

# Webex Meetings

Use the Webex MCP tools for Webex meetings, participants, summaries, recordings, and transcripts.

Hosted EzWebex persisted meeting tools:

- `ezwebex-list-meetings`
- `ezwebex-get-meeting`
- `ezwebex-refresh-meeting`
- `ezwebex-ask-meeting`
- `ezwebex-get-daily-brief`
- `ezwebex-search-meeting-artifacts`
- `ezwebex-get-meeting-artifact`
- `ezwebex-ask-meeting-artifact`
- `ezwebex-create-meeting-task-from-action`
- `ezwebex-create-artifact-task-from-action`
- `ezwebex-search-tasks`
- `ezwebex-get-task`

Native REST-backed live meetings tools:

- `webex-get-agenda`
- `webex-get-recent-meetings`
- `webex-find-meeting-series`
- `webex-prep-meeting-series`
- `webex-list-meetings`
- `webex-create-meeting`
- `webex-update-meeting`
- `webex-delete-meeting`
- `webex-get-meeting-status`
- `webex-get-meeting-summary`
- `webex-get-meeting-recap`
- `webex-list-recordings`
- `webex-get-recording-recap`
- `webex-list-transcripts`

## Setup Notes

- Authentication is handled by the local `webex` MCP proxy bundled with this plugin.
- On first tool discovery or use, the proxy opens a browser-based Webex sign-in flow through the hosted auth broker and listens on a localhost callback port.
- `WEBEX_MCP_AUTH_URL` can override the default CINT broker when testing another auth broker registered with the required Webex OAuth scopes. This repo includes a sample broker in `auth-broker/`.
- The proxy stores per-user OAuth tokens under `CODEX_HOME/webex-messaging/oauth-tokens.json` and refreshes them through the auth broker's `/refresh` endpoint.
- The hosted broker also requests `identity:people_read` for best-effort SCIM 2.0 person/org-hint reads. If a tool needs a missing scope, the proxy opens Webex re-auth once, keeps the old token until the new grant is valid, and suppresses repeat browser prompts when Webex does not grant the requested scope.
- The documented meetings scope string is:
  `spark:mcp meeting:schedules_read meeting:schedules_write meeting:participants_read meeting:admin_participants_read meeting:summaries_read meeting:recordings_read meeting:transcripts_read`
- Never ask the user to paste tokens into chat. Direct them to complete the Webex browser sign-in if authentication is needed.
- The current native meetings implementation calls Webex REST APIs directly through the local MCP proxy. Recording recap retrieval also calls the Webex User Hub recording-player endpoint for the signed-in user's site, because recording-generated AI notes, chapters, and action items can exist even when the public meeting summary API returns no items.

## Working Rules

- Prefer hosted EzWebex meeting tools for persisted owner-scoped meeting state. Use `ezwebex-list-meetings` for "meetings today", "upcoming meetings", status/artifact/prep filters, and `ezwebex-get-meeting` for meeting detail. Use `ezwebex-refresh-meeting` only when the user asks to refresh or current hosted state appears stale.
- For meeting prep prompts such as "what do I need to know before X", use `ezwebex-get-meeting`, `ezwebex-get-daily-brief`, processed artifacts, and `ezwebex-ask-meeting` before native Webex reads. Daily Brief prep is the curated briefing layer; hosted meetings are the meeting state layer.
- For completed-meeting questions, decisions, action items, "what did we decide", timestamp questions such as "minute 10", or transcript chat, call `ezwebex-ask-meeting` or `ezwebex-ask-meeting-artifact`; preserve transcript timestamps/source refs and normalized summary citations from hosted results. Use native Webex meeting APIs only when no hosted meeting/artifact exists or when the user explicitly wants live REST data.
- For broad date-window questions such as "what was discussed during my meetings yesterday" or "summarize last week's meetings", resolve the local date window, list hosted meetings with `ezwebex-list-meetings`, search processed artifacts with `ezwebex-search-meeting-artifacts`, fetch the selected meeting/artifact records, and call hosted Ask per high-signal completed meeting when needed. Synthesize the answer across meetings with citations and a coverage note for meetings that had no hosted artifact yet.
- For conclusions or tasks from a meeting, use hosted meeting/artifact Ask first. Promote concrete action items with `ezwebex-create-meeting-task-from-action` or `ezwebex-create-artifact-task-from-action`; then fetch or act on the created task with `ezwebex-get-task` and the digital-twin handoff/decision tools.
- For tasks already created from meetings, search with `ezwebex-search-tasks` using `sourceKind: "meeting"` or `meetingId`; fetch the selected task with `ezwebex-get-task`.
- Use native compact meeting workflow tools for live/ad hoc Webex REST reads: `webex-get-agenda` for raw calendar windows, `webex-get-recent-meetings` for just-ended meetings not yet in hosted state, `webex-find-meeting-series` for recurring series linkage, and `webex-prep-meeting-series` for recurring preparation when hosted state is incomplete.
- Prefer list/search tools before write tools when identifying the right meeting, recording, transcript, summary, or participant list. For a user's normal "get me the summary/transcript/recap for this meeting" request, prefer `webex-get-meeting-recap`; it tries meeting summaries and meeting transcripts first, then falls back to recording recap content when the meeting-level APIs are empty or unavailable.
- Meeting read tools opportunistically seed deterministic person-profile hints for hosts, invitees, and participants from data already returned. For meeting prep, recent-meeting follow-up, summaries, transcripts, or recurring-series preparation, also run the two-tier profile update model from `$webex-messaging` for the meeting host and up to 4 central participants when the retrieved evidence contains asks, commitments, decisions, ownership, project roles, or collaboration patterns worth preserving. Save only compact sourced memory, not raw transcript or message bodies. Pass `autoUpdatePersonProfiles: false` or `profileSeedMaxPeople: 0` for latency-sensitive internal reads.
- For upcoming schedules, prefer `meetingType: "scheduledMeeting"` through `webex-get-agenda`; raw `meetingSeries` records describe recurring series and can have base start dates outside the requested window.
- Before externally visible or destructive actions, summarize the exact target and content, then ask for confirmation. This includes creating, updating, or deleting meetings.
- When scheduling or updating meetings, confirm title, absolute date, time, timezone, duration, invitees, recurrence, password behavior, agenda, and whether invitations or cancellations will be emailed.
- For transcripts, summaries, recordings, and live participant lists, treat content as sensitive meeting data. If the user explicitly asks to retrieve, download, summarize, or share content for the latest/last matching meeting, their request is sufficient consent; identify the selected meeting in the response and proceed without a second confirmation. Ask for confirmation only when the target is ambiguous or the action is externally visible/destructive.
- Use absolute dates when discussing meeting time ranges or transcript/recording searches.

## Tool Families

The meetings tool family exposes compact workflow tools for agenda, recent meetings, series lookup, and series prep; raw tools for listing, creating, updating, and deleting meetings; checking meeting status and participants; retrieving Webex AI Assistant summaries; retrieving meeting recaps with automatic recording fallback; listing recordings; retrieving recording recaps with AI notes, chapters, and action items; and listing or downloading transcripts.

If an expected tool is unavailable, tell the user that the native tool may not have been implemented yet or the current OAuth grant may be missing required scopes.
