← Back to directory
V

Vexa MCP Server

Official
Open-source meeting bots and real-time transcription for Google Meet, Teams and Zoom
GitHub source repository ↗
★ 2.8k Stars Category · Collaboration Very popular
57FMRS · C

Vexa is an upstream-maintained open-source meeting bot and transcription service offered as an MCP server over hosted streamable-http (https://api.cloud.vexa.ai/mcp) with a required Bearer Vexa API key. It brings real-time, speaker-attributed transcripts from Google Meet, Microsoft Teams and Zoom to AI agents, and supports fully self-hosted, Kubernetes and air-gapped deployment under Apache-2.0. It suits teams that want data sovereignty and want meetings compiled into a Markdown workspace they own; it does not suit users who only want hosted SaaS, or who depend on not-yet-wired features such as mid-call config, bot speech and WebSocket multiplexing. Watch API key handling, participant consent, and propose-only gating for untrusted agent input.

Reliability
9/20
Security and permissions
10/20
Maintenance
13/20
Documentation
14/20
Setup experience
11/20
Read the FMRS scoring method →

Vexa is an open-source meeting bot and transcription service. A bot joins Google Meet, Microsoft Teams and Zoom calls and streams speaker-attributed transcripts in real time. It exposes a Meetings API (send a bot, fetch transcripts, recordings) and an Agent API (workspace chat, cron routines, event-triggered dispatch), plus an MCP endpoint at /mcp on the gateway for AI agent clients. Run it self-hosted via Docker Compose or Helm on Kubernetes/OpenShift, or use the hosted service. Licensed Apache-2.0 and air-gap-ready.

Setup

  1. Hosted path: sign in at vexa.ai/signin and copy your API key from vexa.ai/account.
  2. Self-hosted path: clone https://github.com/Vexa-ai/vexa and run make all (pulls published images, seeds .env, prints your API key and URLs); make lite is a single-container option and make dev builds from the checkout.
  3. Transcription (STT) is required by default: use a free token from vexa.ai/account, or deploy the GPU transcription unit from deploy/transcription and point .env at it; without STT, POST /bots returns 503.
  4. Point your MCP client at https://api.cloud.vexa.ai/mcp for the hosted service, or the gateway's /mcp path when self-hosting, using the streamable-http transport.
  5. Auth header: Authorization: Bearer <Vexa API key> — required and secret.
  6. Beyond MCP you can call the gateway HTTP API directly using X-API-Key auth.

Fit and risk

Best for

  • Teams that want to self-host and fully own their meeting data and transcripts
  • Regulated organizations needing air-gapped meeting intelligence on their own infrastructure
  • Developers wiring meeting transcripts into their own AI agents and knowledge bases

Not for

  • Users who only want hosted SaaS and do not need self-hosting (agent-plane features are self-hosted only)
  • Users needing full mid-call bot control or TTS speech into calls (those endpoints return 404 in the open-core stack)
  • Scenarios requiring guaranteed speaker attribution (heavy crosstalk yields empty speakers on roughly 4–7% of rows)

Required permissions

  • A Vexa API key is required for the remote MCP endpoint (Authorization: Bearer header, secret)
  • HTTP API calls use the X-API-Key header
  • Self-hosting requires Docker (engine ≥ v26 recommended) or a Kubernetes/OpenShift cluster
  • Transcription requires an STT service or hosted token; recordings require object storage such as MinIO

Risks and side effects

  • A leaked API key lets someone send bots, read transcripts and dispatch agents as you
  • The bot joins calls as a visible participant, so participant knowledge and consent matter
  • Recordings and transcripts may contain sensitive content; self-hosting with your own storage controls the data boundary
  • Agents handling untrusted input (email, web pages) must run propose-only with human approval, otherwise writes can be irreversible
  • In the open-core stack, mid-call bot config and speak endpoints currently return 404 and should not be relied on

Troubleshooting

  1. POST /bots returns 503: transcription (STT) is likely unconfigured — supply a token, deploy the STT unit, or set transcribe_enabled=false for capture-only
  2. MCP connection fails: confirm streamable-http transport, the correct URL, and a valid API key in the Authorization: Bearer header
  3. Generic Agent API errors: verify X-API-Key auth; identity is derived server-side from your key
  4. Live transcripts: poll GET /transcripts/{platform}/{native_meeting_id}; WebSocket multiplex is still planned
  5. PUT /bots/{...}/config or POST /bots/{...}/speak returns 404: these capabilities are not yet wired in the open-core stack

Use cases

Have a bot auto-join Google Meet, Microsoft Teams or Zoom calls and read speaker-attributed transcripts live
Ask an agent about a live meeting using the live transcript plus your workspace as context
Generate a morning brief or post-meeting report through a scheduled (cron) routine
Dispatch a one-shot agent after a call for summaries, decisions and action items with owners
Triage incoming email via an event-triggered, read-only, propose-only agent flow
Browse and read your Markdown workspace (OKF kg/ bundle) for accumulated meeting knowledge

Supported clients

Claude CodePartial support
CodexPartial support