MeetStream

io.github.meetstream-ai由 GitHub 帳號 meetstream-ai 發布v0.3.0更新於 Oct 24, 2026

Meeting bots for Zoom, Google Meet and Teams: record, transcribe, summarize, run voice agents.

發布方自己的服務:Stream Estate

已驗證Streamable HTTP可網頁執行效率與工作流溝通與協作媒體與設計

概覽

AI 產生的概覽

託管版 MeetStream 伺服器,讓助理把會議機器人送進 Zoom、Google Meet 和 Teams,進行錄製、轉錄、摘要與即時互動。

可以做什麼
  • 建立、排程、列出、檢視與移除會議機器人,並刪除其錄製資料
  • 取得轉錄文字、列出轉錄作業,並以指定服務商重新轉錄錄音
  • 取得帶簽章的媒體連結、與會者、會議中聊天訊息和發言時間軸
  • 透過機器人在進行中的會議裡張貼聊天訊息、顯示圖片
  • 列出已連結的 Google 日曆活動,並為活動排程或取消機器人
  • 回傳 webhook 事件參考,供撰寫處理程式時使用
適用情境
適合讓助理代替你參加真實會議:錄下通話、會後取得轉錄或 AI 摘要、在會議進行中投放訊息或圖片,或依已連結的日曆安排機器人。
執行需求
遠端 Streamable HTTP 端點 mcp.meetstream.ai,本機無需安裝。需要 MeetStream 帳號,並透過用戶端完成 OAuth 登入,或使用以 Authorization 承載權杖(或 X-MeetStream-Api-Key 標頭)傳送的 API 金鑰。日曆工具需先連結 Google 日曆。
安裝前請注意
機器人會加入、錄製並轉錄真實會議,需留意與會者知情與同意。delete_bot_data 會永久刪除音訊、影片與轉錄內容,需 confirm: true。send_chat_message 與 send_image 會在會議中公開可見。API 金鑰可存取帳號,建議優先使用 OAuth 或標頭,避免把金鑰放進 URL。託管伺服器會記錄匿名的工具呼叫次數。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 MeetStream,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.meetstream-ai%2Fmeetstream-mcp/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "meetstream": {
      "type": "http",
      "url": "https://mcp.meetstream.ai/mcp"
    }
  }
}

README

MeetStream MCP Server

Give Claude - or any MCP-compatible client - direct access to the MeetStream meeting-bot API. Add one URL, sign in, and your assistant can run the full bot lifecycle (create, record, transcribe, summarize, interact live, manage calendar auto-join) through 19 tools.

https://mcp.meetstream.ai/mcp

MeetStream hosts the server. There is nothing to install or run on your machine, and it is always the current version.

Quick start

[Connect MeetStream in 4 steps: add the URL, click Connect, sign in and click Allow, then ask]

  1. Add https://mcp.meetstream.ai/mcp to your AI tool. Do not add a key.
  2. Click Connect (in Claude Code: run /mcp, then choose Authenticate). Your browser opens app.meetstream.ai.
  3. Sign in to MeetStream, then click Allow. MeetStream creates an API key for this connection. You do not see or copy the key.
  4. Ask your AI tool: "list my meetstream bots". A list, or an empty list, means that you are connected.

The exact steps for each tool are in Connect.

Which URL to use

URLUse it for
https://mcp.meetstream.ai/mcpAll current clients. Streamable HTTP. The replies stream as server-sent events (SSE), so you do not need a separate SSE setting.
https://mcp.meetstream.ai/sseOnly clients that support just the older HTTP+SSE transport (2024-11-05). The sign-in and the API key work the same way.
Your AI tool ──HTTPS + OAuth sign-in──► mcp.meetstream.ai ──► api.meetstream.ai

The old npm package @meetstream/mcp (npx @meetstream/mcp) is frozen at 0.3.0 and no longer maintained. It predates the current create_bot defaults and fixes. Use the hosted URL instead.


Connect

Add the URL with no key. Your client finds MeetStream's sign-in, opens app.meetstream.ai in your browser, and you click Allow. The dashboard creates an API key for that connection, named MCP · <app name> · <date> · <number>. To disconnect, delete that key on the API keys page.

This is the page that opens in your browser. If you are not signed in to MeetStream, you sign in first, then you see this page:

[MeetStream consent page: Connect Claude Code to MeetStream, with Cancel and Allow buttons]

The page shows the name of the app that asked to connect. If you do not recognize the app, click Cancel. The sign-in link is valid for 15 minutes.

Claude Code

bash
claude mcp add --transport http meetstream https://mcp.meetstream.ai/mcp# then run /mcp in Claude Code and choose Authenticate

Claude (web and desktop)

Customize → Connectors → + → Add custom connector. Name it meetstream, set the URL to https://mcp.meetstream.ai/mcp, leave the OAuth fields blank, and click Connect.

Cursor

~/.cursor/mcp.json (or install the MeetStream Cursor plugin), then click Connect next to meetstream in Cursor Settings → MCP:

json
{  "mcpServers": {    "meetstream": { "url": "https://mcp.meetstream.ai/mcp" }  }}

VS Code

.vscode/mcp.json, then start the server and sign in when VS Code asks:

json
{  "servers": {    "meetstream": { "type": "http", "url": "https://mcp.meetstream.ai/mcp" }  }}

Windsurf

~/.codeium/windsurf/mcp_config.json. Cascade asks you to sign in on first use. If your Windsurf version cannot finish the sign-in, use an API key header (below):

json
{  "mcpServers": {    "meetstream": { "serverUrl": "https://mcp.meetstream.ai/mcp" }  }}

Codex

~/.codex/config.toml, then run codex mcp login meetstream:

toml
[mcp_servers.meetstream]url = "https://mcp.meetstream.ai/mcp"

Any other MCP client

Point it at https://mcp.meetstream.ai/mcp as a remote (Streamable HTTP) server. Clients that support MCP authorization sign in by themselves: protected resource metadata (RFC 9728), authorization server metadata (RFC 8414), dynamic client registration (RFC 7591) and the authorization code flow with PKCE. Access tokens last an hour and refresh automatically.

Or use an API key

For clients without OAuth, or for scripts and CI, create a key at app.meetstream.ai/api-keys and send it as a header:

json
{  "mcpServers": {    "meetstream": {      "url": "https://mcp.meetstream.ai/mcp",      "headers": { "Authorization": "Bearer ms_YOUR_API_KEY" }    }  }}
  • Claude Code: claude mcp add --transport http meetstream https://mcp.meetstream.ai/mcp --header "Authorization: Bearer $MEETSTREAM_API_KEY"
  • Codex: add bearer_token_env_var = "MEETSTREAM_API_KEY" to the [mcp_servers.meetstream] block.
  • X-MeetStream-Api-Key: <key> works too. For connector UIs that cannot set headers, https://mcp.meetstream.ai/mcp?key=<key>. The server never logs query strings, but a key in a URL can end up in client-side history, so prefer OAuth or a header.

Older clients (HTTP+SSE)

/mcp is the main endpoint, and its replies already stream as server-sent events (text/event-stream). Clients that only speak the older 2024-11-05 HTTP+SSE transport connect to https://mcp.meetstream.ai/sse with the same sign-in or key options. The stream's first event names the per-session message endpoint; the key never appears in it.

Check it is connected

Ask your client something like "list my meetstream bots" - if it returns data (or a clean empty list) instead of an error, you are connected.


Then just ask

"Join my standup at https://meet.google.com/abc-defg-hij, record it with Deepgram transcription, and give me the transcript when it's done."

"List my bots from today and give me the AI summary of the 3pm customer call."

"Send 'we'll follow up by email' into the meeting the bot is in, then show them our logo."

"Schedule a bot for tomorrow's board meeting on my calendar."


Full capability list - 19 tools

Bot lifecycle

ToolWhat it does
create_botSends (or schedules, via join_at) a bot to a Zoom / Google Meet / Microsoft Teams meeting. Audio only by default; record_video turns video on and records it in speaker view unless video_layout: "grid_view" is asked for, and per-participant video stays off unless requested. Configurable: transcription provider + language, callback_url for webhooks, video recording, per-participant audio/video streams, MIA conversational agent, signed-in joins (google_login_domain / teams_login_domain, optional sign_in_email / strict_email, for domains already registered on your account), authenticated Zoom joins (zoom_zak_url / zoom_obf_url), custom attributes, retention window, idempotency key (safe retries - a repeat call returns the original bot, never a duplicate). Returns bot_id and transcript_id (when a provider is set).
list_botsLists every bot on the account (paginated).
get_bot_statusCurrent lifecycle status - one of Joining, InWaitingRoom, InMeeting, Recording, Leaving, Stopped, NotAllowed, Denied, Error, Done.
get_bot_detailFull session metadata: platform, timings, status timeline, the canonical transcript_id, caption_file (for the meeting_captions provider), and the original request payload.
get_bot_summaryMeetStream's built-in AI meeting summary - no external LLM call needed.
remove_botMakes the bot leave an active meeting immediately. Recorded data is kept.
delete_bot_dataPermanently deletes a bot's audio, video, and transcripts. Requires confirm: true - only call this when the user has explicitly asked to delete data. Irreversible.

Transcription

ToolWhat it does
get_transcriptFetches a transcript by bot_id. Automatically resolves the transcript_id (it is never delivered in webhooks) via /detail → /transcriptions. Set wait: true to poll until it's ready; raw: true for unprocessed provider output. Segments come back as { speaker, transcript, start_time, end_time }.
list_transcriptionsLists every transcription run for a bot - provider, status, and presigned download URLs (valid 1h).
transcribe_audio(Re-)transcribes a bot's recorded audio with a chosen provider - useful to retry with a different provider or language after the meeting.

Media & meeting data

ToolWhat it does
get_media_urlsPresigned URLs for audio (1h), video (10min), audio_streams/video_streams (per-participant - needs separate_audio_streams/separate_video_streams at creation), or screenshots.
get_participantsEveryone detected in the meeting - display name, full name, status, stream ids.
get_chatsIn-meeting chat messages captured during the call.
get_speaker_timelineWho spoke and when, as a timeline of speaker segments.

Live meeting interaction

ToolWhat it does
send_chat_messagePosts a chat message into the live meeting through the bot.
send_imageDisplays an image or GIF as the bot's video frame. img_url must be publicly accessible (no base64).

Calendar

ToolWhat it does
list_calendar_eventsUpcoming events from a connected Google Calendar. (Connecting a calendar - POST /calendar/create_calendar with OAuth credentials - is a one-time setup usually done via the MeetStream CLI or dashboard.)
schedule_calendar_botSchedules (action: "schedule") or removes ("unschedule") a bot for a specific calendar event.

Reference

ToolWhat it does
webhook_events_guideReturns the webhook reference - envelope shape (event and bot_event), the two-layer bot.stopped terminal model, status codes, and streaming-provider caveats, checked against captured production deliveries. Have your model call this before it writes any webhook handler code.

What makes this different from just reading the docs

Every tool description and the webhook_events_guide bake in live-verified ground truth, confirmed against real production bot runs, that the public API docs currently get wrong:

  • Every delivery carries event, and most also carry bot_event with the specific name. Read event to route, bot_event for detail.
  • Terminals are two-layer: every ending arrives once with event: "bot.stopped", and bot_event says why (bot.stopped, bot.kicked, bot.notallowed, bot.denied, bot.failed). Lobby timeouts, denials and failures carry status_code: 500. Branch on bot_event, not bot_status - a kick and a clean exit both report Stopped.
  • Streaming-only transcription providers (deepgram_streaming, assemblyai_streaming, jigsawstack_streaming, meetstream_streaming, meeting_captions) produce no post-call transcript, so transcription.processed never fires. bot.done still does. A post-call transcript fetch for them returns 202 indefinitely, so cap your polling.
  • transcript_id is never in a webhook payload - get_transcript resolves it for you automatically instead of making the model guess.
  • Safe defaults everywhere: automatic_leave timeouts on every create_bot call, and recording_permission_denied_timeout floored at 60 (the API rejects lower values with a 400).

How it works

The server holds no API key of its own: each request (or SSE session) carries the caller's key or an OAuth token that wraps it. A request with no credentials gets a 401 with setup instructions and a WWW-Authenticate header pointing OAuth clients at the sign-in flow. Streamable HTTP is stateless, so the service scales horizontally with no shared state; OAuth tokens are encrypted, self-contained values, so there is no token database either.

MeetStream runs the server; it is written in Go and its source is not published. This repo holds the user docs and the MCP Registry entry (server.json). To report a problem, open an issue here.

Troubleshooting

SymptomFix
Sign-in page says the link has expiredSign-in links last 15 minutes. Start the connection again from your client
401 from mcp.meetstream.aiSign in through your client (OAuth), or send Authorization: Bearer <key> / X-MeetStream-Api-Key - the server has no key of its own
Tool call returns a 401 from the APIThe key is invalid or revoked (for OAuth connections, the key named after the app was deleted). Reconnect, or generate a new key at app.meetstream.ai/api-keys
get_transcript returns ready: falseThe meeting hasn't finished processing yet, or (for streaming providers) there is no post-call transcript - check get_bot_status first
Calendar tools return empty/errorsNo calendar is connected yet - connect one via meetstream calendar connect in the CLI first
Your client only supports the old SSE transportUse https://mcp.meetstream.ai/sse

Prefer a terminal? See the MeetStream CLI. Docs: docs.meetstream.ai · API spec: openapi.json · Migrating from Recall.ai: @meetstream/migrate

Privacy and telemetry

The hosted server records anonymous counts of which tools are called and whether each call succeeded. It never records your API key, OAuth tokens, meeting URLs, transcripts, or any other content. Server logs contain the request path only, never the query string.

MIT © MeetStream.ai

來源:README.md,提交 cf531ca

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

1
  1. v0.3.0最新Sep 16, 2026

評分

已滿足適用檢查項的 85%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Stream 整合