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.
会议 BaaS MCP 服务器
模型上下文协议 (MCP) 服务器提供用于管理会议数据的工具,包括记录、录音、日历事件和搜索功能。
概述
该项目实现了一个模型上下文协议 (MCP) 服务器,允许 Claude 和 Cursor 等 AI 助手访问和操作会议数据。它公开了一组工具和资源,可用于:
- 邀请会议机器人:创建并邀请机器人参加您的视频会议,自动记录和转录会议内容Copy
- 查询会议数据:搜索会议记录并查找特定信息,无需观看整个记录Copy
- 管理日历事件:查看和组织日历条目和即将召开的会议
- 访问记录信息:获取有关会议记录及其状态的元数据
先决条件
- Node.js(v16 或更高版本)
- npm
- MeetingBaaS 帐户:您需要使用公司电子邮件地址访问 MeetingBaaS 帐户
- 所有日志、机器人和共享链接均可供具有相同公司域名的同事使用(而不是像 gmail.com 这样的个人电子邮件)
- 这样可以实现无缝协作,所有团队成员都可以访问组织中任何人创建的会议记录和文字记录
安装
- 克隆存储库:Copy
- 安装依赖项:Copy
- 构建项目:Copy
用法
启动服务器:
默认情况下,服务器在端口 7017 上运行,并在http://localhost:7017/mcp
公开 MCP 端点。
可用工具
服务器通过 MCP 协议公开了几个工具:
日历工具
oauthGuidance
:获取有关为 Google 或 Microsoft 日历设置 OAuth 的详细分步说明- 无需参数
- 返回获取 OAuth 凭证和设置日历集成的全面说明
listRawCalendars
:在集成之前列出 Google 或 Microsoft 提供的日历- 参数:
platform
(“Google”或“Microsoft”)、clientId
、clientSecret
、refreshToken
- 返回可用日历及其 ID 和主要状态的列表
- 参数:
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
(用于流式音频输入的可选 WebSocket URL)streamingOutputUrl
(可选的 WebSocket URL,用于流音频输出)streamingAudioFrequency
(可选流频率:“16khz”或“24khz”)extra
(可选对象,包含有关会议的附加元数据,例如会议类型、自定义摘要提示、搜索关键字)
- 返回:机器人详细信息,包括 ID 和加入状态
- 参数:
getBots
:列出所有机器人及其相关会议getBotsByMeeting
:获取特定会议 URL 的机器人getRecording
:检索特定机器人/会议的记录信息getRecordingStatus
:检查正在进行的录音的状态getMeetingData
:获取特定会议的记录和录音数据- 参数:
meetingId
(要获取数据的会议的ID) - 返回:有关会议记录的信息,包括持续时间和记录片段数
- 参数:
getMeetingDataWithCredentials
:使用直接 API 凭证获取记录和录音数据- 参数:
meetingId
(会议ID)、apiKey
(用于身份验证的API密钥) - 返回:与
getMeetingData
相同的信息,但具有直接身份验证
- 参数:
成绩单工具
getMeetingTranscript
:获取会议记录,其中包含发言人姓名和按发言人分组的内容- 参数:
botId
(录制会议的机器人) - 返回:包含演讲者信息的完整记录,按演讲者分组格式化为段落
- 示例输出:Copy
- 参数:
findKeyMoments
:自动识别并分享会议中重要时刻的链接- 参数:
botId
、可选的meetingTitle
、可选的要查找的topics
列表以及可选的maxMoments
- 返回:带有链接的关键时刻的 Markdown 格式列表,根据成绩单自动检测
- 使用人工智能分析来查找重要时刻,无需手动选择时间戳
- 参数:
二维码工具
generateQRCode
:创建可用作机器人头像的 AI 生成的二维码图像- 参数:
type
:二维码类型(url、电子邮件、电话、短信、文本)to
:二维码的目的地(URL、电子邮件、电话号码或文本)prompt
:AI 提示自定义二维码(最多 1000 个字符)。您可以直接在提示文本中输入“API key: qrc_your_key”或类似短语,包含您的 API 密钥。style
:二维码样式(style_default、style_dots、style_rounded、style_crystal)useAsBotImage
:是否使用生成的二维码作为机器人头像(默认值:true)template
:二维码的模板 ID(可选)apiKey
:您的 QR Code AI API 密钥(可选,如果未提供则使用默认密钥)
- 返回:生成的二维码图像的 URL,可直接与 joinMeeting 工具一起使用
- 使用示例:Copy
- 提示中包含 API 密钥的示例:Copy
- 带有形式参数的示例:Copy
- 参数:
链接共享工具
shareableMeetingLink
:生成格式良好、可共享的会议记录链接- 参数:
botId
,以及可选的timestamp
、title
、speakerName
和description
- 返回:Markdown 格式的链接,其中包含可在聊天中直接共享的元数据
- 例子:Copy
- 参数:
shareMeetingSegments
:创建指向会议中多个重要时刻的链接列表- 参数:
botId
以及包含时间戳、发言人和描述的segments
数组 - 返回:Markdown 格式的片段列表,包含每个时刻的直接链接
- 适用于创建长时间会议的目录
- 参数:
示例工作流程
录制会议
- 为即将召开的会议创建一个机器人:Copy
- 机器人会自动加入会议并开始录制。
- 检查录音状态:Copy
日历集成和自动记录
- 获取有关获取 OAuth 凭证的指导:Copy
- 集成之前列出您的可用日历:Copy
- 设置与特定日历的日历集成:Copy
- 查看即将召开的会议:Copy
- 安排即将召开的会议的录制:Copy
- 检查日历中安排的所有录音:Copy
- 取消之前安排的录制:Copy
- 如果缺少会议,则刷新日历数据:Copy
简化日历集成
为了更简单地实现日历集成,您可以直接在 Claude Desktop 配置文件中配置日历 OAuth 凭据:
- 编辑配置文件:Copy
- 将
calendarOAuth
部分添加到您的 botConfig:Copy - 保存文件并重新启动 Claude Desktop - 您的日历将自动集成。
这种方法无需手动调用 OAuth 设置工具,从而使日历集成成为一次性配置任务。
**注意:**日历集成完全可选。您只需在配置中省略
calendarOAuth
部分,即可在不连接日历的情况下使用会议 BaaS。日历集成功能可让您访问即将召开的会议,并自动记录日历事件,从而提升使用体验。
分析会议内容
- 获取会议的完整记录:Copy
- 找到会议中的关键时刻:Copy
- 分享会议中的特定时刻:Copy
使用直接凭证工具
您可以在查询中直接提供 API 凭证:
- 列出具有直接凭证的事件:Copy
- 使用直接凭证安排录音:Copy
- 使用直接凭证取消录音:Copy
- 使用直接凭证获取会议数据:Copy
使用人工智能生成的二维码作为机器人头像
- 生成包含您的联系信息和自定义设计的二维码:Copy
- 使用生成的二维码作为会议中的机器人头像:Copy
- 生成带有会议链接的二维码,以便于分享:Copy
访问会议记录
可以使用机器人 ID 直接通过会议 BaaS 查看器访问会议记录:
例如:
该查看器提供:
- 会议录像
- 同步文字记录,可识别说话人
- 按演讲者或主题导航
- 与队友直接共享链接
当使用createBot
、 getBots
或搜索工具时,您将收到可用于构建这些查看器 URL 的机器人 ID,以便轻松访问录音。
重要提示:所有会议录音和链接都会自动与使用相同公司邮箱域名(例如 @yourcompany.com)的同事共享。这样,您的整个团队无需单独授权即可访问录音,从而营造一个协作环境,让组织中的每个人都能访问会议内容。
配置
可以通过环境变量或编辑src/config.ts
文件来配置服务器。
关键配置选项:
PORT
:服务器监听的端口(默认值:7017)API_BASE_URL
:会议 BaaS API 的基本 URLDEFAULT_API_KEY
:用于测试的默认 API 密钥
与 Claude Desktop 集成
与 Claude Desktop 集成:
- 编辑Claude桌面配置文件:Copy
- 添加会议 BaaS MCP 服务器配置:**注意:**将Copy
/path/to/meeting-mcp
替换为您本地存储库的路径,并将YOUR_API_KEY
替换为您实际的 API 密钥。**重要提示:**请确保您使用的 API 密钥与您的公司邮箱账户关联。所有录音、机器人日志和共享链接将自动提供给使用相同邮箱域名的同事,从而实现无缝的团队协作。
**关于二维码 API 的注意事项:**二维码 API 使用与会议 BaaS API 相同的标头名称 (
x-api-key
),但必须单独配置。要使用二维码生成功能,您应该使用下面“二维码 API 密钥配置”部分中描述的方法之一,例如设置环境变量或直接在提示符中包含密钥。 - 重新启动 Claude Desktop。
配置说明:
command
指定要使用的 shellargs
包含命令行参数:cd
到你的项目目录- 构建项目并将错误输出重定向到 stderr
- 使用
MCP_FROM_CLAUDE=true
环境变量运行服务器,以指示它从 Claude Desktop 运行
headers
包含用于身份验证的 API 密钥:x-api-key
:用于访问会议服务的会议 BaaS API 密钥
botConfig
允许您自定义机器人的外观和行为:name
:会议中显示的机器人名称(默认值:“Claude Assistant”)image
:可公开访问的图像的 URL,用作机器人的头像(可选)entryMessage
:机器人加入会议时发送的消息(可选)deduplicationKey
:用于覆盖加入同一场会议的 5 分钟限制的唯一密钥(可选)nooneJoinedTimeout
:如果没有参与者加入,机器人离开的超时时间(秒)(可选)waitingRoomTimeout
:如果机器人被困在等候室,则以秒为单位超时离开(可选)speechToTextProvider
:用于转录的提供商(“Gladia”,“Runpod”,“Default”)(可选)speechToTextApiKey
:语音转文本提供商的 API 密钥(如果需要)(可选)calendarOAuth
:使用 OAuth 凭证直接集成日历(可选)platform
:“Google”或“Microsoft”clientId
:您的 OAuth 客户端 IDclientSecret
:您的 OAuth 客户端密钥refreshToken
:您的 OAuth 刷新令牌rawCalendarId
:需要集成的特定日历的可选 ID
extra
:有关会议的附加元数据,用于增强 AI 能力(可选)- 例如:GXP38
extra
字段非常灵活 - 您可以添加任何适合您的组织和用例的结构化元数据。
与 Cursor 集成
与 Cursor 集成:
- 打开游标
- 前往“设置”
- 导航至“模型上下文协议”
- 添加新服务器:
- 名称:“会议 BaaS MCP”
- 类型:“sse”
- 服务器 URL:“ http://localhost:7017/mcp ”
- 如果需要身份验证,可以选择添加标头
发展
建造
使用 MCP Inspector 进行测试
开发模式(自动重新加载)
日志管理
该服务器包括优化的日志记录:
此命令:
- 清理不必要的日志文件和缓存数据
- 从日志中过滤掉重复的 ping 消息
- 减少磁盘使用量,同时保留重要的日志信息
- 为长期运行的服务器维护较小的日志占用空间
项目结构
src/index.ts
:主入口点src/tools/
:工具实现src/resources/
:资源定义src/api/
:会议 BaaS 后端的 API 客户端src/types/
:TypeScript 类型定义src/config.ts
:服务器配置src/utils/
:实用程序函数logging.ts
:日志过滤和管理tinyDb.ts
:持久机器人跟踪数据库
验证
服务器需要x-api-key
标头中的 API 密钥进行身份验证。您可以在配置中配置默认 API 密钥。
许多工具(以“WithCredentials”命名)也支持直接身份验证,您可以直接将 API 密钥作为参数提供,而不是在标题中提供。
执照
二维码 API 密钥配置
二维码生成器工具需要 QR Code AI API 的 API 密钥。您可以通过以下几种方式获取密钥:
- 直接在提示中:使用
generateQRCode
工具时,直接在提示文本中包含您的 API 密钥,例如“使用 API 密钥为我的网站https://example.com生成二维码:qrc_your_key” - 作为参数:使用
generateQRCode
工具时,提供您的 API 密钥作为apiKey
参数 - 环境变量:设置
QRCODE_API_KEY
环境变量 - Claude Desktop 配置:将 API 密钥添加到位于以下位置的 Claude Desktop 配置文件中:
- Mac/Linux:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
%APPDATA%\Claude\claude_desktop_config.json
示例配置:
Copy - Mac/Linux:
该工具将按上述顺序检查 API 密钥。如果未提供 API 密钥,则会使用默认 API 密钥(如果可用)。
您可以通过在QR Code AI API注册来获取 API 密钥。
This server cannot be installed
模型上下文协议服务器使 AI 助手能够管理会议数据,包括创建会议机器人、搜索记录和组织日历事件。