MeetStream MCP Server
OfficialServer Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DO_NOT_TRACK | No | Standard environment variable to disable telemetry; set to '1' to disable. | 0 |
| MEETSTREAM_API_KEY | Yes | Your MeetStream API key, sent as Authorization: Token <key> on every request. Create one at app.meetstream.ai/api-keys. | |
| MEETSTREAM_API_URL | No | Override the base URL (default https://api.meetstream.ai/api/v1) - useful for testing against a staging environment. | https://api.meetstream.ai/api/v1 |
| MEETSTREAM_TELEMETRY | No | Set to '0' to disable anonymous telemetry. Alternatively set DO_NOT_TRACK=1. | 1 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| create_botA | Send a MeetStream bot to a Zoom / Google Meet / Microsoft Teams meeting (or schedule it with join_at). Returns bot_id and (when a transcription provider is set) transcript_id. Set callback_url to receive lifecycle webhooks. |
| list_botsA | List all bots on the account (paginated: bots[], hasNextPage, nextCursor). |
| get_bot_statusB | Current bot status. Values: Joining, InWaitingRoom, InMeeting, Recording, Leaving, Stopped, NotAllowed, Denied, Error, Done. |
| get_bot_detailA | Full session metadata: platform, duration, timings, status timeline, transcript_id (canonical source), caption_file (for meeting_captions provider), original request payload. |
| get_bot_summaryB | MeetStream's built-in AI summary of the meeting (no external LLM needed). |
| remove_botA | Make the bot leave an active meeting now. Recorded data is KEPT (use delete_bot_data to erase). |
| delete_bot_dataA | PERMANENTLY delete a bot's audio, video, and transcripts. Irreversible — fires a data_deletion webhook. Only call when the user explicitly asks to delete data. |
| get_transcriptA | Fetch a bot's transcript by bot_id. Resolves transcript_id automatically (it is NOT in webhooks) via /detail → /transcriptions. Set wait=true to poll until ready (after transcription.processed fires). Segments have |
| list_transcriptionsA | All transcription runs for a bot: transcript_id, provider, status, presigned download_urls (valid 1h). |
| transcribe_audioB | Start a (re-)transcription of a bot's recorded audio with a chosen post-call provider. Useful to try a different provider or language after the meeting. |
| get_media_urlsA | Presigned S3 URLs for recorded media. kind=audio (valid 1h), video (valid 10min), audio_streams / video_streams (per-participant; require separate_*_streams at creation), screenshots. |
| get_participantsB | Participants detected in the meeting (displayName, fullName, status, stream ids). |
| get_chatsC | Chat messages captured during the meeting. |
| get_speaker_timelineB | Who spoke and when (chunk timeline with speaker ids/names). |
| send_chat_messageA | Post a chat message into the live meeting through the bot. |
| send_imageC | Display an image/GIF as the bot's video frame. img_url must be PUBLIC. |
| list_calendar_eventsC | Upcoming events from connected Google Calendars (connect via POST /calendar/create_calendar with google_client_id/secret/refresh_token — needs OAuth credentials, usually done once from the dashboard or CLI). |
| schedule_calendar_botB | action=schedule sends a bot to a specific calendar event; action=unschedule removes it. |
| webhook_events_guideA | Authoritative reference for MeetStream webhook events — envelope shape, full event list, two-layer bot.stopped model, streaming-provider caveats. Use this before writing any webhook handler. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 19 tools
Each tool targets a distinct resource or action: bot lifecycle (create, status, detail, summary, remove, delete), media/transcript retrieval (transcript, transcriptions, media urls), meeting content (participants, chats, speaker timeline), and live interaction (send chat/image). There is minor overlap between get_bot_status and get_bot_detail, but the difference (current status vs full metadata) is clear.
All tool names follow a consistent verb_noun pattern in snake_case: create_bot, get_bot_status, remove_bot, list_transcriptions, send_chat_message, etc. The only slight deviation is webhook_events_guide, but it's still a noun phrase and does not break the overall convention.
19 tools is above the typical 3-15 range, but the count is justified by the breadth of features: bot lifecycle, transcripts, media, participants, chat, calendar, and webhook guidance. It feels slightly heavy but each tool covers a distinct function and none are redundant.
The core meeting bot lifecycle is well covered: create, monitor, retrieve data, leave, delete, and interact. Minor gaps exist—there is no direct tool to create/connect calendar OAuth credentials (only list and schedule against existing connections), and no update/pause/resume bot action—but these can be worked around via the dashboard/CLI or by re-creating a bot.