Meeting BaaS MCP Server

by Meeting-Baas

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.

Встреча BaaS MCP-сервера

Сервер протокола контекста модели (MCP), предоставляющий инструменты для управления данными совещаний, включая стенограммы, записи, события календаря и функции поиска.

БЫСТРЫЙ СТАРТ: Интеграция Claude Desktop

Чтобы использовать Meeting BaaS с Claude Desktop:

  1. Отредактируйте файл конфигурации Claude Desktop:
    vim ~/Library/Application\ Support/Claude/claude_desktop_config.json
  2. Добавьте конфигурацию Meeting BaaS:
    "meetingbaas": { "command": "/bin/bash", "args": [ "-c", "cd /path/to/meeting-mcp && (npm run build 1>&2) && export MCP_FROM_CLAUDE=true && node dist/index.js" ], "headers": { "x-api-key": "YOUR_API_KEY" } }
  3. Для интеграции календаря вы можете добавить раздел calendarOAuth в свой botConfig :
    "botConfig": { "calendarOAuth": { "platform": "Google", // or "Microsoft" "clientId": "YOUR_OAUTH_CLIENT_ID", "clientSecret": "YOUR_OAUTH_CLIENT_SECRET", "refreshToken": "YOUR_REFRESH_TOKEN", "rawCalendarId": "primary@gmail.com" // Optional } }
  4. Сохраните файл и перезапустите Claude Desktop.

Примечание: Интеграция календаря необязательна. Meeting BaaS можно использовать без подключения календаря, просто исключив раздел calendarOAuth .

Обзор

Этот проект реализует сервер Model Context Protocol (MCP), который позволяет помощникам ИИ, таким как Клод и Курсор, получать доступ к данным встреч и манипулировать ими. Он предоставляет набор инструментов и ресурсов, которые можно использовать для:

  • Пригласите ботов для участия в видеоконференциях : создавайте и приглашайте ботов на свои видеоконференции, которые автоматически записывают и расшифровывают встречи.
    "Create a new meeting bot for my Zoom call tomorrow"
  • Запрос данных о встречах : поиск по стенограммам встреч и поиск определенной информации без просмотра всех записей.
    "Search my recent meetings for discussions about the quarterly budget" "Find all mentions of Project Apollo in yesterday's team meeting" "Show me parts of the meeting where Jane was speaking"
  • Управление событиями календаря : просмотр и организация записей календаря и предстоящих встреч.
  • Доступ к информации о записях : получение метаданных о записях собраний и их статусе.

Предпосылки

  • Node.js (v16 или более поздняя версия)
  • нпм
  • Учетная запись MeetingBaaS : вам необходим доступ к учетной записи MeetingBaaS, используя ваш корпоративный адрес электронной почты.
    • Все журналы, боты и общие ссылки доступны коллегам с тем же корпоративным доменом (не личным адресам электронной почты, таким как gmail.com)
    • Это обеспечивает бесперебойную совместную работу, при которой все члены команды могут получать доступ к записям и стенограммам совещаний, созданным любым сотрудником вашей организации.

Установка

  1. Клонируйте репозиторий:
    git clone <repository-url> cd mcp-baas
  2. Установить зависимости:
    npm install
  3. Создайте проект:
    npm run build

Использование

Запустите сервер:

npm run start

По умолчанию сервер работает на порту 7017 и предоставляет конечную точку MCP по http://localhost:7017/mcp .

Доступные инструменты

Сервер предоставляет несколько инструментов через протокол MCP:

Инструменты календаря

  • oauthGuidance : получите подробные пошаговые инструкции по настройке OAuth для календарей Google или Microsoft
    • Параметры не требуются
    • Возвращает подробные инструкции по получению учетных данных OAuth и настройке интеграции календаря.
  • listRawCalendars : список доступных календарей от Google или Microsoft перед интеграцией
    • Параметры: platform («Google» или «Microsoft»), clientId , clientSecret , refreshToken
    • Возвращает список доступных календарей с их идентификаторами и основным статусом.
  • setupCalendarOAuth : интегрирует календарь с использованием учетных данных OAuth.
    • Параметры: platform («Google» или «Microsoft»), clientId , clientSecret , refreshToken , rawCalendarId (необязательно)
    • Возвращает подтверждение успешной интеграции с данными календаря
  • listCalendars : Список всех интегрированных календарей
    • Параметры не требуются
    • Возвращает список всех календарей с их названиями, адресами электронной почты и UUID.
  • getCalendar : Получает подробную информацию об интеграции конкретного календаря
    • Параметры: calendarId (UUID календаря)
    • Возвращает полную информацию о календаре
  • deleteCalendar : навсегда удаляет интеграцию календаря.
    • Параметры: calendarId (UUID календаря)
    • Возвращает подтверждение успешного удаления
  • resyncAllCalendars : принудительное обновление всех подключенных календарей.
    • Параметры не требуются
    • Возвращает статус операции синхронизации.
  • listUpcomingMeetings : список предстоящих встреч из календаря
    • Параметры: calendarId , status (необязательно: «предстоящие», «прошедшие», «все»), limit (необязательно)
    • Возвращает список встреч с их названиями, временем и статусом записи.
  • listEvents : список событий календаря с комплексными возможностями фильтрации.
    • Параметры: calendarId , а также необязательные фильтры, такие как startDateGte , startDateLte , attendeeEmail и т. д.
    • Возвращает подробные списки событий с богатой информацией
  • listEventsWithCredentials : выводит список событий календаря с учетными данными, указанными непосредственно в запросе.
    • Параметры: calendarId , apiKey , а также те же необязательные фильтры, что и listEvents
    • Возвращает ту же подробную информацию, что и listEvents , но с прямой аутентификацией.
  • getEvent : Получает подробную информацию о конкретном событии календаря.
    • Параметры: eventId (UUID события)
    • Возвращает полную информацию о мероприятии, включая участников и статус записи.
  • scheduleRecording : Планирует запись ботом предстоящей встречи.
    • Параметры: eventId , botName , а также дополнительные настройки, такие как botImage , recordingMode и т. д.
    • Возвращает подтверждение успешного планирования
  • scheduleRecordingWithCredentials : Планирует запись с учетными данными, указанными непосредственно в запросе.
    • Параметры: eventId , apiKey , botName , а также те же необязательные настройки, что и у scheduleRecording
    • Возвращает подтверждение успешного планирования
  • cancelRecording : отменяет ранее запланированную запись.
    • Параметры: eventId , allOccurrences (необязательно, для повторяющихся событий)
    • Возвращает подтверждение успешной отмены
  • cancelRecordingWithCredentials : отменяет запись с учетными данными, указанными непосредственно в запросе.
    • Параметры: eventId , apiKey , allOccurrences (необязательно)
    • Возвращает подтверждение успешной отмены
  • checkCalendarIntegration : проверяет и диагностирует статус интеграции календаря
    • Параметры не требуются
    • Возвращает полный отчет о состоянии и советы по устранению неполадок

Инструменты для встреч

  • createBot : создает бота для встреч, который может присоединяться к видеоконференциям для записи и расшифровки встреч.
    • Параметры:
      • meeting_url (URL-адрес встречи, к которой нужно присоединиться)
      • name (необязательное имя бота)
      • botImage (необязательный URL-адрес изображения для аватара бота)
      • entryMessage (необязательное сообщение, которое бот отправит при присоединении)
      • deduplicationKey (необязательный ключ для отмены 5-минутного ограничения на присоединение к той же встрече)
      • nooneJoinedTimeout (необязательный таймаут в секундах для выхода бота, если никто не присоединился)
      • waitingRoomTimeout (необязательное время ожидания в секундах, после которого бот должен покинуть комнату ожидания)
      • speechToTextProvider (необязательный поставщик для транскрипции: «Gladia», «Runpod» или «Default»)
      • speechToTextApiKey (необязательный ключ API для поставщика преобразования речи в текст)
      • streamingInputUrl (необязательный URL-адрес WebSocket для потоковой передачи аудио)
      • streamingOutputUrl (необязательный URL-адрес WebSocket для потокового аудиовывода)
      • streamingAudioFrequency (необязательная частота для потоковой передачи: «16 кГц» или «24 кГц»)
      • extra (необязательный объект с дополнительными метаданными о встрече, такими как тип встречи, настраиваемая подсказка для резюме, ключевые слова для поиска)
    • Возвращает: данные бота, включая идентификатор и статус присоединения.
  • getBots : список всех ботов и связанных с ними встреч
  • getBotsByMeeting : Получает ботов для определенного URL-адреса встречи
  • getRecording : Извлекает информацию о записи для определенного бота/встречи
  • getRecordingStatus : проверяет статус текущей записи
  • getMeetingData : получает данные стенограммы и записи для определенной встречи
    • Параметры: meetingId (идентификатор встречи, для которой необходимо получить данные)
    • Возвращает: информацию о записи встречи, включая продолжительность и количество сегментов стенограммы.
  • getMeetingDataWithCredentials : получает данные стенограммы и записи, используя прямые учетные данные API
    • Параметры: meetingId (ID встречи), apiKey (ключ API для аутентификации)
    • Возвращает: ту же информацию, что и getMeetingData , но с прямой аутентификацией.

Инструменты для расшифровки

  • getMeetingTranscript : получает стенограмму встречи с именами спикеров и содержимым, сгруппированным по спикерам.
    • Параметры: botId (бот, записавший встречу)
    • Возвращает: полную расшифровку с информацией о докладчике, отформатированную в виде абзацев, сгруппированных по докладчику.
    • Пример вывода:
      Meeting: "Weekly Team Meeting" Duration: 45m 30s Transcript: John Smith: Hello everyone, thanks for joining today's call. We have a lot to cover regarding the Q3 roadmap and our current progress on the platform redesign. Sarah Johnson: Thanks John. I've prepared some slides about the user testing results we got back yesterday. The feedback was generally positive but there are a few areas we need to address.
  • findKeyMoments : автоматически определяет и делится ссылками на важные моменты встречи
    • Параметры: botId , необязательно meetingTitle , необязательный список topics для поиска и необязательно maxMoments
    • Возвращает: список ключевых моментов в формате Markdown со ссылками, автоматически определяемый на основе расшифровки.
    • Использует анализ на основе искусственного интеллекта для поиска значимых моментов без необходимости ручного выбора временных меток

Инструменты QR-кода

  • generateQRCode : создает сгенерированное искусственным интеллектом изображение QR-кода, которое можно использовать в качестве аватара бота.
    • Параметры:
      • type : Тип QR-кода (URL, электронная почта, телефон, СМС, текст)
      • to : Место назначения для QR-кода (URL, адрес электронной почты, номер телефона или текст)
      • prompt : AI prompt для настройки QR-кода (макс. 1000 символов). Вы можете включить свой ключ API непосредственно в текст приглашения, введя «API key: qrc_your_key» или аналогичные фразы.
      • style : Стиль QR-кода (style_default, style_dots, style_rounded, style_crystal)
      • useAsBotImage : использовать ли сгенерированный QR-код в качестве аватара бота (по умолчанию: true)
      • template : Идентификатор шаблона для QR-кода (необязательно)
      • apiKey : Ваш ключ API QR Code AI (необязательно, если не указан, будет использован ключ по умолчанию)
    • Возвращает: URL-адрес сгенерированного изображения QR-кода, который можно использовать напрямую с инструментом joinMeeting.
    • Пример использования:
      "Generate a QR code with my email lazare@spoke.app that looks like a Tiger in crystal style"
    • Пример с ключом API в приглашении:
      "Generate a QR code for my website https://example.com that looks like a mountain landscape. Use API key: qrc_my-personal-api-key-123456"
    • Пример с формальным параметром:
      "Generate a QR code with the following parameters: - Type: email - To: john.doe@example.com - Prompt: Create a QR code that looks like a mountain landscape - Style: style_rounded - API Key: qrc_my-personal-api-key-123456"

Инструменты для обмена ссылками

  • shareableMeetingLink : создает красиво оформленную ссылку на запись встречи, которой можно поделиться.
    • Параметры: botId , а также необязательная timestamp , title , speakerName и description
    • Возвращает: ссылку в формате Markdown с метаданными, которой можно поделиться непосредственно в чате.
    • Пример:
      📽️ **Meeting Recording: Weekly Team Sync** ⏱️ Timestamp: 00:12:35 🎤 Speaker: Sarah Johnson 📝 Discussing the new product roadmap 🔗 [View Recording](https://meetingbaas.com/viewer/abc123?t=755)
  • shareMeetingSegments : создает список ссылок на несколько важных моментов встречи.
    • Параметры: botId и массив segments с временными метками, спикерами и описаниями.
    • Возвращает: список сегментов в формате Markdown с прямыми ссылками на каждый момент.
    • Полезно для создания оглавления для длительного совещания.

Примеры рабочих процессов

Запись встречи

  1. Создайте бота для предстоящей встречи:
    "Create a bot for my Zoom meeting at https://zoom.us/j/123456789"
  2. Бот автоматически присоединяется к встрече и начинает запись.
  3. Проверьте статус записи:
    "What's the status of my meeting recording for the Zoom call I started earlier?"

Интеграция календаря и автоматическая запись

  1. Получите руководство по получению учетных данных OAuth:
    "I want to integrate my Google Calendar. How do I get OAuth credentials?"
  2. Перечислите доступные вам календари перед интеграцией:
    "List my available Google calendars. Here are my OAuth credentials: - Client ID: my-client-id-123456789.apps.googleusercontent.com - Client Secret: my-client-secret-ABCDEF123456 - Refresh Token: my-refresh-token-ABCDEF123456789"
  3. Настройте интеграцию календаря с определенным календарем:
    "Integrate my Google Calendar using these credentials: - Platform: Google - Client ID: my-client-id-123456789.apps.googleusercontent.com - Client Secret: my-client-secret-ABCDEF123456 - Refresh Token: my-refresh-token-ABCDEF123456789 - Raw Calendar ID: primary@gmail.com"
  4. Посмотрите предстоящие встречи:
    "Show me my upcoming meetings from calendar 1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d"
  5. Запланируйте запись предстоящей встречи:
    "Schedule a recording for my team meeting with event ID 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d. Configure the bot with: - Name: Team Meeting Bot - Recording Mode: gallery_view - Entry Message: Hello everyone, I'm here to record the meeting"
  6. Проверьте все записи, запланированные в вашем календаре:
    "Show me all meetings in my calendar that have recordings scheduled"
  7. Отменить ранее запланированную запись:
    "Cancel the recording for event 7a8b9c0d-1e2f-3a4b-5c6d-7e8f9a0b1c2d"
  8. Обновите данные календаря, если встречи отсутствуют:
    "Force a resync of all my connected calendars"

Анализ содержания встречи

  1. Получите полную стенограмму встречи:
    "Get the transcript from my team meeting with bot ID abc-123"
  2. Найдите ключевые моменты встречи:
    "Identify key moments from yesterday's product planning meeting with bot ID xyz-456"
  3. Поделитесь конкретным моментом со встречи:
    "Create a shareable link to the part of meeting abc-123 at timestamp 12:45 where John was talking about the budget"

Использование инструментов прямой аутентификации

Вы можете предоставить учетные данные API непосредственно в своих запросах:

  1. Список событий с прямыми полномочиями:
    "List events from calendar 5c99f8a4-f498-40d0-88f0-29f698c53c51 using API key tesban where attendee is philipe@spoke.app"
  2. Запланируйте запись с прямыми учетными данными:
    "Schedule a recording for event 78d06b42-794f-4efe-8195-62db1f0052d5 using API key tesban with bot name 'Weekly Meeting Bot'"
  3. Отменить запись с прямыми учетными данными:
    "Cancel the recording for event 97cd62f0-ea9b-42b3-add5-7a607ce6d80f using API key tesban"
  4. Получите данные о встречах с прямыми учетными данными:
    "Get meeting data for meeting 47de9462-bea7-406c-b79a-fd6b82c3de76 using API key tesban"

Использование QR-кодов, сгенерированных искусственным интеллектом, в качестве аватаров ботов

  1. Создайте QR-код с вашей контактной информацией и индивидуальным дизайном:
    "Generate a QR code with the following parameters: - Type: email - To: john.doe@company.com - Prompt: Create a professional-looking QR code with abstract blue patterns that resemble a corporate logo - Style: style_crystal"
  2. Используйте сгенерированный QR-код в качестве аватара бота на встрече:
    "Join my Zoom meeting at https://zoom.us/j/123456789 with the following parameters: - Bot name: QR Code Assistant - Bot image: [URL from the generated QR code] - Entry message: Hello everyone, I'm here to record the meeting. You can scan my avatar to get my contact information."
  3. Создайте QR-код со ссылкой на встречу для удобного обмена:
    "Generate a QR code with the following parameters: - Type: url - To: https://zoom.us/j/123456789 - Prompt: Create a colorful QR code with a calendar icon in the center - Style: style_rounded"

Доступ к записям встреч

Доступ к записям собраний можно получить напрямую через средство просмотра собраний BaaS, используя идентификатор бота:

https://meetingbaas.com/viewer/{BOT_ID}

Например:

https://meetingbaas.com/viewer/67738f48-2360-4f9e-a999-275a74208ff5

Этот просмотрщик обеспечивает:

  • Видеозапись встречи
  • Синхронизированная расшифровка с идентификацией говорящего
  • Навигация по спикеру или теме
  • Прямой обмен ссылками с товарищами по команде

При использовании createBot , getBots или инструментов поиска вы получите идентификаторы ботов, которые можно использовать для создания URL-адресов просмотра для легкого доступа к записям.

Важно : Все записи встреч и ссылки автоматически передаются коллегам, имеющим тот же корпоративный домен электронной почты (например, @yourcompany.com). Это позволяет всей вашей команде получать доступ к записям без необходимости индивидуальных разрешений, создавая совместную среду, в которой знания о встречах доступны всем в вашей организации.

Конфигурация

Сервер можно настроить с помощью переменных среды или путем редактирования файла src/config.ts .

Основные параметры конфигурации:

  • PORT : Порт, который прослушивает сервер (по умолчанию: 7017)
  • API_BASE_URL : базовый URL для API Meeting BaaS
  • DEFAULT_API_KEY : API-ключ по умолчанию для тестирования

Интеграция с курсором

Для интеграции с Курсором:

  1. Открытый курсор
  2. Перейти в настройки
  3. Перейдите к «Протоколу контекста модели»
  4. Добавьте новый сервер с помощью:
    • Название: «Встреча BaaS MCP»
    • Тип: "ссэ"
    • URL-адрес сервера: " http://localhost:7017/mcp "
    • При необходимости добавьте заголовки, если требуется аутентификация.

Разработка

Строить

npm run build

Тест с MCP Inspector

npm run inspect

Режим разработки (с автоперезагрузкой)

npm run dev

Управление журналами

Сервер включает в себя оптимизированное ведение журнала с:

npm run cleanup

Эта команда:

  • Очищает ненужные файлы журналов и кэшированные данные
  • Фильтрует повторяющиеся сообщения ping из журналов
  • Уменьшает использование диска, сохраняя важную информацию журнала.
  • Обеспечивает меньший объем журнала для долго работающих серверов.

Структура проекта

  • src/index.ts : Основная точка входа
  • src/tools/ : Реализации инструментов
  • src/resources/ : Определения ресурсов
  • src/api/ : API-клиент для бэкэнда Meeting BaaS
  • src/types/ : Определения типов TypeScript
  • src/config.ts : Конфигурация сервера
  • src/utils/ : Вспомогательные функции
    • logging.ts : Фильтрация и управление журналами
    • tinyDb.ts : Постоянная база данных отслеживания ботов

Аутентификация

Сервер ожидает API-ключ в заголовке x-api-key для аутентификации. Вы можете настроить API-ключ по умолчанию в конфигурации.

Прямая аутентификация также поддерживается во многих инструментах (называемых «WithCredentials»), где вы можете предоставить ключ API напрямую в качестве параметра, а не в заголовках.

Лицензия

Массачусетский технологический институт

Конфигурация ключа API QR-кода

Инструменту генератора QR-кодов требуется API-ключ от QR Code AI API. Есть несколько способов предоставить это:

  1. Непосредственно в приглашении : включите свой ключ API непосредственно в текст приглашения при использовании инструмента generateQRCode , например, «Сгенерируйте QR-код для моего веб-сайта https://example.com с ключом API: qrc_your_key».
  2. В качестве параметра : укажите свой ключ API в качестве параметра apiKey при использовании инструмента generateQRCode
  3. Переменная среды : установите переменную среды QRCODE_API_KEY
  4. Конфигурация Claude Desktop : добавьте ключ API в файл конфигурации Claude Desktop, расположенный по адресу:
    • Mac/Linux: ~/Library/Application Support/Claude/claude_desktop_config.json
    • Windows: %APPDATA%\Claude\claude_desktop_config.json

    Пример конфигурации:

    { "headers": { "x-api-key": "qrc_your_key_here" } }

Инструмент проверит наличие API-ключа в порядке, указанном выше. Если API-ключ не указан, будет использоваться API-ключ по умолчанию, если он доступен.

Вы можете получить ключ API, зарегистрировавшись на сайте QR Code AI API .

-
security - not tested
A
license - permissive license
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

Сервер Model Context Protocol, который позволяет помощникам на основе искусственного интеллекта управлять данными совещаний, включая создание ботов для совещаний, поиск стенограмм и организацию событий в календаре.

  1. БЫСТРЫЙ СТАРТ: Интеграция Claude Desktop
    1. Обзор
      1. Предпосылки
        1. Установка
          1. Использование
            1. Доступные инструменты
              1. Инструменты календаря
              2. Инструменты для встреч
              3. Инструменты для расшифровки
              4. Инструменты QR-кода
              5. Инструменты для обмена ссылками
            2. Примеры рабочих процессов
              1. Запись встречи
              2. Интеграция календаря и автоматическая запись
              3. Анализ содержания встречи
              4. Использование инструментов прямой аутентификации
              5. Использование QR-кодов, сгенерированных искусственным интеллектом, в качестве аватаров ботов
              6. Доступ к записям встреч
            3. Конфигурация
              1. Интеграция с курсором
                1. Разработка
                  1. Строить
                  2. Тест с MCP Inspector
                  3. Режим разработки (с автоперезагрузкой)
                  4. Управление журналами
                2. Структура проекта
                  1. Аутентификация
                    1. Лицензия
                      1. Конфигурация ключа API QR-кода

                        Related MCP Servers

                        • -
                          security
                          F
                          license
                          -
                          quality
                          A versatile Model Context Protocol server that enables AI assistants to manage calendars, track tasks, handle emails, search the web, and control smart home devices.
                          Last updated -
                          2
                          Python
                          • Apple
                          • Linux
                        • -
                          security
                          -
                          license
                          -
                          quality
                          A Model Context Protocol server implementation that enables AI assistants to interact with Linear project management systems, allowing them to create, retrieve, and modify data related to issues, projects, teams, and users.
                          Last updated -
                          20
                          2
                          TypeScript
                        • A
                          security
                          F
                          license
                          A
                          quality
                          A Model Context Protocol server that enables AI assistants to interact with Bluesky/ATProtocol, providing authentication, timeline access, post creation, and social features like likes and follows.
                          Last updated -
                          18
                          10
                          TypeScript
                          • Apple
                          • Linux
                        • -
                          security
                          F
                          license
                          -
                          quality
                          A Model Context Protocol server that provides persistent task management capabilities for AI assistants, allowing them to create, update, and track tasks beyond their usual context limitations.
                          Last updated -
                          1
                          TypeScript

                        View all related MCP servers

                        ID: ew8cdvc1u0