使用说明

项目简介

本项目是一个基于Model Context Protocol (MCP) 的服务器,旨在连接大型语言模型 (LLM) 客户端(如Claude)与Google Calendar。通过此服务器,用户可以使用自然语言指令,让LLM客户端直接操作和管理自己的Google日历,实现日程查看、会议安排等功能,提升工作效率和智能化体验。

主要功能点

  • 查看日程 (list_events): 查询指定时间范围内的Google日历事件。
  • 创建日程 (create_event): 在Google日历上创建新的日程事件,包括主题、时间、参与者等。
  • 更新日程 (update_event): 修改已有的Google日历事件,例如更改时间或描述。
  • 删除日程 (delete_event): 删除Google日历上的指定事件。
  • 查找空闲时间 (find_free_time): 在指定时间范围内,查找指定时长的空闲时间段,方便用户安排会议或活动。

安装步骤

  1. 创建Google Cloud项目并启用Google Calendar API: 按照仓库README.md中的步骤1和步骤2操作,创建Google Cloud项目,启用Google Calendar API,并配置OAuth同意屏幕。
  2. 创建OAuth 2.0凭据: 按照仓库README.md中的步骤3操作,创建OAuth 2.0桌面应用凭据,并下载客户端配置JSON文件,获取客户端ID和客户端密钥。
  3. 获取Refresh Token: 按照仓库README.md中的步骤4操作,运行 'getToken.js' 脚本,替换脚本中的占位符 'your-client-id' 和 'your-client-secret' 为实际的客户端ID和客户端密钥,运行脚本后按照提示在浏览器中完成OAuth授权,并在终端获取Refresh Token。
  4. 项目初始化: 按照仓库README.md中的 "Initial Project Setup" 步骤操作,创建项目目录,初始化npm项目,安装依赖,创建 'tsconfig.json' 和 '.env' 文件。
  5. 配置环境变量: 将步骤2和步骤3中获取的客户端ID、客户端密钥和Refresh Token,以及 'http://localhost' 作为 'GOOGLE_REDIRECT_URI' 填入项目根目录下的 '.env' 文件中。
  6. 构建项目: 在项目根目录下运行 'npm run build' 命令,编译TypeScript代码并生成可执行的 'build/index.js' 文件。

服务器配置

要将此MCP服务器配置到MCP客户端(例如Claude Desktop),您需要编辑客户端的配置文件(例如Claude Desktop的 'claude_desktop_config.json' 文件),添加如下服务器配置信息。请将 '/ABSOLUTE/PATH/TO/YOUR/build/index.js' 替换为 'build/index.js' 文件的绝对路径

{
    "mcpServers": {
        "google-calendar": {
            "command": "node",
            "args": [
                "/ABSOLUTE/PATH/TO/YOUR/build/index.js"
            ],
            "env": {
                "GOOGLE_CLIENT_ID": "your_client_id_here", // 您的Google Cloud客户端ID
                "GOOGLE_CLIENT_SECRET": "your_client_secret_here", // 您的Google Cloud客户端密钥
                "GOOGLE_REDIRECT_URI": "http://localhost", // 固定为 http://localhost
                "GOOGLE_REFRESH_TOKEN": "your_refresh_token_here" // 您获取的Refresh Token
            }
        }
    }
}

基本使用方法

配置完成后,重启MCP客户端。在客户端中,您可以使用自然语言指令调用Google日历的功能。例如,在Claude中可以尝试以下指令:

  • "Show me my calendar events for next week" (显示我下周的日历事件)
  • "Schedule a meeting with [email_id] tomorrow at 2 PM for 1 hour" (明天下午2点与 [email_id] 安排一个1小时的会议)
  • "Find a free 30-minute slot this afternoon" (今天下午找一个30分钟的空闲时间)
  • "Update my 3 PM meeting to 4 PM" (将我下午3点的会议更新到4点)
  • "Cancel my meeting with ID [event_id]" (取消ID为 [event_id] 的会议)

请根据您的MCP客户端的具体指令格式进行调整。

信息

分类

生产力应用