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.
Meeting-BaaS-MCP-Server
Ein Model Context Protocol (MCP)-Server, der Tools zum Verwalten von Besprechungsdaten bereitstellt, darunter Transkripte, Aufzeichnungen, Kalenderereignisse und Suchfunktionen.
SCHNELLSTART: Claude Desktop Integration
So verwenden Sie Meeting BaaS mit Claude Desktop:
- Bearbeiten Sie die Claude Desktop-Konfigurationsdatei:Copy
- Fügen Sie die Meeting-BaaS-Konfiguration hinzu:Copy
- Für die Kalenderintegration können Sie den Abschnitt
calendarOAuth
zu IhrerbotConfig
hinzufügen:Copy - Speichern Sie die Datei und starten Sie Claude Desktop neu.
Hinweis: Die Kalenderintegration ist optional. Meeting BaaS kann ohne Kalenderverbindung verwendet werden, indem der Abschnitt
calendarOAuth
einfach weggelassen wird.
Überblick
Dieses Projekt implementiert einen Model Context Protocol (MCP)-Server, der KI-Assistenten wie Claude und Cursor den Zugriff auf und die Bearbeitung von Meetingdaten ermöglicht. Es stellt eine Reihe von Tools und Ressourcen bereit, die für Folgendes genutzt werden können:
- Meeting-Bots einladen : Erstellen und laden Sie Bots zu Ihren Videokonferenzen ein, die Meetings automatisch aufzeichnen und transkribierenCopy
- Besprechungsdaten abfragen : Durchsuchen Sie Besprechungsprotokolle und finden Sie bestimmte Informationen, ohne sich ganze Aufzeichnungen ansehen zu müssenCopy
- Kalenderereignisse verwalten : Kalendereinträge und bevorstehende Besprechungen anzeigen und organisieren
- Zugriff auf Aufzeichnungsinformationen : Erhalten Sie Metadaten zu Besprechungsaufzeichnungen und deren Status
Voraussetzungen
- Node.js (v16 oder höher)
- npm
- MeetingBaaS-Konto : Sie benötigen Zugriff auf ein MeetingBaaS-Konto mit Ihrer Firmen-E-Mail-Adresse
- Alle Protokolle, Bots und freigegebenen Links stehen Kollegen mit derselben Unternehmensdomäne zur Verfügung (keine persönlichen E-Mails wie gmail.com).
- Dies ermöglicht eine nahtlose Zusammenarbeit, bei der alle Teammitglieder auf Besprechungsaufzeichnungen und Transkripte zugreifen können, die von jedem in Ihrer Organisation erstellt wurden
Installation
- Klonen Sie das Repository:Copy
- Installieren Sie Abhängigkeiten:Copy
- Erstellen Sie das Projekt:Copy
Verwendung
Starten Sie den Server:
Standardmäßig läuft der Server auf Port 7017 und stellt den MCP-Endpunkt unter http://localhost:7017/mcp
bereit.
Verfügbare Tools
Der Server stellt über das MCP-Protokoll mehrere Tools bereit:
Kalendertools
oauthGuidance
: Erhalten Sie detaillierte Schritt-für-Schritt-Anleitungen zum Einrichten von OAuth für Google- oder Microsoft-Kalender- Keine Parameter erforderlich
- Gibt umfassende Anweisungen zum Abrufen von OAuth-Anmeldeinformationen und zum Einrichten der Kalenderintegration zurück
listRawCalendars
: Listet verfügbare Kalender von Google oder Microsoft vor der Integration auf- Parameter:
platform
(„Google“ oder „Microsoft“),clientId
,clientSecret
,refreshToken
- Gibt eine Liste der verfügbaren Kalender mit ihren IDs und ihrem primären Status zurück
- Parameter:
setupCalendarOAuth
: Integriert einen Kalender mit OAuth-Anmeldeinformationen- Parameter:
platform
(„Google“ oder „Microsoft“),clientId
,clientSecret
,refreshToken
,rawCalendarId
(optional) - Gibt eine Bestätigung der erfolgreichen Integration mit Kalenderdetails zurück
- Parameter:
listCalendars
: Listet alle integrierten Kalender auf- Keine Parameter erforderlich
- Gibt eine Liste aller Kalender mit ihren Namen, E-Mail-Adressen und UUIDs zurück
getCalendar
: Ruft detaillierte Informationen zu einer bestimmten Kalenderintegration ab- Parameter:
calendarId
(UUID des Kalenders) - Gibt umfassende Kalenderdetails zurück
- Parameter:
deleteCalendar
: Entfernt eine Kalenderintegration dauerhaft- Parameter:
calendarId
(UUID des Kalenders) - Gibt eine Bestätigung über die erfolgreiche Löschung zurück
- Parameter:
resyncAllCalendars
: Erzwingt eine Aktualisierung aller verbundenen Kalender- Keine Parameter erforderlich
- Gibt den Status des Synchronisierungsvorgangs zurück
listUpcomingMeetings
: Listet bevorstehende Meetings aus einem Kalender auf- Parameter:
calendarId
,status
(optional: „bevorstehend“, „vergangen“, „alle“),limit
(optional) - Gibt eine Liste der Meetings mit Namen, Uhrzeit und Aufzeichnungsstatus zurück
- Parameter:
listEvents
: Listet Kalenderereignisse mit umfassenden Filteroptionen auf- Parameter:
calendarId
sowie optionale Filter wiestartDateGte
,startDateLte
,attendeeEmail
usw. - Gibt detaillierte Veranstaltungslisten mit umfangreichen Informationen zurück
- Parameter:
listEventsWithCredentials
: Listet Kalenderereignisse mit Anmeldeinformationen auf, die direkt in der Abfrage bereitgestellt werden- Parameter:
calendarId
,apiKey
, plus dieselben optionalen Filter wielistEvents
- Gibt die gleichen detaillierten Informationen zurück wie
listEvents
, jedoch mit direkter Authentifizierung
- Parameter:
getEvent
: Ruft detaillierte Informationen zu einem bestimmten Kalenderereignis ab- Parameter:
eventId
(UUID des Ereignisses) - Gibt umfassende Veranstaltungsdetails zurück, einschließlich Teilnehmer und Aufzeichnungsstatus
- Parameter:
scheduleRecording
: Plant einen Bot zur Aufzeichnung eines bevorstehenden Meetings- Parameter:
eventId
,botName
, plus optionale Einstellungen wiebotImage
,recordingMode
usw. - Gibt eine Bestätigung über die erfolgreiche Terminplanung zurück
- Parameter:
scheduleRecordingWithCredentials
: Plant die Aufzeichnung mit den Anmeldeinformationen, die direkt in der Abfrage bereitgestellt werden- Parameter:
eventId
,apiKey
,botName
, plus dieselben optionalen Einstellungen wiescheduleRecording
- Gibt eine Bestätigung über die erfolgreiche Terminplanung zurück
- Parameter:
cancelRecording
: Bricht eine zuvor geplante Aufnahme ab- Parameter:
eventId
,allOccurrences
(optional, für wiederkehrende Ereignisse) - Gibt eine Bestätigung über die erfolgreiche Stornierung zurück
- Parameter:
cancelRecordingWithCredentials
: Bricht die Aufzeichnung mit den direkt in der Abfrage angegebenen Anmeldeinformationen ab- Parameter:
eventId
,apiKey
,allOccurrences
(optional) - Gibt eine Bestätigung über die erfolgreiche Stornierung zurück
- Parameter:
checkCalendarIntegration
: Überprüft und diagnostiziert den Status der Kalenderintegration- Keine Parameter erforderlich
- Gibt einen umfassenden Statusbericht und Tipps zur Fehlerbehebung zurück
Meeting-Tools
createBot
: Erstellt einen Meeting-Bot, der an Videokonferenzen teilnehmen kann, um Meetings aufzuzeichnen und zu transkribieren- Parameter:
meeting_url
(URL des Meetings, dem Sie beitreten möchten)name
(optionaler Bot-Name)botImage
(optionale URL zu einem Bild für den Avatar des Bots)entryMessage
(optionale Nachricht, die der Bot beim Beitritt sendet)deduplicationKey
(optionaler Schlüssel zum Aufheben der 5-Minuten-Beschränkung für die Teilnahme am selben Meeting)nooneJoinedTimeout
(optionales Timeout in Sekunden für den Bot, um ihn zu verlassen, wenn niemand beitritt)waitingRoomTimeout
(optionales Timeout in Sekunden, bis der Bot den Raum verlässt, wenn er im Warteraum feststeckt)speechToTextProvider
(optionaler Anbieter für die Transkription: „Gladia“, „Runpod“ oder „Default“)speechToTextApiKey
(optionaler API-Schlüssel für den Spracherkennungsanbieter)streamingInputUrl
(optionale WebSocket-URL zum Streamen des Audioeingangs)streamingOutputUrl
(optionale WebSocket-URL zum Streamen der Audioausgabe)streamingAudioFrequency
(optionale Frequenz für Streaming: „16 kHz“ oder „24 kHz“)extra
(optionales Objekt mit zusätzlichen Metadaten zum Meeting, wie z. B. Meeting-Typ, benutzerdefinierte Zusammenfassungsaufforderung, Suchbegriffe)
- Gibt zurück: Bot-Details einschließlich ID und Beitrittsstatus
- Parameter:
getBots
: Listet alle Bots und die zugehörigen Meetings aufgetBotsByMeeting
: Ruft Bots für eine bestimmte Meeting-URL abgetRecording
: Ruft Aufzeichnungsinformationen für einen bestimmten Bot/ein bestimmtes Meeting abgetRecordingStatus
: Überprüft den Status einer laufenden AufnahmegetMeetingData
: Ruft Transkript- und Aufzeichnungsdaten für ein bestimmtes Meeting ab- Parameter:
meetingId
(ID des Meetings, für das Daten abgerufen werden sollen) - Gibt zurück: Informationen zur Besprechungsaufzeichnung, einschließlich Dauer und Anzahl der Transkriptsegmente
- Parameter:
getMeetingDataWithCredentials
: Ruft Transkript- und Aufzeichnungsdaten mithilfe direkter API-Anmeldeinformationen ab- Parameter:
meetingId
(ID des Meetings),apiKey
(API-Schlüssel zur Authentifizierung) - Gibt zurück: Dieselben Informationen wie
getMeetingData
, jedoch mit direkter Authentifizierung
- Parameter:
Transkriptionstools
getMeetingTranscript
: Ruft ein Besprechungsprotokoll mit Sprechernamen und nach Sprecher gruppiertem Inhalt ab- Parameter:
botId
(der Bot, der das Meeting aufgezeichnet hat) - Rückgabe: Vollständiges Transkript mit Sprecherinformationen, formatiert als nach Sprecher gruppierte Absätze
- Beispielausgabe:Copy
- Parameter:
findKeyMoments
: Identifiziert und teilt automatisch Links zu wichtigen Momenten in einem Meeting- Parameter:
botId
, optionalmeetingTitle
, optionale Liste der zu suchendentopics
und optionalmaxMoments
- Rückgabe: Markdown-formatierte Liste der wichtigsten Momente mit Links, automatisch erkannt basierend auf dem Transkript
- Nutzt KI-gestützte Analysen, um wichtige Momente zu finden, ohne dass eine manuelle Zeitstempelauswahl erforderlich ist
- Parameter:
QR-Code-Tools
generateQRCode
: Erstellt ein KI-generiertes QR-Code-Bild, das als Bot-Avatar verwendet werden kann- Parameter:
type
: Art des QR-Codes (URL, E-Mail, Telefon, SMS, Text)to
: Ziel für den QR-Code (URL, E-Mail, Telefonnummer oder Text)prompt
: KI-Eingabeaufforderung zum Anpassen des QR-Codes (max. 1000 Zeichen). Sie können Ihren API-Schlüssel direkt in den Eingabeaufforderungstext einfügen, indem Sie „API-Schlüssel: qrc_Ihr_Schlüssel“ oder ähnliche Ausdrücke eingeben.style
: Stil des QR-Codes (style_default, style_dots, style_rounded, style_crystal)useAsBotImage
: Ob der generierte QR-Code als Bot-Avatar verwendet werden soll (Standard: true)template
: Vorlagen-ID für den QR-Code (optional)apiKey
: Ihr QR-Code-AI-API-Schlüssel (optional, wenn nicht angegeben, wird der Standard verwendet)
- Gibt zurück: URL zum generierten QR-Code-Bild, das direkt mit dem joinMeeting-Tool verwendet werden kann
- Anwendungsbeispiel:Copy
- Beispiel mit API-Schlüssel in der Eingabeaufforderung:Copy
- Beispiel mit formalen Parametern:Copy
- Parameter:
Tools zum Teilen von Links
shareableMeetingLink
: Generiert einen schön formatierten, teilbaren Link zu einer Meeting-Aufzeichnung- Parameter:
botId
, plus optionaltimestamp
,title
,speakerName
unddescription
- Rückgabe: Markdown-formatierter Link mit Metadaten, der direkt im Chat geteilt werden kann
- Beispiel:Copy
- Parameter:
shareMeetingSegments
: Erstellt eine Liste mit Links zu mehreren wichtigen Momenten in einem Meeting- Parameter:
botId
und ein Array vonsegments
mit Zeitstempeln, Sprechern und Beschreibungen - Rückgabe: Markdown-formatierte Liste von Segmenten mit direkten Links zu jedem Moment
- Nützlich zum Erstellen eines Inhaltsverzeichnisses für ein langes Meeting
- Parameter:
Beispiel-Workflows
Aufzeichnen eines Meetings
- Erstellen Sie einen Bot für Ihr bevorstehendes Meeting:Copy
- Der Bot nimmt automatisch am Meeting teil und beginnt mit der Aufzeichnung.
- Aufzeichnungsstatus prüfen:Copy
Kalenderintegration und automatische Aufzeichnung
- Hier erhalten Sie Anleitungen zum Abrufen von OAuth-Anmeldeinformationen:Copy
- Listen Sie Ihre verfügbaren Kalender vor der Integration auf:Copy
- Richten Sie die Kalenderintegration mit einem bestimmten Kalender ein:Copy
- Sehen Sie sich Ihre bevorstehenden Meetings an:Copy
- Planen Sie eine Aufzeichnung für ein bevorstehendes Meeting:Copy
- Überprüfen Sie alle in Ihrem Kalender geplanten Aufnahmen:Copy
- Eine zuvor geplante Aufnahme abbrechen:Copy
- Kalenderdaten aktualisieren, wenn Besprechungen fehlen:Copy
Analysieren von Besprechungsinhalten
- Holen Sie sich das vollständige Transkript eines Meetings:Copy
- Finden Sie Schlüsselmomente in einem Meeting:Copy
- Teilen Sie einen bestimmten Moment aus einem Meeting:Copy
Verwenden von Tools für direkte Anmeldeinformationen
Sie können API-Anmeldeinformationen direkt in Ihren Abfragen angeben:
- Ereignisse mit direkten Anmeldeinformationen auflisten:Copy
- Planen Sie eine Aufzeichnung mit direkten Anmeldeinformationen:Copy
- Brechen Sie eine Aufzeichnung mit direkten Anmeldeinformationen ab:Copy
- Erhalten Sie Besprechungsdaten mit direkten Anmeldeinformationen:Copy
Verwendung von KI-generierten QR-Codes als Bot-Avatare
- Generieren Sie einen QR-Code mit Ihren Kontaktdaten und einem individuellen Design:Copy
- Verwenden Sie den generierten QR-Code als Bot-Avatar in einem Meeting:Copy
- Generieren Sie einen QR-Code mit einem Meeting-Link zum einfachen Teilen:Copy
Zugriff auf Besprechungsaufzeichnungen
Auf Besprechungsaufzeichnungen kann direkt über den Meeting-BaaS-Viewer mit der Bot-ID zugegriffen werden:
Zum Beispiel:
Dieser Viewer bietet:
- Die Videoaufzeichnung des Meetings
- Synchronisiertes Transkript mit Sprecheridentifikation
- Navigation nach Sprecher oder Thema
- Direktes Teilen von Links mit Teamkollegen
Wenn Sie die Tools createBot
, getBots
oder search verwenden, erhalten Sie Bot-IDs, mit denen Sie diese Viewer-URLs für den einfachen Zugriff auf Aufzeichnungen erstellen können.
Wichtig : Alle Meeting-Aufzeichnungen und Links werden automatisch mit Kollegen geteilt, die dieselbe Unternehmens-E-Mail-Adresse verwenden (z. B. @IhrUnternehmen.com). So kann Ihr gesamtes Team ohne individuelle Berechtigungen auf die Aufzeichnungen zugreifen. So entsteht eine kollaborative Umgebung, in der alle Mitarbeiter Ihres Unternehmens auf das Meeting-Wissen zugreifen können.
Konfiguration
Der Server kann über Umgebungsvariablen oder durch Bearbeiten der Datei src/config.ts
konfiguriert werden.
Wichtige Konfigurationsoptionen:
PORT
: Der Port, auf dem der Server lauscht (Standard: 7017)API_BASE_URL
: Die Basis-URL für die Meeting BaaS APIDEFAULT_API_KEY
: Standard-API-Schlüssel zum Testen
Integration mit Cursor
So integrieren Sie Cursor:
- Cursor öffnen
- Gehen Sie zu Einstellungen
- Navigieren Sie zu „Model Context Protocol“
- Fügen Sie einen neuen Server hinzu mit:
- Name: „Meeting BaaS MCP“
- Typ: „sse“
- Server-URL: " http://localhost:7017/mcp "
- Fügen Sie optional Header hinzu, wenn eine Authentifizierung erforderlich ist
Entwicklung
Bauen
Testen mit MCP Inspector
Entwicklungsmodus (mit automatischem Neuladen)
Protokollverwaltung
Der Server beinhaltet eine optimierte Protokollierung mit:
Dieser Befehl:
- Bereinigt unnötige Protokolldateien und zwischengespeicherte Daten
- Filtert wiederkehrende Ping-Nachrichten aus Protokollen heraus
- Reduziert die Festplattennutzung und bewahrt gleichzeitig wichtige Protokollinformationen
- Behält einen kleineren Protokoll-Footprint für Server mit langer Laufzeit bei
Projektstruktur
src/index.ts
: Haupteinstiegspunktsrc/tools/
: Tool-Implementierungensrc/resources/
: Ressourcendefinitionensrc/api/
: API-Client für das Meeting BaaS-Backendsrc/types/
: TypeScript-Typdefinitionensrc/config.ts
: Serverkonfigurationsrc/utils/
: Hilfsfunktionenlogging.ts
: Protokollfilterung und -verwaltungtinyDb.ts
: Dauerhafte Bot-Tracking-Datenbank
Authentifizierung
Der Server erwartet zur Authentifizierung einen API-Schlüssel im Header x-api-key
. Der Standard-API-Schlüssel kann in der Konfiguration festgelegt werden.
Die direkte Authentifizierung wird auch in vielen Tools (mit dem Namen „WithCredentials“) unterstützt, bei denen Sie den API-Schlüssel direkt als Parameter und nicht in Headern angeben können.
Lizenz
Konfiguration des QR-Code-API-Schlüssels
Das QR-Code-Generator-Tool benötigt einen API-Schlüssel von der QR Code AI API. Es gibt mehrere Möglichkeiten, diesen bereitzustellen:
- Direkt in der Eingabeaufforderung : Fügen Sie Ihren API-Schlüssel direkt in den Eingabeaufforderungstext ein, wenn Sie das Tool
generateQRCode
“ verwenden, z. B. „Generieren Sie einen QR-Code für meine Website https://example.com mit dem API-Schlüssel: qrc_your_key“. - Als Parameter : Geben Sie Ihren API-Schlüssel als Parameter „
apiKey
an, wenn Sie das ToolgenerateQRCode
verwenden - Umgebungsvariable : Legen Sie die Umgebungsvariable
QRCODE_API_KEY
fest - Claude Desktop-Konfiguration : Fügen Sie den API-Schlüssel zu Ihrer Claude Desktop-Konfigurationsdatei hinzu, die sich hier befindet:
- Mac/Linux:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
Beispielkonfiguration:
Copy - Mac/Linux:
Das Tool prüft den API-Schlüssel in der oben angegebenen Reihenfolge. Wenn kein API-Schlüssel angegeben ist, wird der Standard-API-Schlüssel verwendet, sofern verfügbar.
Sie können einen API-Schlüssel erhalten, indem Sie sich bei QR Code AI API anmelden.
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Ein Model Context Protocol-Server, der es KI-Assistenten ermöglicht, Besprechungsdaten zu verwalten, einschließlich der Erstellung von Besprechungsbots, der Suche nach Transkripten und der Organisation von Kalenderereignissen.
Related MCP Servers
- -securityFlicense-qualityA 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 -2Python
- -security-license-qualityA 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 -202TypeScript
- AsecurityFlicenseAqualityA 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 -1810TypeScript
- -securityFlicense-qualityA 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 -1TypeScript