calcom-mcp 是一个 FastMCP 服务器,用于与 Cal.com API 进行交互,让语言学习模型(LLMs)能够通过工具连接 Cal.com 的重要功能,例如管理事件类型和预订。项目声明:与 Cal.com 无隶属或背书关系,为独立开发者作品。
用途
该服务器让 LLM 能够以编程方式管理事件类型、创建预订并访问 Cal.com 的日程数据。
主要能力(可用工具)
服务器当前提供以下供 LLM 交互的工具:
- get_api_status():检查环境中是否已配置 Cal.com API 密钥,返回状态字符串。
- list_event_types():获取已认证账户的所有事件类型列表,返回包含事件类型列表或错误信息的字典。
- get_bookings(...):获取 Cal.com 的预订列表,支持可选过滤条件(event_type_id、user_id、status、date_from、date_to、limit),返回包含预订列表或错误信息的字典。
- create_booking(...):为特定事件类型和参会者创建新预订,需要 start_time、参会者详情、事件类型标识符等参数,返回包含预订详情或错误信息的字典。
- list_schedules(...):列出已认证用户或特定用户/团队可用的所有日程,可选过滤条件:user_id、team_id、limit,返回包含日程列表或错误信息的字典。
- list_teams(...):列出已认证用户可用的所有团队,可选过滤条件:limit,返回包含团队列表或错误信息的字典。
- list_users(...):列出已认证账户可用的所有用户,可选过滤条件:limit,返回包含用户列表或错误信息的字典。
- list_webhooks(...):列出已认证账户配置的所有 webhook,可选过滤条件:limit,返回包含 webhook 列表或错误信息的字典。 注意:所有工具都需要设置 CALCOM_API_KEY 环境变量。如果未设置,工具将返回结构化错误消息。
使用方式(安装与运行)
- 准备:需要一个 Cal.com 账户和 API Key (v2)。
- 克隆或下载文件: git clone https://github.com/Danielpeter-99/calcom-mcp.git cd calcom-mcp
- 创建虚拟环境(推荐): python -m venv venv source venv/bin/activate # On Windows: venv\Scripts\activate
- 安装依赖: pip install -r requirements.txt
- 设置 Cal.com API Key:需要设置 CALCOM_API_KEY 环境变量。API 密钥可从 Cal.com 设置页面(通常在 Developer 或 Security 设置下)获取。 Linux/macOS: export CALCOM_API_KEY="your_actual_api_key_here" 若要永久生效,可将此行添加到 shell 配置文件(如 .bashrc、.zshrc)。 Windows (PowerShell): $env:CALCOM_API_KEY="your_actual_api_key_here" 若要永久生效,可通过 System Properties > Environment Variables 设置。
- 运行服务器:设置完成后运行 FastMCP 服务器,服务器将在 localhost:8010 启动,若未设置 CALCOM_API_KEY 会显示警告。
工具使用与错误处理
所有工具返回 API 响应(字典或字符串)或包含失败详情的结构化错误消息。错误消息包含错误类型、HTTP 状态码(如适用)以及来自 Cal.com API 的响应文本。建议在使用返回数据前始终检查响应中是否存在 error 键。工具设计力求健壮,对成功和失败的 API 调用均提供信息性反馈。
开发说明
- Cal.com API 基础 URL 设为 https://api.cal.com/v2。
- 认证主要使用 Bearer token 与 CALCOM_API_KEY。
- create_booking 工具使用 cal-api-version: 2024-08-13 标头(依据 Cal.com API v2 文档中该端点的规定)。
- API 调用中包含错误处理,以提供信息性响应。
安全注意事项
切勿将 CALCOM_API_KEY 直接硬编码到源代码中。始终按照设置说明使用环境变量,以确保 API 密钥安全。