MCP Server / vexa
vexa
Open-source meeting transcription API for Google Meet, Microsoft Teams & Zoom. Auto-join bots, real-time WebSocket transcripts, MCP server for AI agents. Self-host or use hosted SaaS.
Transport
Tools (1)
Command
What you get
Dokumentation
Vexa is an open-source, self-hostable meeting bot API and meeting transcription API for Google Meet, Microsoft Teams, and Zoom. Alternative to Recall.ai, Otter.ai, and Fireflies.ai — self-host so meeting data never leaves your infrastructure, or use vexa.ai hosted.
Data sovereignty — self-host so meeting data never leaves your infrastructure
Cost — replace $20/seat SaaS with your own infrastructure
Embed in your product — multi-tenant meeting bot API with scoped tokens
AI agents — MCP server with 17 tools
Capabilities
| | | | --- | --- | | Meeting bot API | Send a bot to any meeting: auto-join, record, speak, chat, share screen. Open-source alternative to Recall.ai. | | Meeting transcription API | Real-time transcripts via REST API and WebSocket. Self-hosted alternative to Otter.ai and Fireflies.ai. | | Real-time transcription | Sub-second per-speaker transcripts during the call. 100+ languages via Whisper. WebSocket streaming. | | Interactive bots | Make bots speak, send/read chat, share screen content, and set avatar in live meetings. | | Browser bots | CDP + Playwright browser automation with persistent authenticated sessions via S3. | | MCP server | 17 meeting tools for Claude, Cursor, Windsurf. AI agents join calls, read transcripts, speak in meetings. | | Multi-tenant | Users, scoped API tokens, isolated containers. Deploy once, serve your team. | | Dashboard | Open-source Next.js web UI — meetings, transcripts, agent chat, browser sessions. Ready to use out of the box. | | Self-hostable | Run on your infra. Meeting data never leaves your infrastructure. |
Every feature is a separate service. Pick what you need, skip what you don't. Self-host everything or use vexa.ai hosted.
Why Self-Host Meeting Transcription?
For regulated industries — banks, financial services, healthcare — meeting data can't leave your infrastructure. Self-hosting Vexa means zero external data transmission and full audit trail on your own infrastructure.
For cost-conscious teams — replace per-seat SaaS pricing. A team paying $17/seat/mo for meeting transcription can self-host Vexa and drop that to infrastructure cost.
For developers — embed a meeting bot API in your product. Multi-tenant, scoped API tokens, no per-user infrastructure.
Build meeting assistants like Otter.ai, Fireflies.ai, or Fathom — or build a meeting bot API like Recall.ai — self-hosted on your infrastructure.
- Vexa (self-host) — your infra cost. Data never leaves your infrastructure. Meeting bot API, real-time transcription, interactive bots, MCP server. Open source, Apache 2.0. Google Meet, Teams, Zoom*.
- Recall.ai — $0.50/hr. No self-hosting. Meeting bot API, real-time transcription. No MCP, limited interactive bots. Closed source. Meet, Teams, Zoom, Webex.
- Otter.ai — $17-20/seat/mo. No self-hosting. No API. Limited real-time transcription. Closed source. Meet, Teams, Zoom.
* Zoom support is experimental
Or use vexa.ai hosted — get an API key and start sending bots immediately, no infrastructure needed.
Built for Data Sovereignty
Meeting data never leaves your infrastructure. Self-host for complete control. Modular architecture scales from edge devices to millions of users.
1. Hosted service At vexa.ai — get an API key and start sending bots. No infrastructure needed. Ready to integrate
2. Self-host with Vexa transcription Run Vexa yourself, use vexa.ai for transcription — ready to go, no GPU needed. Control with minimal DevOps — see deploy/ for setup guides.
3. Fully self-host Run everything including your own GPU transcription service. Meeting data never leaves your infrastructure — see deploy/ for setup guides.
What's new
v0.10 — full architecture refactor
- Services refactored — runtime-api as infrastructure layer (container orchestration), meeting-api as data layer, agent-api as high-level intelligence layer. Clean separation of concerns.
- Real-time pipeline moved into bots — transcription pipeline now runs inside bot containers, eliminating external dependencies
- Agent API (experimental) — ephemeral containers for AI agents. See services/agent-api/.
- Helm/K8s — production Kubernetes deployment with built images and global.imageTag support
v0.9
- Zoom (experimental) — initial Zoom Meeting SDK support
- Interactive Bots API — speak, chat, screen share, avatar controls during live meetings
- MCP server — 17 tools for AI agents
- Recordings — S3-compatible storage
See full release notes: https://github.com/Vexa-ai/vexa/releases
Quickstart
Self-host with Docker
On a fresh Linux machine (Ubuntu 24.04):
apt-get update && apt-get install -y make git curl
curl -fsSL https://get.docker.com | sh
git clone https://github.com/Vexa-ai/vexa.git && cd vexa
Then choose:
| Command | What you get | Best for |
| ------------ | -------------------------------- | --------------------------- |
| make lite | Single container, all services | Quick evaluation, small teams |
| make all | Full stack, each service separate | Development, production |
Both prompt for a transcription token on first run. Get one at staging.vexa.ai/dashboard/transcription, or self-host transcription with a GPU.
Guides: Vexa Lite | Docker Compose | Helm (K8s)
Hosted (no deployment needed)
Get your API key at vexa.ai/dashboard/api-keys and start sending bots immediately.
Meeting API — Send Bots, Get Transcripts
Send a bot, get real-time transcripts with per-speaker audio and interactive controls (speak, chat, share screen).
# Send a bot to Google Meet
curl -X POST "$API_BASE/bots" \
-H "Content-Type: application/json" \
-H "X-API-Key: <API_KEY>" \
-d '{"platform": "google_meet", "native_meeting_id": "abc-defg-hij"}'
# Get transcripts
curl -H "X-API-Key: <API_KEY>" \
"$API_BASE/transcripts/google_meet/abc-defg-hij"
Works with Google Meet, Microsoft Teams, and Zoom. Set API_BASE to https://api.cloud.vexa.ai (hosted) or http://localhost:8056 (self-hosted).
For real-time WebSocket streaming, see the WebSocket guide. For full REST details, see the User API Guide.
Browser Bots — Persistent Browser Containers for Agents
Remote browser containers with CDP + Playwright access and persistent session storage via S3. Agents get a real browser that stays logged in across restarts — Google, Microsoft, or any web session.
- CDP + Playwright — full browser automation via Chrome DevTools Protocol
- Persistent sessions — authenticated browser state saved to S3, restored on next spin-up
- VNC access — humans can observe and control the browser in real time alongside agents
- On-demand containers — spin up in seconds, auto-reclaim when idle
See features/browser-session/ and features/remote-browser/ for details.
MCP Server — Meeting Tools for AI Agents
17 tools that let AI agents join meetings, read transcripts, speak, chat, and share screen. Works with Claude, Cursor, Windsurf, and any MCP-compatible client.
Your AI agent can join a meeting, listen to the conversation, and participate — all through MCP tool calls. See services/mcp/ for setup and tool reference.
Modular — Pick What You Need
Vexa is a toolkit, not a monolith. Every feature works independently. Use one or all — they compose when you need them to.
| You're building... | Features you need | Skip the rest | | --- | --- | --- | | Self-hosted Otter replacement | transcription + multi-platform + webhooks | agent runtime, scheduler, MCP | | Meeting data pipeline | transcription + webhooks + post-meeting | speaking-bot, chat, agent runtime | | AI meeting assistant product | transcription + MCP + speaking-bot + chat | remote-browser, scheduler | | Meeting bot API (like Recall.ai) | multi-platform + transcription + token-scoping | agent runtime, workspaces |
You don't pay complexity tax for features you don't use. Each service is a separate container. Don't need agents? Don't run agent-api. Don't need TTS? Don't run tts-service. Services communicate via REST and Redis, not tight coupling.
Roadmap
For the up-to-date roadmap and priorities, see GitHub Issues and Milestones. Issues are grouped by milestones to show what's coming next, in what order, and what's currently highest priority.
- Issues: https://github.com/Vexa-ai/vexa/issues
- Milestones: https://github.com/Vexa-ai/vexa/milestones
For discussion/support, join our Discord.
Architecture & Feature Status
Each service and feature has its own README with architecture, DoD table, and evidence-based confidence scores.
- Services: api-gateway • meeting-api • admin-api • runtime-api • vexa-bot • transcription-service • tts-service • mcp • dashboard • agent-api (experimental)
- Features: realtime-transcription • bot-lifecycle • browser-session • remote-browser • speaking-bot • meeting-chat • webhooks • authenticated-meetings
- Deploy: Docker Compose • Vexa Lite • Helm/K8s
- Guides: Vexa Lite Deployment • Docker Compose Deployment • Self-Hosted Management • Recording Storage
Contributing
We use GitHub Issues as our main feedback channel — triaged within 72 hours. Look for good-first-issue to get started. Join Discord to discuss ideas and get assigned.
Links
Website • Docs • Discord • LinkedIn • X (@grankin_d) • Meet Founder
Related: vexa-lite-deploy • Vexa Dashboard