Integrations
Enables reading, creating, and managing Google Calendar events, including listing available calendars, creating/updating/deleting events, and processing events from screenshots and images.
Google 日历 MCP 服务器
这是一个模型上下文协议 (MCP) 服务器,提供与 Google 日历的集成。它允许 LLM 通过标准化接口读取、创建和管理日历事件。
特征
- 列出可用的日历
- 列出日历中的事件
- 创建新的日历事件
- 更新现有事件
- 删除事件
- 处理屏幕截图和图像中的事件
要求
- Node.js 16 或更高版本
- TypeScript 5.3 或更高版本
- 启用了日历 API 的 Google Cloud 项目
- OAuth 2.0 凭证(客户端 ID 和客户端密钥)
项目结构
Copy
Google Cloud 设置
- 前往Google Cloud Console
- 创建新项目或选择现有项目。
- 为您的项目启用Google 日历 API 。启用 API 之前,请确保从顶部栏中选择了正确的项目。
- 创建 OAuth 2.0 凭据:
- 前往凭证
- 点击“创建凭证”>“OAuth 客户端 ID”
- 选择“用户数据”作为应用将访问的数据类型
- 添加您的应用名称和联系信息
- 添加以下范围(可选):
https://www.googleapis.com/auth/calendar.events
- 选择“桌面应用”作为应用程序类型
- 在OAuth 同意屏幕下将您的电子邮件地址添加为测试用户
- 注意:添加测试用户需要几分钟时间。在测试用户传播之前,OAuth 同意不允许您继续操作。
安装
- 克隆存储库
- 安装依赖项:Copy
- 构建 TypeScript 代码:Copy
- 从 Google Cloud Console(在“凭据”下)下载您的 Google OAuth 凭据,并将文件重命名为
gcp-oauth.keys.json
并将其放在项目的根目录中。
可用脚本
npm run build
构建 TypeScript 代码npm run build:watch
- 在监视模式下构建 TypeScript 以供开发npm run dev
- 使用 ts-node 以开发模式启动服务器npm run auth
- 启动 Google OAuth 流程的身份验证服务器
验证
服务器支持自动和手动身份验证流程:
自动身份验证(推荐)
- 将您的 Google OAuth 凭据放在项目根目录中名为
gcp-oauth.keys.json
的文件中。 - 启动 MCP 服务器:Copy
- 如果没有找到有效的身份验证令牌,服务器将自动:
- 启动身份验证服务器(在端口 3000-3004 上)
- 打开浏览器窗口以查看 OAuth 流程
- 身份验证后安全保存令牌
- 关闭身份验证服务器
- 继续正常的 MCP 服务器运行
服务器在需要时自动管理令牌刷新和重新认证:
- 令牌在到期前自动刷新
- 如果刷新失败,清晰的错误消息将指导您重新进行身份验证
- 令牌文件以受限权限安全存储
手动身份验证
对于高级用户或故障排除,您可以手动运行身份验证流程:
Copy
这将:
- 启动认证服务器
- 打开浏览器窗口以查看 OAuth 流程
- 保存令牌并退出
安全说明
- OAuth 凭据存储在
gcp-oauth.keys.json
中 - 身份验证令牌存储在
.gcp-saved-tokens.json
中,具有 600 个权限 - 令牌在后台自动刷新
- 每次 API 调用前都会验证令牌的完整性
- 身份验证成功后,身份验证服务器自动关闭
- 切勿将 OAuth 凭证或令牌文件提交到版本控制
用法
该服务器公开以下工具:
list-calendars
:列出所有可用的日历list-events
:列出日历中的事件create-event
:创建一个新的日历事件update-event
:更新现有日历事件delete-event
:删除日历事件
与 Claude Desktop 一起使用
- 将此配置添加到您的 Claude Desktop 配置文件中。例如
/Users/<user>/Library/Application Support/Claude/claude_desktop_config.json
:Copy - 重启Claude桌面
示例用法
除了日历集成所具有的常规功能外,您还可以执行真正动态的操作,例如从屏幕截图和图像添加事件等等。
- 从屏幕截图和图像添加事件:支持的图像格式:PNG、JPEG、GIF 图像可以包含事件详细信息,如日期、时间、地点和描述Copy
- 检查出勤情况:Copy
- 自动协调事件:Copy
- 提供您自己的可用性:Copy
发展
故障排除
常见问题及解决方案:
- OAuth 令牌在一周(7 天)后过期
- 处于测试模式而非生产模式的应用程序将需要在一周后再次经历 OAuth 流程。
- OAuth 令牌错误
- 确保您的
gcp-oauth.keys.json
格式正确 - 尝试删除
.gcp-saved-tokens.json
并重新进行身份验证
- 确保您的
- TypeScript 构建错误
- 确保所有依赖项都已安装:
npm install
- 检查你的 Node.js 版本是否符合先决条件
- 清除构建目录:
rm -rf build/
- 确保所有依赖项都已安装:
- 图像处理问题
- 验证图像格式是否受支持
- 确保图片包含清晰易读的文字
安全说明
- 服务器在本地运行,需要 OAuth 身份验证
- OAuth 凭证应存储在项目根目录中的
gcp-oauth.keys.json
中 - 身份验证令牌存储在
.gcp-saved-tokens.json
中,且文件权限受到限制 - 令牌过期后会自动刷新
- 切勿将您的 OAuth 凭据或令牌文件提交到版本控制
- 对于生产用途,请让 Google 验证您的 OAuth 应用程序
执照
麻省理工学院
This server cannot be installed
使 LLM 能够通过标准化界面读取、创建和管理 Google 日历事件,包括列出日历、管理事件以及处理来自屏幕截图和图像的日历信息等功能。