hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Integrations
Integrates with Google Calendar to list, manage, and retrieve calendar events. Enables scheduling recordings for meetings and connecting calendar data to meeting bots.
Allows bots to join and record Zoom meetings, automatically transcribing the content and making it searchable.
Reunión del servidor MCP de BaaS
Un servidor de Protocolo de contexto de modelo (MCP) que proporciona herramientas para administrar datos de reuniones, incluidas transcripciones, grabaciones, eventos de calendario y funcionalidad de búsqueda.
Descripción general
Este proyecto implementa un servidor de Protocolo de Contexto de Modelo (MCP) que permite a los asistentes de IA como Claude y Cursor acceder y manipular datos de reuniones. Expone un conjunto de herramientas y recursos que pueden utilizarse para:
- Invitar bots de reuniones : crea e invita bots a tus videoconferencias que graban y transcriben reuniones automáticamente.Copy
- Consultar datos de reuniones : busque en las transcripciones de reuniones y encuentre información específica sin tener que ver grabaciones completasCopy
- Administrar eventos del calendario : vea y organice entradas del calendario y próximas reuniones
- Acceder a la información de grabaciones : obtener metadatos sobre las grabaciones de reuniones y su estado
Prerrequisitos
- Node.js (v16 o posterior)
- npm
- Cuenta de MeetingBaaS : necesita acceso a una cuenta de MeetingBaaS usando su dirección de correo electrónico corporativa
- Todos los registros, bots y enlaces compartidos están disponibles para colegas con el mismo dominio corporativo (no correos electrónicos personales como gmail.com)
- Esto permite una colaboración fluida donde todos los miembros del equipo pueden acceder a las grabaciones y transcripciones de reuniones creadas por cualquier persona en su organización.
Instalación
- Clonar el repositorio:Copy
- Instalar dependencias:Copy
- Construir el proyecto:Copy
Uso
Iniciar el servidor:
De forma predeterminada, el servidor se ejecuta en el puerto 7017 y expone el punto final MCP en http://localhost:7017/mcp
.
Herramientas disponibles
El servidor expone varias herramientas a través del protocolo MCP:
Herramientas de calendario
oauthGuidance
: Obtenga instrucciones detalladas paso a paso sobre cómo configurar OAuth para calendarios de Google o Microsoft- No se requieren parámetros
- Devuelve instrucciones completas para obtener credenciales de OAuth y configurar la integración del calendario
listRawCalendars
: enumera los calendarios disponibles de Google o Microsoft antes de la integración- Parámetros:
platform
("Google" o "Microsoft"),clientId
,clientSecret
,refreshToken
- Devuelve una lista de calendarios disponibles con sus ID y estado principal
- Parámetros:
setupCalendarOAuth
: integra un calendario utilizando credenciales OAuth- Parámetros:
platform
("Google" o "Microsoft"),clientId
,clientSecret
,refreshToken
,rawCalendarId
(opcional) - Devuelve la confirmación de la integración exitosa con los detalles del calendario.
- Parámetros:
listCalendars
: enumera todos los calendarios integrados- No se requieren parámetros
- Devuelve una lista de todos los calendarios con sus nombres, direcciones de correo electrónico y UUID
getCalendar
: obtiene información detallada sobre una integración de calendario específica- Parámetros:
calendarId
(UUID del calendario) - Devuelve detalles completos del calendario.
- Parámetros:
deleteCalendar
: elimina permanentemente una integración de calendario- Parámetros:
calendarId
(UUID del calendario) - Devuelve la confirmación de la eliminación exitosa
- Parámetros:
resyncAllCalendars
: fuerza una actualización de todos los calendarios conectados- No se requieren parámetros
- Devuelve el estado de la operación de sincronización.
listUpcomingMeetings
: enumera las próximas reuniones de un calendario- Parámetros:
calendarId
,status
(opcional: "próximos", "pasados", "todos"),limit
(opcional) - Devuelve una lista de reuniones con sus nombres, horas y estado de grabación.
- Parámetros:
listEvents
: enumera eventos del calendario con opciones de filtrado integrales- Parámetros:
calendarId
, más filtros opcionales comostartDateGte
,startDateLte
,attendeeEmail
, etc. - Devuelve listados detallados de eventos con información completa
- Parámetros:
listEventsWithCredentials
: enumera los eventos del calendario con credenciales proporcionadas directamente en la consulta- Parámetros:
calendarId
,apiKey
, más los mismos filtros opcionales quelistEvents
- Devuelve la misma información detallada que
listEvents
pero con autenticación directa
- Parámetros:
getEvent
: obtiene información detallada sobre un evento de calendario específico- Parámetros:
eventId
(UUID del evento) - Devuelve detalles completos del evento, incluidos los asistentes y el estado de la grabación.
- Parámetros:
scheduleRecording
: programa un bot para grabar una próxima reunión- Parámetros:
eventId
,botName
, más configuraciones opcionales comobotImage
,recordingMode
, etc. - Devuelve la confirmación de una programación exitosa
- Parámetros:
scheduleRecordingWithCredentials
: programa la grabación con credenciales proporcionadas directamente en la consulta- Parámetros:
eventId
,apiKey
,botName
, más las mismas configuraciones opcionales quescheduleRecording
- Devuelve la confirmación de una programación exitosa
- Parámetros:
cancelRecording
: cancela una grabación previamente programada- Parámetros:
eventId
,allOccurrences
(opcional, para eventos recurrentes) - Devuelve la confirmación de la cancelación exitosa
- Parámetros:
cancelRecordingWithCredentials
: cancela la grabación con credenciales proporcionadas directamente en la consulta- Parámetros:
eventId
,apiKey
,allOccurrences
(opcional) - Devuelve la confirmación de la cancelación exitosa
- Parámetros:
checkCalendarIntegration
: Comprueba y diagnostica el estado de integración del calendario- No se requieren parámetros
- Devuelve un informe de estado completo y sugerencias para la solución de problemas.
Herramientas para reuniones
createBot
: crea un bot de reuniones que puede unirse a videoconferencias para grabar y transcribir reuniones- Parámetros:
meeting_url
(URL de la reunión a la que unirse)name
(nombre del bot opcional)botImage
(URL opcional a una imagen para el avatar del bot)entryMessage
(mensaje opcional que enviará el bot al unirse)deduplicationKey
(clave opcional para anular la restricción de 5 minutos al unirse a la misma reunión)nooneJoinedTimeout
(tiempo de espera opcional en segundos para que el bot se vaya si nadie se une)waitingRoomTimeout
(tiempo de espera opcional en segundos para que el bot salga si está atrapado en la sala de espera)speechToTextProvider
(proveedor opcional para transcripción: "Gladia", "Runpod" o "Default")speechToTextApiKey
(clave API opcional para el proveedor de conversión de voz a texto)streamingInputUrl
(URL de WebSocket opcional para transmitir la entrada de audio)streamingOutputUrl
(URL de WebSocket opcional para transmitir la salida de audio)streamingAudioFrequency
(frecuencia opcional para transmisión: "16khz" o "24khz")extra
(objeto opcional con metadatos adicionales sobre la reunión, como tipo de reunión, mensaje de resumen personalizado, palabras clave de búsqueda)
- Devoluciones: Detalles del bot, incluyendo ID y estado de unión
- Parámetros:
getBots
: enumera todos los bots y sus reuniones asociadasgetBotsByMeeting
: obtiene bots para una URL de reunión específicagetRecording
: recupera información de grabación para un bot/reunión específicogetRecordingStatus
: Comprueba el estado de una grabación en cursogetMeetingData
: obtiene la transcripción y los datos de grabación de una reunión específica- Parámetros:
meetingId
(ID de la reunión de la que se obtendrán datos) - Devuelve: Información sobre la grabación de la reunión, incluida la duración y el número de segmentos de la transcripción.
- Parámetros:
getMeetingDataWithCredentials
: obtiene la transcripción y los datos de grabación utilizando credenciales de API directas- Parámetros:
meetingId
(ID de la reunión),apiKey
(clave API para autenticación) - Devuelve: la misma información que
getMeetingData
pero con autenticación directa
- Parámetros:
Herramientas de transcripción
getMeetingTranscript
: obtiene una transcripción de la reunión con los nombres de los oradores y el contenido agrupado por orador- Parámetros:
botId
(el bot que grabó la reunión) - Devuelve: Transcripción completa con información del orador, formateada como párrafos agrupados por orador
- Ejemplo de salida:Copy
- Parámetros:
findKeyMoments
: identifica y comparte automáticamente enlaces a momentos importantes de una reunión- Parámetros:
botId
,meetingTitle
opcional, lista opcional detopics
a buscar ymaxMoments
opcional - Devoluciones: Lista en formato Markdown de momentos clave con enlaces, detectados automáticamente según la transcripción
- Utiliza análisis impulsado por IA para encontrar momentos significativos sin necesidad de seleccionar manualmente la marca de tiempo.
- Parámetros:
Herramientas de código QR
generateQRCode
: crea una imagen de código QR generada por IA que se puede usar como avatar de un bot- Parámetros:
type
: Tipo de código QR (URL, correo electrónico, teléfono, SMS, texto)to
: Destino del código QR (URL, correo electrónico, número de teléfono o texto)prompt
: Aviso de IA para personalizar el código QR (máximo 1000 caracteres). Puede incluir su clave API directamente en el texto del aviso escribiendo "Clave API: qrc_your_key" o frases similares.style
: Estilo del código QR (estilo_predeterminado, estilo_puntos, estilo_redondeado, estilo_cristal)useAsBotImage
: si se utilizará el código QR generado como avatar del bot (valor predeterminado: verdadero)template
: ID de plantilla para el código QR (opcional)apiKey
: su clave API de código QR (opcional, se usará la predeterminada si no se proporciona)
- Devuelve: URL a la imagen del código QR generada que se puede usar directamente con la herramienta joinMeeting
- Ejemplo de uso:Copy
- Ejemplo con clave API en el mensaje:Copy
- Ejemplo con parámetro formal:Copy
- Parámetros:
Herramientas para compartir enlaces
shareableMeetingLink
: genera un enlace a la grabación de una reunión, bien formateado y que se puede compartir.- Parámetros:
botId
, además detimestamp
opcional,title
,speakerName
ydescription
- Devuelve: Enlace en formato Markdown con metadatos que se puede compartir directamente en el chat
- Ejemplo:Copy
- Parámetros:
shareMeetingSegments
: crea una lista de enlaces a múltiples momentos importantes de una reunión- Parámetros:
botId
y una matriz desegments
con marcas de tiempo, oradores y descripciones - Devuelve: Lista de segmentos en formato Markdown con enlaces directos a cada momento
- Útil para crear una tabla de contenidos para una reunión larga.
- Parámetros:
Flujos de trabajo de ejemplo
Grabar una reunión
- Crea un bot para tu próxima reunión:Copy
- El bot se une a la reunión automáticamente y comienza a grabar.
- Comprobar el estado de la grabación:Copy
Integración de calendario y grabación automática
- Obtenga orientación sobre cómo obtener credenciales OAuth:Copy
- Enumere sus calendarios disponibles antes de la integración:Copy
- Configurar la integración del calendario con un calendario específico:Copy
- Ver sus próximas reuniones:Copy
- Programar grabación para una próxima reunión:Copy
- Consulta todas las grabaciones programadas en tu calendario:Copy
- Cancelar una grabación previamente programada:Copy
- Actualizar los datos del calendario si faltan reuniones:Copy
Integración simplificada del calendario
Para un enfoque más simple a la integración del calendario, puede configurar directamente sus credenciales OAuth de calendario en el archivo de configuración de Claude Desktop:
- Editar el archivo de configuración:Copy
- Agregue la sección
calendarOAuth
a su botConfig:Copy - Guarde el archivo y reinicie Claude Desktop: su calendario se integrará automáticamente.
Este enfoque elimina la necesidad de llamar manualmente a las herramientas de configuración de OAuth, lo que hace que la integración del calendario sea una tarea de configuración única.
Nota: La integración del calendario es completamente opcional. Puede usar Meeting BaaS sin conectar un calendario; para ello, simplemente omita la sección
calendarOAuth
de su configuración. La integración del calendario mejora la experiencia al proporcionar acceso a sus próximas reuniones y permitir la grabación automática de eventos del calendario.
Análisis del contenido de la reunión
- Obtenga la transcripción completa de una reunión:Copy
- Encuentra momentos clave en una reunión:Copy
- Comparte un momento específico de una reunión:Copy
Uso de herramientas de credenciales directas
Puede proporcionar credenciales de API directamente en sus consultas:
- Listar eventos con credenciales directas:Copy
- Programe una grabación con credenciales directas:Copy
- Cancelar una grabación con credenciales directas:Copy
- Obtenga datos de reuniones con credenciales directas:Copy
Uso de códigos QR generados por IA como avatares de bots
- Genera un código QR con tus datos de contacto y un diseño personalizado:Copy
- Utilice el código QR generado como avatar de bot en una reunión:Copy
- Genere un código QR con un enlace a la reunión para compartir fácilmente:Copy
Acceso a grabaciones de reuniones
Se puede acceder directamente a las grabaciones de reuniones a través del visor de Meeting BaaS usando el ID del bot:
Por ejemplo:
Este visor proporciona:
- La grabación en vídeo de la reunión
- Transcripción sincronizada con identificación del hablante
- Navegación por orador o tema
- Compartir enlaces directos con compañeros de equipo
Al utilizar las herramientas createBot
, getBots
o de búsqueda, recibirá identificaciones de bots que pueden usarse para construir estas URL de visualización para acceder fácilmente a las grabaciones.
Importante : Todas las grabaciones y enlaces de las reuniones se comparten automáticamente con los compañeros que comparten el mismo dominio de correo electrónico corporativo (p. ej., @yourcompany.com). Esto permite que todo el equipo acceda a las grabaciones sin necesidad de permisos individuales, creando un entorno colaborativo donde toda la organización puede acceder a la información de las reuniones.
Configuración
El servidor se puede configurar a través de variables de entorno o editando el archivo src/config.ts
.
Opciones de configuración clave:
PORT
: El puerto en el que escucha el servidor (predeterminado: 7017)API_BASE_URL
: La URL base para la API de Meeting BaaSDEFAULT_API_KEY
: Clave API predeterminada para pruebas
Integración con Claude Desktop
Para integrar con Claude Desktop:
- Editar el archivo de configuración de Claude Desktop:Copy
- Agregue la configuración del servidor MCP de Meeting BaaS:Nota: reemplaceCopy
/path/to/meeting-mcp
con la ruta a su repositorio local yYOUR_API_KEY
con su clave API real.Importante: Asegúrate de usar una clave API asociada a tu cuenta de correo electrónico corporativa. Todas las grabaciones, registros de bots y enlaces compartidos estarán disponibles automáticamente para los compañeros con el mismo dominio de correo electrónico, lo que facilita la colaboración en equipo.
Nota sobre la API de Códigos QR: La API de Códigos QR usa el mismo nombre de encabezado (
x-api-key
) que la API de Meeting BaaS, pero debe configurarse por separado. Para generar códigos QR, debe usar uno de los métodos descritos en la sección "Configuración de la clave de la API de Códigos QR" a continuación, como configurar una variable de entorno o incluir la clave directamente en la solicitud. - Reinicie Claude Desktop.
La configuración explicada:
command
especifica el shell a utilizarargs
contiene los argumentos de la línea de comando:cd
al directorio de su proyecto- Construya el proyecto con la salida de error redirigida a stderr
- Ejecute el servidor con la variable de entorno
MCP_FROM_CLAUDE=true
para indicar que se está ejecutando desde Claude Desktop
headers
contienen las claves API para la autenticación:x-api-key
: Su clave API de Meeting BaaS para acceder al servicio de reuniones
botConfig
le permite personalizar la apariencia y el comportamiento del bot:name
: el nombre que se muestra para el bot en las reuniones (predeterminado: "Claude Assistant")image
: URL a una imagen de acceso público para usar como avatar del bot (opcional)entryMessage
: Mensaje que enviará el bot al unirse a una reunión (opcional)deduplicationKey
: una clave única para anular la restricción de 5 minutos al unirse a la misma reunión (opcional)nooneJoinedTimeout
: Tiempo de espera en segundos para que el bot se vaya si no se unen participantes (opcional)waitingRoomTimeout
: Tiempo de espera en segundos para que el bot salga si está atrapado en la sala de espera (opcional)speechToTextProvider
: Proveedor que se utilizará para la transcripción ("Gladia", "Runpod", "Default") (opcional)speechToTextApiKey
: clave API para el proveedor de conversión de voz a texto si es necesario (opcional)calendarOAuth
: Integración directa del calendario con credenciales OAuth (opcional)platform
: "Google" o "Microsoft"clientId
: Su ID de cliente de OAuthclientSecret
: Su secreto de cliente OAuthrefreshToken
: Su token de actualización de OAuthrawCalendarId
: ID opcional del calendario específico para integrar
extra
: Metadatos adicionales sobre las reuniones para mejorar las capacidades de IA (opcional)- Ejemplo: GXP38
El campo extra
es extremadamente flexible: puede agregar cualquier metadato estructurado que tenga sentido para su organización y casos de uso.
Integración con Cursor
Para integrar con Cursor:
- Cursor abierto
- Ir a Configuración
- Vaya a "Protocolo de contexto del modelo"
- Agregar un nuevo servidor con:
- Nombre: "Reunión BaaS MCP"
- Tipo: "sse"
- URL del servidor: " http://localhost:7017/mcp "
- Opcionalmente, agregue encabezados si se requiere autenticación
Desarrollo
Construir
Prueba con MCP Inspector
Modo de desarrollo (con recarga automática)
Gestión de registros
El servidor incluye un registro optimizado con:
Este comando:
- Limpia archivos de registro innecesarios y datos almacenados en caché
- Filtra los mensajes de ping repetitivos de los registros
- Reduce el uso del disco al tiempo que conserva información de registro importante
- Mantiene una huella de registro más pequeña para servidores de larga duración
Estructura del proyecto
src/index.ts
: Punto de entrada principalsrc/tools/
: Implementaciones de herramientassrc/resources/
: Definiciones de recursossrc/api/
: Cliente API para el backend de Meeting BaaSsrc/types/
: definiciones de tipos de TypeScriptsrc/config.ts
: Configuración del servidorsrc/utils/
: Funciones de utilidadlogging.ts
: Filtrado y gestión de registrostinyDb.ts
: Base de datos de seguimiento de bots persistente
Autenticación
El servidor espera una clave API en el encabezado x-api-key
para la autenticación. Puede configurar la clave API predeterminada en la configuración.
La autenticación directa también es compatible con muchas herramientas (denominadas "WithCredentials") donde puedes proporcionar la clave API directamente como parámetro en lugar de hacerlo en los encabezados.
Licencia
Instituto Tecnológico de Massachusetts (MIT)
Configuración de la clave API del código QR
La herramienta generadora de códigos QR requiere una clave API de QR Code AI API. Hay varias maneras de obtenerla:
- Directamente en el mensaje : incluya su clave API directamente en el texto del mensaje cuando utilice la herramienta
generateQRCode
, por ejemplo, "Genere un código QR para mi sitio web https://example.com con la clave API: qrc_your_key" - Como parámetro : proporcione su clave API como parámetro
apiKey
cuando utilice la herramientagenerateQRCode
- Variable de entorno : Establezca la variable de entorno
QRCODE_API_KEY
- Configuración de Claude Desktop : agregue la clave API a su archivo de configuración de Claude Desktop ubicado en:
- Mac/Linux:
~/Library/Application Support/Claude/claude_desktop_config.json
- Ventanas:
%APPDATA%\Claude\claude_desktop_config.json
Ejemplo de configuración:
Copy - Mac/Linux:
La herramienta buscará la clave API en el orden indicado anteriormente. Si no se proporciona ninguna, se usará la clave API predeterminada, si está disponible.
Puede obtener una clave API registrándose en QR Code AI API .
This server cannot be installed
Un servidor de protocolo de contexto de modelo que permite a los asistentes de IA administrar datos de reuniones, incluida la creación de bots de reuniones, la búsqueda de transcripciones y la organización de eventos del calendario.