谷歌日历自然语言管理服务

一个连接Claude Desktop和Google Calendar的MCP服务器,通过自然语言对话实现日历管理。

  • by Harshith241
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Harshith241/google-calendar-mcp

使用说明

谷歌日历MCP服务器📅🤖

一个MCP(模型上下文协议)服务器,将克劳德桌面连接到谷歌日历,通过对话实现自然语言日历管理。

特性

  • 📅 智能调度 -使用自然语言安排会议
  • 🔗 自动会面链接 -自动生成Google Meet会议链接
  • 👥 与会者管理 -向多个参与者发送邀请
  • ⏰ 可用性检查 -检查任何日期范围的日历可用性
  • 🎯 免费老虎机查找 -自动查找可用时隙
  • ✏️ 活动管理 -重新安排、取消和更新日历事件
  • 🔔 智能通知 -可选的与会者变更通知

演示

你: “明天找一个空闲时间,用Meet链接安排一个2小时的团队会议”

克劳德: ✅ 检查可用性→ 找到最佳插槽→ 安排会议→ 生成会面链接→ Done!

先决条件

安装

1.克隆存储库

git clone https://github.com/Harshith241/google-calendar-mcp.git
cd google-calendar-mcp

2.建立谷歌云项目

  1. 首选 Google 云控制台
  2. 创建新项目或选择现有项目
  3. 启用 谷歌日历API:
    • 导航到“API和服务”>“库”
    • 搜索“Google日历API”
    • 点击“启用”

3.创建OAuth 2.0凭据

  1. 转到“API和服务”>“凭据”
  2. 点击“创建凭据”>“OAuth客户端ID”
  3. 配置OAuth同意屏幕:
    • 选择“外部”用户类型
    • 填写必填字段(应用程序名称、支持电子邮件)
    • 添加范围: https://www.googleapis.com/auth/calendar
    • 将您的电子邮件添加为测试用户
  4. 选择“桌面应用程序”作为应用程序类型
  5. 下载凭据并另存为 credentials.json

4.设置凭据文件夹

# Windows
mkdir %USERPROFILE%\.google-calendar-mcp
copy path\to\downloaded\credentials.json %USERPROFILE%\.google-calendar-mcp\

# Mac/Linux
mkdir -p ~/.google-calendar-mcp
cp path/to/downloaded/credentials.json ~/.google-calendar-mcp/

5.构建Docker镜像

docker build -t google-calendar-mcp .

6.通过谷歌进行身份验证

窗户:

docker run -it --rm -v %USERPROFILE%\.google-calendar-mcp:/app/credentials -p 8081:8080 google-calendar-mcp python auth_setup_manual.py

Mac/Linux:

docker run -it --rm -v ~/.google-calendar-mcp:/app/credentials -p 8081:8080 google-calendar-mcp python auth_setup_manual.py

按照提示操作:

  1. 复制授权URL
  2. 在浏览器中打开
  3. 登录并授权
  4. 复制授权码
  5. 粘贴回终端

7.配置克劳德桌面

窗户: 编辑 %APPDATA%\Claude\claude_desktop_config.json

雨衣: 编辑 ~/Library/Application Support/Claude/claude_desktop_config.json

添加此配置:

{
  "mcpServers": {
    "google-calendar": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-v",
        "YOUR_HOME_PATH/.google-calendar-mcp:/app/credentials",
        "-p",
        "8081:8080",
        "google-calendar-mcp"
      ]
    }
  }
}

替换 YOUR_HOME_PATH:

  • 窗户: C:/Users/YourUsername
  • Mac/Linux: ${HOME} 或 /Users/YourUsername

8.重新启动克劳德桌面

完全退出并重新启动Claude Desktop以使更改生效。

使用示例

安排会议

Schedule a meeting called "Team Standup" tomorrow at 10:00 AM

与与会者和会议链接安排

Schedule a meeting called "Client Call" on January 15 at 2:00 PM with john@example.com, add a Google Meet link

检查可用性

Check my calendar availability for next week

查找免费老虎机

Find free time slots tomorrow for a 2-hour meeting

列出即将举行的活动

Show me my upcoming calendar events

重新安排会议

Reschedule event [event-id] to next Monday at 3:00 PM

取消会议

Cancel the meeting with event ID [event-id]

可用工具

工具 说明
check_availability 检查两个日期之间的日历可用性
schedule_meeting 使用可选的“会议”链接安排新会议
list_upcoming_events 列出即将到来的日历事件
find_free_slots 查找特定日期的可用时段
reschedule_meeting 将现有会议移动到新时间
cancel_meeting 使用可选通知取消会议

配置选项

默认设置

  • 会议时长:30分钟
  • 工作时间:上午9:00至下午6:00
  • 时区:系统自动检测
  • 日历:主日历

定制

所有工具都接受参数来自定义行为:

  • 自定义会议持续时间
  • 包括/不包括非工作时间
  • 指定可用性检查的日期范围

故障排除

服务器断开连接错误

  • 验证Docker是否正在运行: docker ps
  • 检查凭据文件夹是否存在并包含 credentials.json
  • 重建Docker镜像: docker build -t google-calendar-mcp .

认证失败

  • 重新运行身份验证: docker run -it --rm -v ~/.google-calendar-mcp:/app/credentials -p 8081:8080 google-calendar-mcp python auth_setup_manual.py
  • 验证OAuth同意屏幕是否配置正确
  • 检查您的电子邮件是否已添加为测试用户

端口已在使用中

  • 更改配置中的端口 8081:8080 到 8082:8080 或其他可用端口
  • 更新身份验证命令以使用相同端口

事件未出现

  • 确认您正在使用主日历
  • 检查时区设置
  • 在浏览器中刷新谷歌日历

建筑

Claude Desktop
      ↓
   MCP Protocol (JSON-RPC)
      ↓
Docker Container (Python + FastMCP)
      ↓
Google Calendar API (OAuth 2.0)
      ↓
Google Calendar

技术栈

  • FastMCP -MCP服务器框架
  • 码头工人 -集装箱化
  • Python 3.11 -运行时环境
  • 谷歌日历API -日历操作
  • OAuth 2.0 -安全身份验证

安全说明

  • 凭据存储在本地计算机上
  • OAuth令牌由Google加密
  • 任何地方都不存储密码
  • 可以随时从Google帐户设置中撤销访问权限
  • Docker容器独立运行

贡献

欢迎投稿!请随时提交拉取请求。

许可证

MIT许可证-您可以将此项目用于个人或商业目的。

致谢

作者

哈斯特·维贾扬- @伊扎尔希斯


⭐ 如果你觉得这个repo有用,请将其标记为星号!

📝 报告问题或请求功能 问题 部分。