使用说明
谷歌日历MCP服务器📅🤖
一个MCP(模型上下文协议)服务器,将克劳德桌面连接到谷歌日历,通过对话实现自然语言日历管理。
特性
- 📅 智能调度 -使用自然语言安排会议
- 🔗 自动会面链接 -自动生成Google Meet会议链接
- 👥 与会者管理 -向多个参与者发送邀请
- ⏰ 可用性检查 -检查任何日期范围的日历可用性
- 🎯 免费老虎机查找 -自动查找可用时隙
- ✏️ 活动管理 -重新安排、取消和更新日历事件
- 🔔 智能通知 -可选的与会者变更通知
演示
你: “明天找一个空闲时间,用Meet链接安排一个2小时的团队会议”
克劳德: ✅ 检查可用性→ 找到最佳插槽→ 安排会议→ 生成会面链接→ Done!
先决条件
- Docker 桌面版
- 克劳德桌面版
- 启用日历API的谷歌云项目
- 来自谷歌云控制台的OAuth 2.0凭据
安装
1.克隆存储库
git clone https://github.com/Harshith241/google-calendar-mcp.git
cd google-calendar-mcp
2.建立谷歌云项目
- 首选 Google 云控制台
- 创建新项目或选择现有项目
- 启用 谷歌日历API:
- 导航到“API和服务”>“库”
- 搜索“Google日历API”
- 点击“启用”
3.创建OAuth 2.0凭据
- 转到“API和服务”>“凭据”
- 点击“创建凭据”>“OAuth客户端ID”
- 配置OAuth同意屏幕:
- 选择“外部”用户类型
- 填写必填字段(应用程序名称、支持电子邮件)
- 添加范围:
https://www.googleapis.com/auth/calendar - 将您的电子邮件添加为测试用户
- 选择“桌面应用程序”作为应用程序类型
- 下载凭据并另存为
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
按照提示操作:
- 复制授权URL
- 在浏览器中打开
- 登录并授权
- 复制授权码
- 粘贴回终端
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有用,请将其标记为星号!
📝 报告问题或请求功能 问题 部分。