Agent-Native Calendar
Agent-Native Google Calendar - manage events, sync, and public booking
作者提供的说明(英文原文)
Meeting bots for Zoom, Google Meet and Teams: record, transcribe, summarize, run voice agents.
这三项永远不会合并成一个分数:意见、测量和人气是不同的东西。
我们还没有为它写通俗的介绍。下面是我们从注册中心读取到的事实。
选择你使用的 AI 应用,然后复制设置。
Authorization标为机密的值是你账户的钥匙。千万不要分享给别人,也不要粘贴到聊天里。
你需要
你用的是哪个应用?
在上方选择你的应用。我们会记住它,下次按钮会显示“安装到 …”。
这个地址需要在请求的 header 中放入密钥,而添加连接器的菜单无法设置。请改用 Claude Code、Cursor 或 VS Code。
在终端中运行这条命令
claude mcp add --transport http meetstream https://mcp.meetstream.ai/mcp --header 'Authorization: your-value'运行前请先填写空着的值。
粘贴到项目中的 .cursor/mcp.json,或 ~/.cursor/mcp.json
{
"mcpServers": {
"meetstream": {
"url": "https://mcp.meetstream.ai/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
粘贴到项目中的 .vscode/mcp.json
{
"servers": {
"meetstream": {
"type": "http",
"url": "https://mcp.meetstream.ai/mcp",
"headers": {
"Authorization": "your-value"
}
}
}
}浏览器会先询问是否打开应用,然后应用会显示设置并请你确认。密钥的值会留空,由你自己填写。
这个地址需要在请求的 header 中放入密钥,而添加连接器的菜单无法设置。请改用 Claude Code、Cursor 或 VS Code。
你的选择通过 Cookie 保存在这台设备上,无需账户。
Authorization 机密 必填 HTTP header这些设置是根据作者在注册中心的条目生成的。如果 README 的写法不同,请以 README 为准。
我们还没有读取这个服务器的工具列表;我们会轮流检查各个端点。
我们检查的是任何人都能看到的信息;我们没有阅读代码。不适用的检查项不计入总数。 · 检查于 2026年11月8日
注册名称已通过 GitHub 账户 meetstream-ai 验证,该账户拥有此仓库
我们还没有从 GitHub 读取这个仓库
我们还没有从 GitHub 读取这个仓库
尚未检查;我们会轮流检查各个端点
尚未检查;我们会轮流检查各个端点
尚未检查;我们会在检查端点时读取工具列表
与注册中心里这个分类中所有活跃的服务器比较。只有当发布者拥有该仓库时,星标数才计入。
它在 1 项适用的基础检查中通过了 1 项。我们没有阅读代码。在添加密钥或令牌之前,请先看看这个服务器要求哪些权限,并使用只具备所需权限的密钥。
你需要填写:Authorization
它在作者的云端运行。通过互联网连接,无需安装,但你发送的内容会经过作者的服务器。
GitHub 仓库最后更新于–,最新版本(0.3.0)于2个月前进入注册中心。
支持 MCP 的应用,例如 Claude Desktop、Claude Code、Cursor 和 VS Code。它通过 URL 连接,所以接受远程 MCP 服务器的应用也可以使用,例如开启开发者模式的 ChatGPT。
同一分类中有:Agent-Native Calendar, Excel MCP Server, MCP Server for Excel
同一分类中其他作者的服务器,按星标数排序。
如何看卡片:★ GitHub 星标i三大支柱:评价 · 检查 · 使用情况i更新 = 最新版本发布到注册中心的时间i
Agent-Native Google Calendar - manage events, sync, and public booking
Create and edit Excel files with AI: charts, PivotTables, formulas. No Excel needed.
Excel automation for AI - Sheets, Power Query, DAX, VBA, Tables, Ranges and more. Windows only.
按原文从作者的仓库复制。PopNx MCP 没有审查或背书其内容。HTML、图片和脚本已被移除。链接会离开本站。
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.
https://mcp.meetstream.ai/mcp to your AI tool. Do not add a key./mcp, then choose Authenticate). Your browser opens app.meetstream.ai.The exact steps for each tool are in Connect.
| URL | Use it for |
|---|---|
https://mcp.meetstream.ai/mcp | All 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/sse | Only 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 currentcreate_botdefaults and fixes. Use the hosted URL instead.
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 mcp add --transport http meetstream https://mcp.meetstream.ai/mcp
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/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" } } }
.vscode/mcp.json, then start the server and sign in when VS Code asks:
{
"servers": { "meetstream": { "type": "http", "url": "https://mcp.meetstream.ai/mcp" } } }
~/.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/config.toml, then run codex mcp login meetstream:
[mcp_servers.meetstream]
url = "https://mcp.meetstream.ai/mcp"
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.
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 mcp add --transport http meetstream https://mcp.meetstream.ai/mcp --header "Authorization: Bearer $MEETSTREAM_API_KEY"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./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.
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.
"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."
| Tool | What it does |
|---|---|
create_bot | Sends (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_bots | Lists every bot on the account (paginated). |
get_bot_status | Current lifecycle status - one of Joining, InWaitingRoom, InMeeting, Recording, Leaving, Stopped, NotAllowed, Denied, Error, Done. |
get_bot_detail | Full session metadata: platform, timings, status timeline, the canonical transcript_id, caption_file (for the meeting_captions provider), and the original request payload. |
get_bot_summary | MeetStream's built-in AI meeting summary - no external LLM call needed. |
remove_bot | Makes the bot leave an active meeting immediately. Recorded data is kept. |
delete_bot_data | Permanently deletes a bot's audio, video, and transcripts. Requires confirm: true - only call this when the user has explicitly asked to delete data. Irreversible. |
| Tool | What it does |
|---|---|
get_transcript | Fetches 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_transcriptions | Lists 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. |
| Tool | What it does |
|---|---|
get_media_urls | Presigned URLs for audio (1h), video (10min), audio_streams/video_streams (per-participant - needs separate_audio_streams/separate_video_streams at creation), or screenshots. |
get_participants | Everyone detected in the meeting - display name, full name, status, stream ids. |
get_chats | In-meeting chat messages captured during the call. |
get_speaker_timeline | Who spoke and when, as a timeline of speaker segments. |
| Tool | What it does |
|---|---|
send_chat_message | Posts a chat message into the live meeting through the bot. |
send_image | Displays an image or GIF as the bot's video frame. img_url must be publicly accessible (no base64). |
| Tool | What it does |
|---|---|
list_calendar_events | Upcoming 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_bot | Schedules (action: "schedule") or removes ("unschedule") a bot for a specific calendar event. |
| Tool | What it does |
|---|---|
webhook_events_guide | Returns 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. |
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:
bot_event with the specific name. Read event to route, bot_event for detail.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.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.get_transcript resolves it for you automatically instead of making the model guess.automatic_leave timeouts on every create_bot call, and recording_permission_denied_timeout floored at 60 (the API rejects lower values with a 400).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
只显示了开头部分;其余内容请在仓库中阅读