MeetStream
Envía bots de IA a Zoom, Google Meet y Microsoft Teams para grabar, transcribir y resumir reuniones. 19 herramientas que cubren el ciclo de vida de los bots, transcripciones y resúmenes con IA, audio por participante, líneas de tiempo de oradores, chat en vivo y programación de calendario.
Servidor MCP alojado
npx add-mcp 'https://mcp.meetstream.ai/mcp'Se instala en Claude Code, Codex, Cursor y más
Documentación
Servidor MCP de MeetStream
Dale a Claude - o a cualquier cliente compatible con MCP - acceso directo a la API del bot de reuniones de MeetStream. Agrega una URL, inicia sesión, y tu asistente puede ejecutar el ciclo de vida completo del bot (crear, grabar, transcribir, resumir, interactuar en vivo, gestionar la unión automática al calendario) a través de 19 herramientas.
https://mcp.meetstream.ai/mcp
MeetStream aloja el servidor. No hay nada que instalar o ejecutar en tu máquina, y siempre es la versión actual.
Inicio rápido
- Agrega
https://mcp.meetstream.ai/mcpa tu herramienta de IA. No agregues una clave. - Haz clic en Conectar (en Claude Code: ejecuta
/mcp, luego elige Autenticar). Tu navegador abreapp.meetstream.ai. - Inicia sesión en MeetStream y luego haz clic en Permitir. MeetStream crea una clave de API para esta conexión. No ves ni copias la clave.
- Pregunta a tu herramienta de IA: "lista mis bots de meetstream". Una lista, o una lista vacía, significa que estás conectado.
Los pasos exactos para cada herramienta están en Conectar.
Qué URL usar
| URL | Úsala para |
|---|---|
https://mcp.meetstream.ai/mcp | Todos los clientes actuales. HTTP transmisible. Las respuestas se transmiten como eventos enviados por el servidor (SSE), por lo que no necesitas una configuración SSE separada. |
https://mcp.meetstream.ai/sse | Solo clientes que admiten el transporte HTTP+SSE más antiguo (2024-11-05). El inicio de sesión y la clave de API funcionan de la misma manera. |
Your AI tool ──HTTPS + OAuth sign-in──► mcp.meetstream.ai ──► api.meetstream.ai
El antiguo paquete npm
@meetstream/mcp(npx @meetstream/mcp) está congelado en 0.3.0 y ya no se mantiene. Es anterior a los valores predeterminados y correcciones actuales decreate_bot. Usa la URL alojada en su lugar.
Conectar
Agrega la URL sin clave. Tu cliente encuentra el inicio de sesión de MeetStream, abre app.meetstream.ai en tu navegador y haces clic en Permitir. El panel crea una clave de API para esa conexión, llamada MCP · <app name> · <date> · <number>. Para desconectarte, elimina esa clave en la página de claves de API.
Esta es la página que se abre en tu navegador. Si no has iniciado sesión en MeetStream, primero inicias sesión y luego ves esta página:

La página muestra el nombre de la aplicación que solicitó conectarse. Si no reconoces la aplicación, haz clic en Cancelar. El enlace de inicio de sesión es válido durante 15 minutos.
Claude Code
claude mcp add --transport http meetstream https://mcp.meetstream.ai/mcp
# then run /mcp in Claude Code and choose Authenticate
Claude (web y escritorio)
Personalizar → Conectores → + → Agregar conector personalizado. Nómbralo meetstream, establece la URL a https://mcp.meetstream.ai/mcp, deja los campos OAuth en blanco y haz clic en Conectar.
Cursor
~/.cursor/mcp.json (o instala el plugin de MeetStream para Cursor), luego haz clic en Conectar junto a meetstream en Configuración de Cursor → MCP:
{
"mcpServers": {
"meetstream": { "url": "https://mcp.meetstream.ai/mcp" }
}
}
VS Code
.vscode/mcp.json, luego inicia el servidor e inicia sesión cuando VS Code lo solicite:
{
"servers": {
"meetstream": { "type": "http", "url": "https://mcp.meetstream.ai/mcp" }
}
}
Windsurf
~/.codeium/windsurf/mcp_config.json. Cascade te pide que inicies sesión en el primer uso. Si tu versión de Windsurf no puede completar el inicio de sesión, usa un encabezado de clave de API (abajo):
{
"mcpServers": {
"meetstream": { "serverUrl": "https://mcp.meetstream.ai/mcp" }
}
}
Codex
~/.codex/config.toml, luego ejecuta codex mcp login meetstream:
[mcp_servers.meetstream]
url = "https://mcp.meetstream.ai/mcp"
Cualquier otro cliente MCP
Apúntalo a https://mcp.meetstream.ai/mcp como un servidor remoto (HTTP transmisible). Los clientes que admiten la autorización MCP inician sesión por sí mismos: metadatos de recursos protegidos (RFC 9728), metadatos del servidor de autorización (RFC 8414), registro dinámico de clientes (RFC 7591) y el flujo de código de autorización con PKCE. Los tokens de acceso duran una hora y se actualizan automáticamente.
O usa una clave de API
Para clientes sin OAuth, o para scripts y CI, crea una clave en app.meetstream.ai/api-keys y envíala como encabezado:
{
"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: agrega
bearer_token_env_var = "MEETSTREAM_API_KEY"al bloque[mcp_servers.meetstream]. X-MeetStream-Api-Key: <key>también funciona. Para interfaces de conectores que no pueden establecer encabezados,https://mcp.meetstream.ai/mcp?key=<key>. El servidor nunca registra cadenas de consulta, pero una clave en una URL puede terminar en el historial del lado del cliente, así que prefiere OAuth o un encabezado.
Clientes más antiguos (HTTP+SSE)
/mcp es el endpoint principal, y sus respuestas ya se transmiten como eventos enviados por el servidor (text/event-stream). Los clientes que solo hablan el transporte HTTP+SSE más antiguo de 2024-11-05 se conectan a https://mcp.meetstream.ai/sse con las mismas opciones de inicio de sesión o clave. El primer evento de la transmisión nombra el endpoint de mensajes por sesión; la clave nunca aparece en él.
Verifica que esté conectado
Pregunta a tu cliente algo como "lista mis bots de meetstream" - si devuelve datos (o una lista vacía limpia) en lugar de un error, estás conectado.
Luego solo pregunta
"Únete a mi standup a las https://meet.google.com/abc-defg-hij,, grábala con transcripción de Deepgram y dame la transcripción cuando termine."
"Lista mis bots de hoy y dame el resumen de IA de la llamada de cliente de las 3pm."
"Envía 'te seguiremos por correo electrónico' a la reunión en la que está el bot, luego muéstrales nuestro logotipo."
"Programa un bot para la reunión de la junta de mañana en mi calendario."
Lista completa de capacidades - 19 herramientas
Ciclo de vida del bot
| Herramienta | Qué hace |
|---|---|
create_bot | Envía (o programa, vía join_at) un bot a una reunión de Zoom / Google Meet / Microsoft Teams. Solo audio por defecto; record_video activa el video y lo graba en vista de orador a menos que se solicite video_layout: "grid_view", y el video por participante permanece apagado a menos que se solicite. Configurable: proveedor de transcripción + idioma, callback_url para webhooks, grabación de video, transmisiones de audio/video por participante, agente conversacional MIA, uniones con sesión iniciada (google_login_domain / teams_login_domain, opcional sign_in_email / strict_email, para dominios ya registrados en tu cuenta), uniones autenticadas de Zoom (zoom_zak_url / zoom_obf_url), atributos personalizados, ventana de retención, clave de idempotencia (reintentos seguros - una llamada repetida devuelve el bot original, nunca un duplicado). Devuelve bot_id y transcript_id (cuando se establece un proveedor). |
list_bots | Lista todos los bots en la cuenta (paginado). |
get_bot_status | Estado actual del ciclo de vida - uno de Joining, InWaitingRoom, InMeeting, Recording, Leaving, Stopped, NotAllowed, Denied, Error, Done. |
get_bot_detail | Metadatos completos de la sesión: plataforma, tiempos, línea de tiempo de estado, el transcript_id canónico, caption_file (para el proveedor meeting_captions) y la carga útil de la solicitud original. |
get_bot_summary | Resumen de reunión de IA integrado de MeetStream - no se necesita llamada LLM externa. |
remove_bot | Hace que el bot abandone una reunión activa inmediatamente. Los datos grabados se conservan. |
delete_bot_data | Elimina permanentemente el audio, video y transcripciones de un bot. Requiere confirm: true - solo llama esto cuando el usuario haya pedido explícitamente eliminar datos. Irreversible. |
Transcripción
| Herramienta | Qué hace |
|---|---|
get_transcript | Obtiene una transcripción por bot_id. Resuelve automáticamente el transcript_id (nunca se entrega en webhooks) vía /detail → /transcriptions. Establece wait: true para sondear hasta que esté listo; raw: true para salida de proveedor no procesada. Los segmentos vuelven como { speaker, transcript, start_time, end_time }. |
list_transcriptions | Lista cada ejecución de transcripción para un bot: proveedor, estado y URLs de descarga prefirmadas (válidas 1h). |
transcribe_audio | (Re-)transcribe el audio grabado de un bot con un proveedor elegido - útil para reintentar con un proveedor o idioma diferente después de la reunión. |
Datos de medios y reuniones
| Herramienta | Qué hace |
|---|---|
get_media_urls | URLs prefirmadas para audio (1h), video (10min), audio_streams/video_streams (por participante - necesita separate_audio_streams/separate_video_streams en la creación), o screenshots. |
get_participants | Todos los detectados en la reunión: nombre mostrado, nombre completo, estado, IDs de transmisión. |
get_chats | Mensajes de chat en la reunión capturados durante la llamada. |
get_speaker_timeline | Quién habló y cuándo, como una línea de tiempo de segmentos de oradores. |
Interacción en vivo en la reunión
| Herramienta | Qué hace |
|---|---|
send_chat_message | Publica un mensaje de chat en la reunión en vivo a través del bot. |
send_image | Muestra una imagen o GIF como el marco de video del bot. img_url debe ser accesible públicamente (sin base64). |
Calendario
| Herramienta | Qué hace |
|---|---|
list_calendar_events | Próximos eventos de un Google Calendar conectado. (Conectar un calendario - POST /calendar/create_calendar con credenciales OAuth - es una configuración única que generalmente se hace vía CLI de MeetStream o el panel.) |
schedule_calendar_bot | Programa (action: "schedule") o elimina ("unschedule") un bot para un evento de calendario específico. |
Referencia
| Herramienta | Qué hace |
|---|---|
webhook_events_guide | Devuelve la referencia de webhook: forma del sobre (event y bot_event), el modelo terminal de dos capas bot.stopped, códigos de estado y advertencias del proveedor de transmisión, verificado contra entregas de producción capturadas. Haz que tu modelo llame esto antes de escribir cualquier código de manejador de webhook. |
Qué hace esto diferente de solo leer los documentos
Cada descripción de herramienta y el webhook_events_guide incorporan verdad fundamental verificada en vivo, confirmada contra ejecuciones reales de bots en producción, que los documentos públicos de API actualmente tienen mal:
- Cada entrega lleva
event, y la mayoría también llevabot_eventcon el nombre específico. Leeeventpara enrutar,bot_eventpara detalle. - Los terminales son de dos capas: cada final llega una vez con
event: "bot.stopped", ybot_eventdice por qué (bot.stopped,bot.kicked,bot.notallowed,bot.denied,bot.failed). Los tiempos de espera en la sala de espera, denegaciones y fallos llevanstatus_code: 500. Ramifica enbot_event, no enbot_status- una expulsión y una salida limpia ambos reportanStopped. - Los proveedores de transcripción solo de transmisión (
deepgram_streaming,assemblyai_streaming,jigsawstack_streaming,meetstream_streaming,meeting_captions) no producen transcripción posterior a la llamada, por lo quetranscription.processednunca se dispara.bot.donetodavía lo hace. Una obtención de transcripción posterior a la llamada para ellos devuelve202indefinidamente, así que limita tu sondeo. transcript_idnunca está en una carga útil de webhook -get_transcriptlo resuelve automáticamente en lugar de hacer que el modelo adivine.- Valores predeterminados seguros en todas partes: tiempos de espera de
automatic_leaveen cada llamadacreate_bot, yrecording_permission_denied_timeoutcon un mínimo de 60 (la API rechaza valores más bajos con un 400).
Cómo funciona
El servidor no tiene ninguna clave de API propia: cada solicitud (o sesión SSE) lleva la clave del llamante o un token OAuth que la envuelve. Una solicitud sin credenciales recibe un 401 con instrucciones de configuración y un encabezado WWW-Authenticate que apunta a los clientes OAuth al flujo de inicio de sesión. HTTP transmisible no tiene estado, por lo que el servicio escala horizontalmente sin estado compartido; los tokens OAuth están encriptados, son valores autocontenidos, por lo que tampoco hay base de datos de tokens.
MeetStream ejecuta el servidor; está escrito en Go y su fuente no está publicada. Este repositorio contiene los documentos de usuario y la entrada del Registro MCP (server.json). Para reportar un problema, abre un issue aquí.
Solución de problemas
| Síntoma | Solución |
|---|---|
| La página de inicio de sesión indica que el enlace ha caducado | Los enlaces de inicio de sesión duran 15 minutos. Inicia la conexión nuevamente desde tu cliente |
401 de mcp.meetstream.ai | Inicia sesión a través de tu cliente (OAuth), o envía Authorization: Bearer <key> / X-MeetStream-Api-Key: el servidor no tiene una clave propia |
| La llamada a la herramienta devuelve un 401 desde la API | La clave no es válida o ha sido revocada (para conexiones OAuth, la clave con el nombre de la aplicación fue eliminada). Reconéctate o genera una nueva clave en app.meetstream.ai/api-keys |
get_transcript devuelve ready: false | La reunión aún no ha terminado de procesarse, o (para proveedores de streaming) no hay transcripción posterior a la llamada: verifica get_bot_status primero |
| Las herramientas de calendario devuelven resultados vacíos o errores | Aún no hay un calendario conectado: conéctalo primero mediante meetstream calendar connect en la CLI |
| Tu cliente solo admite el transporte SSE antiguo | Usa https://mcp.meetstream.ai/sse |
¿Prefieres una terminal? Consulta la CLI de MeetStream. Documentación: docs.meetstream.ai · Especificación de API: openapi.json · Migración desde Recall.ai: @meetstream/migrate
Privacidad y telemetría
El servidor alojado registra recuentos anónimos de qué herramientas se llaman y si cada llamada tuvo éxito. Nunca registra tu clave de API, tokens OAuth, URL de reuniones, transcripciones ni ningún otro contenido. Los registros del servidor contienen solo la ruta de la solicitud, nunca la cadena de consulta.
MIT © MeetStream.ai