项目简介
Calendly 日程管理 MCP 服务器是一个强大的后端应用,它将 Calendly API 的丰富功能封装成LLM(大语言模型)可以理解和调用的工具。通过遵循 Model Context Protocol (MCP) 标准,它允许LLM客户端(如Claude Desktop)直接与Calendly系统交互,实现日程查询、事件管理、会议预订等操作。该服务器支持多种认证方式,包括个人访问令牌 (PAT) 和 OAuth 2.0,并且提供12个核心工具,涵盖了Calendly日程管理的关键方面。
主要功能点
- 用户与组织信息查询:获取当前认证用户及组织成员的详细信息。
- 事件管理:列出、查询、取消已安排的会议和活动。
- 受邀者管理:查看特定会议的受邀者列表。
- OAuth 2.0 认证流程:支持完整的OAuth认证流程,包括获取授权URL、交换授权码获取令牌和刷新访问令牌。
- 日程安排功能(需要付费Calendly计划):
- 列出可用的事件类型(例如“30分钟咨询”、“项目启动会”)。
- 查询特定事件类型的实时可用时间段。
- 直接预订会议,创建新的日程事件,并管理受邀者信息和会议地点。
- 上下文感知:支持通过环境变量预设用户和组织URI,提高API调用的效率和准确性。
安装步骤
本服务器推荐使用 'npx' 直接运行,无需本地安装。如果需要本地开发或构建,也可选择手动安装。
方式一:使用 NPX(推荐) 在终端中直接运行以下命令即可启动服务器:
npx calendly-mcp-server
方式二:手动安装
- 克隆仓库:
git clone https://github.com/meAmitPatil/calendly-mcp-server.git cd calendly-mcp-server - 安装依赖:
npm install - 构建项目:
npm run build
服务器配置
MCP 服务器需要与 MCP 客户端(如 Claude Desktop)进行配置才能建立连接。以下是您需要在 MCP 客户端中添加的配置示例,您需要根据您的认证方式填写相应的环境变量。
注意:MCP 服务器通过环境变量获取Calendly API密钥或OAuth凭据。请确保在MCP客户端的配置中设置这些环境变量。
使用个人访问令牌 (PAT)
{ "mcpServers": { "calendly": { "command": "npx", "args": ["calendly-mcp-server"], "env": { "CALENDLY_API_KEY": "您的_个人_访问_令牌_在这里", "CALENDLY_USER_URI": "https://api.calendly.com/users/您的_用户_ID_URI", "CALENDLY_ORGANIZATION_URI": "https://api.calendly.com/organizations/您的_组织_ID_URI" } } } }
- 'CALENDLY_API_KEY': 您的Calendly个人访问令牌,用于API认证。
- 'CALENDLY_USER_URI' (可选): 您的Calendly用户URI,用于自动填充API请求中的用户上下文。
- 'CALENDLY_ORGANIZATION_URI' (可选): 您的Calendly组织URI,用于自动填充API请求中的组织上下文。
使用 OAuth 2.0
{ "mcpServers": { "calendly": { "command": "npx", "args": ["calendly-mcp-server"], "env": { "CALENDLY_CLIENT_ID": "您的_OAuth_客户端_ID_在这里", "CALENDLY_CLIENT_SECRET": "您的_OAuth_客户端_密钥_在这里", "CALENDLY_ACCESS_TOKEN": "您的_访问_令牌_在这里", "CALENDLY_REFRESH_TOKEN": "您的_刷新_令牌_在这里", "CALENDLY_USER_URI": "https://api.calendly.com/users/您的_用户_ID_URI", "CALENDLY_ORGANIZATION_URI": "https://api.calendly.com/organizations/您的_组织_ID_URI" } } } }
- 'CALENDLY_CLIENT_ID': 您的Calendly OAuth应用客户端ID。
- 'CALENDLY_CLIENT_SECRET': 您的Calendly OAuth应用客户端密钥。
- 'CALENDLY_ACCESS_TOKEN' (可选): 预先获取的OAuth访问令牌。
- 'CALENDLY_REFRESH_TOKEN' (可选): 预先获取的OAuth刷新令牌。
- 'CALENDLY_USER_URI' (可选): 您的Calendly用户URI。
- 'CALENDLY_ORGANIZATION_URI' (可选): 您的Calendly组织URI。
如果您是手动安装并构建,'command' 和 'args' 需要改为:
{ "mcpServers": { "calendly": { "command": "node", "args": ["/path/to/calendly-mcp-server/dist/index.js"], // 替换为您的实际路径 "env": { // ... 您的认证环境变量 ... } } } }
基本使用方法
一旦在您的MCP客户端中配置并成功连接到Calendly MCP服务器,您就可以通过自然语言指令或直接调用工具来与Calendly进行交互。
OAuth 认证流程(如果您使用OAuth):
- 获取授权URL: 向LLM发出请求:“生成Calendly OAuth授权URL,重定向到 'https://myapp.com/auth/callback'” (对应的工具调用为:'get_oauth_url redirect_uri="https://myapp.com/auth/callback"')
- 交换授权码: 用户在浏览器中授权后,您会获得一个 'code'。将此 'code' 提供给LLM,例如:“使用授权码 'AUTHORIZATION_CODE' 和重定向URI 'https://myapp.com/auth/callback' 交换访问令牌。” (对应的工具调用为:'exchange_code_for_tokens code="AUTHORIZATION_CODE" redirect_uri="https://myapp.com/auth/callback"')
- 刷新访问令牌: 如果访问令牌过期,LLM可以调用刷新令牌工具:“刷新访问令牌,使用 'REFRESH_TOKEN'。” (对应的工具调用为:'refresh_access_token refresh_token="REFRESH_TOKEN"')
日程管理示例:
- 查看您的日程事件: 向LLM提问:“显示我最近的Calendly事件。” (对应的工具调用为:'list_events' 或 'list_events count=5')
- 查询特定事件详情: 向LLM提问:“给我UUID为 'EVENT_UUID_HERE' 的事件详情。” (对应的工具调用为:'get_event event_uuid="EVENT_UUID_HERE"')
- 取消事件: 向LLM提问:“取消UUID为 'EVENT_UUID_HERE' 的会议,因为我生病了。” (对应的工具调用为:'cancel_event event_uuid="EVENT_UUID_HERE" reason="Meeting no longer needed"')
- 列出事件类型: 向LLM提问:“显示我所有的Calendly事件类型。” (对应的工具调用为:'list_event_types')
- 检查可用时间: 向LLM提问:“查询我的30分钟咨询事件类型(URI:'https://api.calendly.com/event_types/AAAAAAAAAAAAAAAA')下周的可用时间。” (对应的工具调用为:'get_event_type_availability event_type="https://api.calendly.com/event_types/AAAAAAAAAAAAAAAA" start_time="2025-10-21T00:00:00Z" end_time="2025-10-28T00:00:00Z"')
- 预订会议(需要付费计划): 向LLM提问:“为 '[email protected]' 预订一个30分钟咨询会议,定在明天下午2点,他是纽约时区,通过Zoom进行。” (对应的工具调用为:'schedule_event event_type="https://api.calendly.com/event_types/AAAAAAAAAAAAAAAA" start_time="2025-10-21T18:00:00Z" invitee_email="[email protected]" invitee_timezone="America/New_York" location_kind="zoom_conference"')
注意事项
- 某些高级功能(如直接预订会议)需要Calendly的付费计划。
- 目前不支持通过API重新安排事件或创建新的事件类型,仅支持取消。
- 请注意Calendly API的速率限制。
信息
分类
AI与计算