项目简介

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

方式二:手动安装

  1. 克隆仓库
    git clone https://github.com/meAmitPatil/calendly-mcp-server.git
    cd calendly-mcp-server
  2. 安装依赖
    npm install
  3. 构建项目
    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):

  1. 获取授权URL: 向LLM发出请求:“生成Calendly OAuth授权URL,重定向到 'https://myapp.com/auth/callback'” (对应的工具调用为:'get_oauth_url redirect_uri="https://myapp.com/auth/callback"')
  2. 交换授权码: 用户在浏览器中授权后,您会获得一个 '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"')
  3. 刷新访问令牌: 如果访问令牌过期,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与计算