Google日历MCP添加福利群:解决AI开发者的「MCP实战痛点」
🔔 版本更新通知 🔔
版本 1.0.5 在createEvent和updateEvent工具中通过recurrence参数添加了对重复事件的支持。这使您能够直接创建和修改重复事件,而无需在创建后手动设置。
Google Calendar MCP 服务器是一个 MCP(模型上下文协议)服务器实现,旨在实现 Google Calendar 与 Claude Desktop 的集成。该项目使 Claude 能够与用户的 Google Calendar 进行交互,通过自然语言交互提供显示、创建、更新和删除日历事件的能力。
colorId 参数设置和更新事件颜色该项目使用:
@modelcontextprotocol/sdk 与 Claude Desktop 集成googleapis 访问 Google Calendar APIdotenv 进行配置管理该 MCP 服务器提供以下工具与 Google Calendar 进行交互:
检索日历事件,提供多种过滤选项。
参数:
calendarId(可选):日历 ID(如果省略则使用主日历)timeMin(可选):事件检索的开始时间(ISO 8601 格式,例如 "2025-03-01T00:00:00Z")timeMax(可选):事件检索的结束时间(ISO 8601 格式)maxResults(可选):要检索的最大事件数(默认值:10)orderBy(可选):排序顺序("startTime" 或 "updated")创建新的日历事件。
参数:
calendarId(可选):日历 ID(如果省略则使用主日历)event:事件详细信息对象,包含:
summary(必需):事件标题description(可选):事件描述location(可选):事件地点start:开始时间对象,包含:
dateTime(可选):ISO 8601 格式(例如 "2025-03-15T09:00:00+09:00")date(可选):全天事件的 YYYY-MM-DD 格式timeZone(可选):时区(例如 "Asia/Tokyo")end:结束时间对象(与开始时间相同格式)attendees(可选):参与者数组,包含电子邮件和可选的 displayNamecolorId(可选):事件颜色 ID(1-11)recurrence(可选):RFC5545 格式的重复规则数组(例如 ["RRULE:FREQ=WEEKLY;BYDAY=MO,WE,FR"])更新现有的日历事件。该函数首先获取现有事件数据,并将其与更新数据合并,保留未包含在更新请求中的字段。
参数:
calendarId(可选):日历 ID(如果省略则使用主日历)eventId(必需):要更新的事件 IDevent:事件详细信息对象,包含要更新的字段(与 createEvent 相同的结构,所有字段可选)
recurrence 参数可以更新以修改重复事件模式删除日历事件。
参数:
calendarId(可选):日历 ID(如果省略则使用主日历)eventId(必需):要删除的事件 ID重新认证 Google Calendar。这在您希望在不重启 Claude 的情况下切换不同 Google 账户时非常有用。
参数:
在添加新功能、修改代码或修复错误时,请使用 npm version 命令为每次更改语义化地增加版本。同时,请确保您的代码清晰并遵循所有必要的编码规则,例如 OOP。版本脚本会在版本更新时自动运行 npm install,但在提交代码之前,您仍然应该构建、运行 lint 和测试代码。
该包发布在 npm 上,名称为 @takumi0706/google-calendar-mcp:
npx @takumi0706/google-calendar-mcp@1.0.5
# 使用您的 Google OAuth 凭证创建 .env 文件
GOOGLE_CLIENT_ID=your_client_id
GOOGLE_CLIENT_SECRET=your_client_secret
GOOGLE_REDIRECT_URI=http://localhost:4153/oauth2callback
# 可选:令牌加密密钥(如果未提供则自动生成)
TOKEN_ENCRYPTION_KEY=32-byte-hex-key
# 可选:认证服务器端口和主机(默认端口:4153,主机:localhost)
AUTH_PORT=4153
AUTH_HOST=localhost
# 可选:MCP 服务器端口和主机(默认端口:3000,主机:localhost)
PORT=3000
HOST=localhost
# 可选:启用手动认证(在 localhost 不可访问时有用)
USE_MANUAL_AUTH=true

将服务器添加到您的 claude_desktop_config.json 中。如果您在 localhost 不可访问的环境中运行,请添加 USE_MANUAL_AUTH 环境变量并将其设置为 "true"。
{
"mcpServers": {
"google-calendar": {
"command": "npx",
"args": [
"-y",
"@takumi0706/google-calendar-mcp"
],
"env": {
"GOOGLE_CLIENT_ID": "your_client_id",
"GOOGLE_CLIENT_SECRET": "your_client_secret",
"GOOGLE_REDIRECT_URI": "http://localhost:4153/oauth2callback"
}
}
}
}

code_verifier 和 code_challenge 生成更多详情,请参阅 SECURITY.md。
如果遇到任何问题:
Unexpected non-whitespace character after JSON at position 4 (line 1 column 5) 的错误,通常是由于 JSON-RPC 消息格式错误。此问题已在 0.6.7 及更高版本中修复。如果您仍然遇到这些错误,请更新到最新版本。Authentication failed: Invalid state parameter,请更新到 1.0.3 或更高版本,该版本修复了 OAuth 服务器生命周期管理。在旧版本中,您可能需要关闭端口 4153 并重新启动应用程序。USE_MANUAL_AUTH=true 启用手动认证。这将允许您在授权应用程序后手动输入 Google 显示的授权代码。createEvent 和 updateEvent 工具中通过 recurrence 参数添加了对重复事件的支持authenticate 工具,允许在不重启 Claude 的情况下重新认证USE_MANUAL_AUTH 环境变量以启用手动认证zod 依赖项更新到最新版本(3.24.2)zod 功能增强了模式验证updateEvent 函数,在执行部分更新时保留现有事件数据getEvent 函数以在更新前获取现有事件数据updateEvent 以将更新数据与现有数据合并,防止数据丢失updateEvent 函数的文档prompt: 'consent' 参数,强制 Google 显示同意屏幕并提供新的刷新令牌要贡献到此项目:
# 克隆仓库
git clone https://github.com/takumi0706/google-calendar-mcp.git
cd google-calendar-mcp
# 安装依赖
npm install
# 以开发模式运行
npm run dev

要运行测试:
# 运行所有测试
npm test
# 运行带有覆盖率报告的测试
npm test -- --coverage

MIT