内容
# Meet.bot MCP(模型上下文协议)
Meet.bot MCP(模型上下文协议)服务器,用于 Meet.bot 预订页面 API,启用 AI 助手与会议安排和预订功能交互。
## 这是什么?
该MCP服务器连接AI助手(如Claude、ChatGPT等支持MCP的助手)到您的Meet.bot账户,允许它们代表您安排会议。您无需手动复制预订链接或查看日历,只需让AI助手“安排与John的30分钟会议,下周”,它将通过您的MeetBot预订页面处理预订。
**工作原理:**
1. 将您的MeetBot API令牌连接到MCP服务器
2. 配置您的AI助手使用此MCP服务器
3. 请求您的AI助手安排会议 - 它可以检查您的可用时间、查找时间段并直接通过您的MeetBot账户预订会议
对于希望自动化会议安排并让AI助手智能管理日历的忙碌专业人士来说,这尤其有用。
如果您没有账户,可以在 https://meet.bot 免费获取一个。
## 功能
- **完整的API覆盖**: 实现Meet.bot预订页面API v1的所有端点
- **类型安全**: 具有全面的类型定义的完整TypeScript支持
- **运行时验证**: 输入验证和数据完整性的Zod模式
- **身份验证支持**: Bearer令牌身份验证
- **错误处理**: 具有详细错误消息的强大错误处理
- **健康检查**: 使用/v1/pages端点的内置健康监控
- **MCP协议合规**: 完整的模型上下文协议服务器实现
- **双模式支持**: 本地运行(stdio)或远程运行(HTTP/SSE)
- **生产部署**: https://mcp.meet.bot上线
- **生产就绪**: 经过彻底测试和验证,可用于生产
## 安装
```bash
npm install @meetbot/mcp
```
## 快速入门
### 1. 安装和配置
```bash
# 安装软件包
npm install @meetbot/mcp
# 或全局安装以进行CLI使用
npm install -g @meetbot/mcp
```
### 2. 身份验证
身份验证**不是**工具 - 它是基于连接的:
- **HTTP/SSE(远程,例如https://mcp.meet.bot)**:在连接时在请求头中发送`Authorization: Bearer <your_api_token>`。服务器在该会话中将此令牌用于所有API调用。
- **Stdio(本地)**:在启动服务器时设置`MEETBOT_AUTH_TOKEN`环境变量(例如`MEETBOT_AUTH_TOKEN=your_token npx @meetbot/mcp`)。
没有`configure_meetbot`或类似的工具; AI使用下面的工具,身份验证由连接处理。
### 3. 使用可用工具
MCP服务器提供以下工具:
#### 获取会议安排页面
```typescript
await get_scheduling_pages();
// 返回经过身份验证的用户的所有会议安排页面
```
#### 获取页面信息
```typescript
await get_page_info({
page: "https://meet.bot/user/30min"
});
// 返回特定会议安排页面的详细信息
```
#### 获取可用时间段
```typescript
await get_available_slots({
page: "https://meet.bot/user/30min",
count: 10,
start: "2025-01-01",
end: "2025-01-31",
timezone: "America/New_York",
booking_link: true
});
// 返回可选筛选器的可用预订时间段
```
#### 预订会议
```typescript
await book_meeting({
page: "https://meet.bot/user/30min",
guest_email: "guest@example.com",
guest_name: "Jane Doe",
notes: "会议讨论项目需求",
start: "2025-01-15T14:00:00Z"
});
// 预订新的会议时间段
```
#### 健康检查
```typescript
await health_check();
// 使用/v1/pages端点验证API连接性
```
#### Webhooks
在会议预订、重新安排或取消时立即通知。Meet.bot为每个事件(`booking_received`、`booking_rescheduled`、`booking_cancelled`)向您的URL发送带有HS256签名的JSON有效载荷 - 与合作伙伴Webhook相同的约定。
```typescript
// 列出您的Webhook
await list_webhooks();
// 创建(省略id)或更新(传递id)Webhook
await set_webhook({
webhook_url: "https://your-app.example.com/meetbot-hook",
description: "CRM同步",
coverage: "all", // 或 "selected" 包含页面:[<页面ID>, ...]
scope: "self" // 团队管理员可以使用 "team" 同时接收团队成员的预订
});
// 返回用于验证签名的共享密钥。
// 删除Webhook
await delete_webhook({ id: 123 });
```
## 部署选项
MCP服务器可以在两种模式下运行:
### 1. 本地模式(Stdio传输)
用于与Claude Desktop等AI助手进行本地集成。使用stdio传输进行通信。
```bash
# 本地运行
npx @meetbot/mcp
# 或使用环境变量
MEETBOT_AUTH_TOKEN="your_token" npx @meetbot/mcp
```
### 2. HTTP模式(SSE传输)
用于远程部署,支持HTTP/SSE传输。这样,MCP服务器可以通过网络访问。
#### 运行HTTP服务器
```bash
# 构建并启动HTTP服务器
npm run build
npm run start:http
# 或使用自定义端口
PORT=8080 npm run start:http
# 或直接使用npx运行
npx meetbot-mcp-http
```
#### 服务器端点
- **SSE端点**:`GET /sse` - 建立MCP通信的SSE连接
- **消息端点**:`POST /messages?sessionId=<id>` - 接收客户端消息
- **健康检查**:`GET /health` - 服务器健康状态
#### 身份验证
所有请求都需要Authorization头中的Bearer令牌:
```bash
Authorization: Bearer <your-meetbot-api-token>
```
与Meet.bot API进行身份验证时使用相同的令牌。
#### 测试HTTP服务器
**本地测试:**
```bash
# 健康检查(如果没有身份验证,应该失败)
curl http://localhost:3000/health
# 带有身份验证的健康检查
curl -H "Authorization: Bearer YOUR_TOKEN" http://localhost:3000/health
# 连接到SSE端点
curl -N -H "Authorization: Bearer YOUR_TOKEN" http://localhost:3000/sse
# 或使用测试脚本
./test-http-server.sh YOUR_TOKEN
```
**生产测试:**
```bash
# 测试上线部署
curl -H "Authorization: Bearer YOUR_TOKEN" \
https://mcp.meet.bot/health
# 预期响应:
# {"status":"ok","service":"meetbot-mcp"}
```
#### 部署
HTTP服务器可以部署到各种平台:
- **Railway**:`railway up` ✅ **上线 https://mcp.meet.bot**
- **Fly.io**:`fly launch && fly deploy`
- **Google Cloud Run**:基于容器的部署
- **AWS App Runner**:基于容器的部署
- **任意VPS**:直接使用Node.js运行
**示例:连接到生产环境**
```bash
# 您的MCP客户端应连接到:
# https://mcp.meet.bot/sse
# 带有Authorization头:
# Authorization: Bearer <your-meetbot-api-token>
```
示例Dockerfile:
```dockerfile
FROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY dist ./dist
EXPOSE 3000
CMD ["node", "dist/cli-http.js"]
```
## MCP集成
### 与AI助手一起使用
此MCP服务器可以与Claude、ChatGPT等支持模型上下文协议的AI助手集成。
#### 配置示例
```json
{
"mcpServers": {
"meetbot": {
"command": "npx",
"args": ["@meetbot/mcp"],
"env": {
"MEETBOT_AUTH_TOKEN": "your_bearer_token_here"
}
}
}
}
```
#### 可用MCP工具
服务器为AI助手公开了8种工具:
1. **`get_scheduling_pages`** - 列出所有会议安排页面
2. **`get_page_info`** - 获取页面详细信息
3. **`get_available_slots`** - 查找可用时间段
4. **`book_meeting`** - 预订会议
5. **`health_check`** - 使用/v1/pages端点验证API连接性
6. **`list_webhooks`** - 列出您的出站会议Webhook
7. **`set_webhook`** - 创建或更新Webhook(会议接收/会议重新安排/会议取消)
8. **`delete_webhook`** - 删除Webhook
身份验证由连接提供(远程的HTTP头中的Bearer令牌,或本地的`MEETBOT_AUTH_TOKEN`)- 没有单独的配置工具。
### 测试和验证
该软件包已经过彻底测试和验证:
✅ **MCP协议合规**: 完整的JSON-RPC 2.0支持
✅ **工具发现**: 所有5种工具正确公开
✅ **错误处理**: 优雅的错误响应
✅ **类型安全**: 完整的TypeScript支持
✅ **模式验证**: 使用Zod进行输入验证
✅ **生产就绪**: 已使用真实MCP客户端测试
### 软件包统计
- **软件包大小**: 12.8 kB(58.0 kB解压)
- **测试覆盖率**: 21个通过的测试
- **依赖项**: 3个生产依赖项
- **TypeScript**: 100%类型覆盖
- **构建状态**: ✅ 通过
- **npm注册表**: 已发布并可用
## 用例
### 作为库
```typescript
import { MeetbotClient, MeetbotMCPServer } from '@meetbot/mcp';
// 直接作为API客户端使用
const client = new MeetbotClient({
authToken: 'your_token'
});
// 作为MCP服务器使用
const server = new MeetbotMCPServer();
await server.run();
```
### 作为MCP服务器
```bash
# 运行MCP服务器
npx @meetbot/mcp
# 或全局安装
npm install -g @meetbot/mcp
meetbot-mcp
```
## API参考
### MeetbotClient
用于直接集成的核心API客户端:
```typescript
import { MeetbotClient } from '@meetbot/mcp';
const client = new MeetbotClient({
authToken: 'your_token'
});
// 获取所有会议安排页面
const pages = await client.getPages();
// 获取页面信息
const pageInfo = await client.getPageInfo({
page: 'https://meet.bot/user/30min'
});
// 获取可用时间段
const slots = await client.getSlots({
page: 'https://meet.bot/user/30min',
count: 20
});
// 预订会议
const booking = await client.bookSlot({
page: 'https://meet.bot/user/30min',
guest_email: 'guest@example.com',
guest_name: 'Jane Doe',
start: '2025-01-15T14:00:00Z'
});
```
### 数据类型
所有API响应都具有完整的类型:
```typescript
interface BookSlot {
success: boolean;
page: string;
guest_email: string;
guest_name: string;
notes?: string;
start: string;
ical_uid: string;
}
interface PageInfo {
title: string;
duration: number;
url: string;
owner_name: string;
max_days_into_the_future: number;
}
interface Slots {
count: number;
duration: number;
slots: SlotDetails[];
}
```
## 配置
### 环境变量
您可以使用环境变量配置MCP服务器:
```bash
export MEETBOT_AUTH_TOKEN="your_bearer_token"
# 然后运行服务器
meetbot-mcp
```
### 身份验证
身份验证基于连接,而不是工具:
- **HTTP/SSE**:在连接到MCP服务器时,在请求头中发送`Authorization: Bearer <token>`。
- **Stdio**:在运行服务器时设置`MEETBOT_AUTH_TOKEN`(例如`MEETBOT_AUTH_TOKEN=your_token meetbot-mcp`)。
## 开发
### 运行测试
```bash
npm test
npm run test:watch
```
### 校验
```bash
npm run lint
npm run lint:fix
```
## CLI用法
该软件包包含用于运行MCP服务器的命令行界面:
```bash
# 全局安装
npm install -g @meetbot/mcp
# 运行MCP服务器
meetbot-mcp
# 或直接使用npx(无需安装)
npx @meetbot/mcp
```
### 环境变量
您可以使用环境变量配置服务器:
```bash
export MEETBOT_AUTH_TOKEN="your_bearer_token"
# 然后运行服务器
meetbot-mcp
```
## 错误处理
MCP服务器提供常见问题的详细错误消息:
- **配置错误**: 缺少或无效的配置参数
- **身份验证错误**: 无效的令牌
- **API错误**: 来自Meet.bot API的详细错误消息
- **验证错误**: 输入验证失败,并具有特定的字段错误
## 贡献
1. 复刻仓库
2. 创建功能分支
3. 进行更改
4. 为新功能添加测试
5. 提交拉取请求
## 许可证
MIT许可证 - 有关详细信息,请参见[LICENSE](LICENSE)文件。
## 支持
- **文档**: [https://docs.meet.bot](https://docs.meet.bot)
- **问题**: [GitHub Issues](https://github.com/poolside-ventures/meetbot-mcp/issues)
- **讨论**: [GitHub Discussions](https://github.com/poolside-ventures/meetbot-mcp/discussions)
## 更新日志
### 1.2.10
- **修复(stdio启动崩溃)**:stdio服务器(`npx @meetbot/mcp`)声明了一个工具处理程序,但没有公开`tools`功能,因此MCP SDK抛出“服务器不支持工具”,进程在启动时退出。现在声明`capabilities.tools`;服务器启动并回答`initialize` + `tools/list`(无需令牌进行内省)。
### 1.2.9
- **服务器卡片**:添加了`/.well-known/mcp/server-card.json`用于发现和手动元数据(工具、提示、身份验证)
- **Smithery质量**:工具注释(`audience`、`priority`)、更丰富的参数描述和用于质量评分的提示功能
- **提示(技能)**:适用于Smithery和客户端的六个MCP提示:`schedule_meeting`、`check_availability`、`book_for_guest`、`share_booking_link`、`list_my_pages`、`suggest_times`,支持完整的`prompts/list`和`prompts/get`
### 1.2.7
- **示例配置更新**:从示例配置中删除了过时的`MEETBOT_BASE_URL`
### 1.2.6
- **文档更新**:将生产URL从Railway更新为https://mcp.meet.bot
- **增强README**:添加了“What is this?”部分,解释MCP的用途以及如何使用它通过MeetBot账户安排会议
- **用户注册**:添加了注册免费Meet.bot账户的链接
### 1.2.5
- **Jest配置**:更新Jest配置以支持ES模块支持
- **构建改进**:从TypeScript编译中排除了测试文件
- **发布**:改进了发布检查清单和文档
### 1.1.1
- **ES模块修复**:修复了Railway和其他Node.js部署的ES模块兼容性
- **导入扩展名**:在所有相对导入中添加了正确的`.js`扩展名
- **上线部署**:成功部署到https://mcp.meet.bot
- **生产验证**:确认在生产环境中正常运行
### 1.1.0
- **HTTP/SSE传输**:添加了带有SSE传输的HTTP服务器用于远程部署
- **Bearer令牌身份验证**:为HTTP端点实现了身份验证
- **多模式支持**:可以作为本地stdio服务器或远程HTTP服务器运行
- **部署就绪**:添加了Dockerfile和Railway、Fly.io等的部署配置
- **健康检查端点**:添加了`/health`端点用于监控
- **会话管理**:具有传输清理的正确会话处理
- **生产就绪**:完整的HTTP实现,具有身份验证和错误处理
### 1.0.4
- **修复健康检查**:现在使用真正的`/v1/pages`端点而不是假健康端点
- **文档更新**:澄清了健康检查实现细节
- **提高可靠性**:健康检查现在正确验证API连接性
### 1.0.3
- **简化配置**:删除了baseUrl要求 - 现在硬编码为https://meet.bot
- **文档更新**:简化配置示例
- **提高UX**:用户只需提供authToken
### 1.0.2
- **修复身份验证**:删除了不支持的sessionId参数
- **纠正API URL**:从api.meet.bot更新为meet.bot
- **文档更新**:准确的身份验证示例
### 1.0.1
- **增强文档**:全面的README文件,包含使用示例
- **MCP集成指南**:添加了AI助手配置示例
- **测试结果**:添加了验证和测试信息
### 1.0.0
- **初始发布** - Meet.bot API的生产就绪MCP服务器
- **完整的API覆盖** - 完整的Meet.bot预订页面API v1端点
- **TypeScript支持**:完整的类型安全支持
- **运行时验证**:输入验证和数据完整性的Zod模式
- **MCP服务器实现**:完整的模型上下文协议合规
- **CLI工具**:用于运行MCP服务器的命令行界面
- **错误处理**:具有详细消息的强大错误处理
- **身份验证**:支持Bearer令牌身份验证
- **健康检查**:使用/v1/pages端点进行API连接监控
- **测试**:综合测试套件,包含21个通过测试
- **文档**:完整的API文档和使用示例
- **功能测试**:使用真实MCP客户端请求验证
- **npm发布**:成功发布到npm注册表