프로토타입 · 미리 보기: 공식 레지스트리의 모든 서버를 담고 있으며 30분마다 동기화해요. 리뷰와 계정 기능은 다음 단계에서 열려요.
PopNx MCPAI를 쓰는 사람을 위한 MCP 서버 · 쉬운 말로 설명해요

MeetStream

제작자: meetstream-ai버전 0.3.0i★ –i클라우드에서 실행
레지스트리 이름io.github.meetstream-ai/meetstream-mcp

설치

개요

제작자가 쓴 설명(영어 원문)

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

PopNx MCP의 세 기둥

이 세 가지는 절대 하나의 점수로 합치지 않아요. 의견, 측정, 인기는 서로 다른 것이니까요.

할 수 있는 일

이 서버는 아직 쉬운 말로 된 요약을 쓰지 못했어요. 아래는 레지스트리에서 읽어 온 사실이에요.

  • 연결 방식: 클라우드에서 실행
  • 전송 방식: Streamable HTTP
  • 카테고리: 기타
  • 입력해야 할 값: Authorization

설치

쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.

설치하기 전에

비밀로 표시된 값은 내 계정의 열쇠예요. 절대 다른 사람과 공유하거나 채팅에 붙여 넣지 마세요.

필요한 것

어떤 앱을 쓰세요?

위에서 앱을 고르세요. 기억해 두었다가 다음부터는 버튼에 “…에 설치”라고 표시해요.

이 주소는 요청 header에 키가 필요한데, 커넥터 추가 메뉴에서는 넣을 수 없어요. 대신 Claude Code, Cursor, VS Code를 쓰세요.

터미널에서 이 명령어를 실행하세요

claude mcp add --transport http meetstream https://mcp.meetstream.ai/mcp --header 'Authorization: your-value'

실행하기 전에 빈 값을 채워 주세요.

Cursor에서 열기

또는 설정을 직접 복사하기

프로젝트의 .cursor/mcp.json 또는 ~/.cursor/mcp.json에 붙여 넣으세요

{
  "mcpServers": {
    "meetstream": {
      "url": "https://mcp.meetstream.ai/mcp",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

VS Code에서 열기

또는 설정을 직접 복사하기

프로젝트의 .vscode/mcp.json에 붙여 넣으세요

{
  "servers": {
    "meetstream": {
      "type": "http",
      "url": "https://mcp.meetstream.ai/mcp",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

브라우저가 앱을 열지 물어본 다음, 앱이 설정을 보여 주고 확인을 요청해요. 키 값은 비워 두니 직접 입력하세요.

이 주소는 요청 header에 키가 필요한데, 커넥터 추가 메뉴에서는 넣을 수 없어요. 대신 Claude Code, Cursor, VS Code를 쓰세요.

선택한 앱은 이 기기의 쿠키에만 저장돼요. 계정은 필요 없어요.

직접 입력할 값

  • Authorization 비밀 필수 HTTP header
    Your MeetStream API key as a bearer token, in the form 'Bearer ms_...'. Create a key at https://app.meetstream.ai/api-key. The hosted server is multi-tenant and stores no key of its own; each request…

이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.

할 수 있는 일

아직 이 서버의 도구 목록을 읽지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요.

기본 점검i

누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 7일 점검

  • ✓ 통과

    제작자와 저장소 일치

    레지스트리 이름이 GitHub 계정 meetstream-ai 기준으로 확인되었고, 이 계정이 저장소를 소유하고 있어요

  • … 아직 점검 안 함

    계속 관리되고 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    라이선스 있음

    아직 GitHub에서 이 저장소를 읽어 오지 않았어요

  • … 아직 점검 안 함

    엔드포인트 응답

    아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요

  • … 아직 점검 안 함

    OAuth로 로그인

    아직 점검하지 않았어요. 엔드포인트는 차례대로 돌아가며 점검해요

  • … 아직 점검 안 함

    도구 설명에 숨겨진 지시 없음

    아직 점검하지 않았어요. 엔드포인트를 점검할 때 도구 목록을 읽어요

기타 카테고리의 다른 서버와 비교i

  • 이 카테고리의 다른 서버 32708개 중 0%보다 스타가 많아요
  • 이 카테고리의 다른 서버 32708개 중 43%보다 최근에 레지스트리에 공개됐어요
  • 기본 점검 결과가 이 카테고리의 다른 서버 32708개 중 100%와 같거나 더 좋아요

레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.

자주 묻는 질문

MeetStream, 안전한가요?

해당하는 기본 점검 1개 중 1개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.

어떤 키나 코드가 필요한가요?

입력해야 할 값: Authorization

내 컴퓨터에서 실행되나요, 클라우드에서 실행되나요?

제작자의 클라우드에서 실행돼요. 설치 없이 인터넷으로 연결하지만, 보내는 내용은 제작자의 서버를 거쳐요.

아직 관리되고 있나요?

GitHub 저장소는 마지막으로 – 변경됐고, 최신 버전(0.3.0)은 2개월 전 레지스트리에 올라왔어요.

어떤 앱에서 쓸 수 있나요?

Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. URL로 연결되기 때문에, 원격 MCP 서버를 지원하는 앱(예: 개발자 모드의 ChatGPT)에서도 쓸 수 있어요.

대신 쓸 수 있는 건 뭐가 있나요?

같은 카테고리에는: Spec Driven Development, Remote Desktop Commander, OpenTakeoff

대안

같은 카테고리에서 다른 제작자가 만든 서버예요. 스타 순으로 정렬했어요.

카드 보는 법:★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i

Spec Driven Development

제작자: formulahendry

MCP Server that facilitates spec-driven development workflows, not just Vibe Coding.

내 컴퓨터에서 실행★ 440MIT14개월 전 업데이트
설치

Remote Desktop Commander

제작자: desktop-commander

Remote Desktop Commander: use files, terminal and processes on your own computers from any AI app.

클라우드에서 실행★ 211그저께 업데이트
설치

OpenTakeoff

제작자: Kentucky-ai

Construction takeoff for AI agents: load plans, set scale, measure, count, export with provenance.

내 컴퓨터에서 실행오늘 업데이트
설치

제작자의 README

README 열기

제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.

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

  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 · · · . 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:

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
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:

{

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

VS Code

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

{

"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):

{

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

Codex

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

[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](https://app.meetstream.ai/api-keys) and send it as a header:

{

"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: works too. For connector UIs that cannot set headers, https://mcp.meetstream.ai/mcp?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

앞부분만 보여 드려요. 나머지는 저장소에서 읽어 보세요

PopNx에게 묻기