Skip to main content
The MCP server runs as its own service and is fronted by the gateway at /mcp — on the hosted service at https://api.cloud.vexa.ai/mcp, on Kubernetes, and on self-hosted Docker Compose from 0.12.18 onward.

Hosted and self-hosted do not carry the same tools

The eleven hosted-only tools are in no open-source release or tag today. If you self-host, plan on the ten.

Fastest path on the hosted service

Open vexa.ai/connect, sign in, copy the prompt into your agent; it mints a key and configures the client for you. The prompt is valid for five minutes.

What it is

An MCP client — Claude Desktop, an IDE, any MCP-compatible agent — gets Vexa’s meeting capabilities as standard MCP tools and prompts, with no bespoke API integration. The service is a stateless FastAPI app whose routes are the tools. Every tool call forwards the caller’s credential to the gateway as X-API-Key, and the gateway resolves the key and enforces scopes. It holds no credentials and touches no database.

Tools

In both — hosted and self-hosted (10)

Hosted only (11)

Four more meeting tools: And seven flows tools: speak_in_meeting is irreversible and visible to real people in a real conversation. Call it only when the person you work for has asked you to say that thing.

Prompts

Four, on both: vexa.meeting_prep · vexa.during_meeting · vexa.post_meeting · vexa.teams_link_help.

Connect a client

Point the client at the gateway, not at the MCP service’s own port — the gateway is the authenticated front door. Don’t have a key yet? Hosted: sign in at vexa.ai/signin with a Google account and copy your key from your account page — free credit, no card required. Self-hosted: make all prints a key when the stack comes up. Claude Code, as a plugin — the repository is a plugin marketplace; the plugin carries the server config and two skills (meetings, setup), and asks for your key on install:
Claude Code plugin
Every client below takes the remote URL and a bearer header natively — no bridge process. Use the hosted URL, or your own gateway’s /mcp (Docker Compose: http://localhost:18056/mcp).
Claude Code
Codex CLI
Cursor (.cursor/mcp.json)
Gemini CLI
Windsurf (mcp_config.json — the key is serverUrl)
Merge into a config file that already has other servers; do not overwrite it. Or skip all of this: vexa.ai/connect hands your agent a prompt that registers the server itself. Clients that cannot send a header (Claude Desktop and other GUI clients) go through the mcp-remote bridge instead:
Claude Desktop (mcp-remote bridge)
(The header value goes through env because mcp-remote mangles spaces inside args on some clients — its README’s own workaround.) Self-hosted compose requires 0.12.18 or later — that is the release in which the gateway began fronting /mcp. 18056 is the compose API_GATEWAY_HOST_PORT. The key may arrive as X-API-Key or as the MCP transport’s Authorization: Bearer <key>; both are forwarded on. Auth at the edge is fail-closed and identical to every other route (Authentication).
The MCP service also publishes a direct host port (127.0.0.1:18010 by default) for local debugging. It bypasses the gateway, and therefore bypasses authentication. Do not expose it.

How the transport is forwarded

The two legs of streamable HTTP are forwarded differently, and the difference is the point (#795): Buffering the GET leg is what produced the original failure: the proxy waits on the next body read of a healthy-but-silent stream, hits its read timeout, and manufactures a 503 the MCP service never sees.

What is not available

  • Tools blocked on API parity, on hosted and self-hosted alike — these wrap REST routes the public API does not expose yet, and will be ported when the routes land: delete_recording · get_recording_media_download · get_recording_config / update_recording_config · create_transcript_share_link · delete_meeting · get_meeting_bundle.
The live status row for this feature is maintained on Roadmap → Status.