使用说明
谷歌日历MCP服务器
用于Google日历集成的模型上下文协议(MCP)服务器,为日历事件提供CRUD操作。
特性
- 列出事件:使用可选筛选器检索日历事件
- 创建事件:创建包含标题、时间、地点和与会者的新日历事件
- 更新事件:修改现有日历事件
- 删除事件:删除日历事件
先决条件
- Java 17或更高版本
- 启用日历API的Google云平台帐户
- Google日历API的服务帐户凭据
设置
1.谷歌云设置
- 转到 谷歌云控制台
- 创建新项目或选择现有项目
- 启用Google日历API:
- 导航到“API和服务”>“库”
- 搜索“Google日历API”
- 点击“启用”
2.服务帐户设置
- 在Google Cloud控制台中,转到“API和服务”>“凭据”
- 点击“创建凭据”>“服务帐户”
- 填写服务帐户详细信息并创建
- 点击已创建的服务帐户
- 转到“密钥”选项卡
- 点击“添加密钥”>“创建新密钥”>“JSON”
- 下载JSON文件并安全保存
3.日历权限
要允许服务帐户访问您的日历:
- 打开谷歌日历
- 转到日历设置
- 在“与特定人员共享”下,添加服务帐户电子邮件(在JSON文件中找到)
- 授予它“更改事件”权限
4.环境设置
设置指向凭据文件的环境变量:
export GOOGLE_CREDENTIALS_PATH="/Users/eduardoruesta/Workplace/google-calendar-mcp-server/credentials.json"
5.构建和运行
# Build the project
./gradlew build
# Run the server
./gradlew run
MCP工具
list_事件
从Google日历中列出日历事件。
参数:
calendar_id(可选):日历ID,默认为“主”max_results(可选):要返回的最大事件数,默认为10time_min(可选):事件开始时间的下限(ISO 8601格式)time_max(可选):事件开始时间的上限(ISO 8601格式)
例子:
{
"name": "list_events",
"arguments": {
"max_results": 5,
"time_min": "2024-01-01T00:00:00Z"
}
}
create_event
创建新的日历事件。
所需参数:
summary:事件标题start_time:开始时间(ISO 8601格式)end_time:结束时间(ISO 8601格式)
可选参数:
description:事件描述location:活动地点attendees:电子邮件地址数组calendar_id:日历ID(默认为“主”)
例子:
{
"name": "create_event",
"arguments": {
"summary": "Team Meeting",
"description": "Weekly team sync",
"start_time": "2024-01-15T10:00:00Z",
"end_time": "2024-01-15T11:00:00Z",
"location": "Conference Room A",
"attendees": ["team@company.com"]
}
}
update_事件
更新现有日历事件。
所需参数:
event_id:要更新的事件的ID
可选参数:
summary:新事件标题description:新事件描述start_time:新的开始时间(ISO 8601格式)end_time:新结束时间(ISO 8601格式)location:新活动地点attendees:新的电子邮件地址数组calendar_id:日历ID(默认为“主”)
例子:
{
"name": "update_event",
"arguments": {
"event_id": "abc123def456",
"summary": "Updated Team Meeting",
"location": "Conference Room B"
}
}
删除事件
删除日历事件。
所需参数:
event_id:要删除的事件的ID
可选参数:
calendar_id:日历ID(默认为“主”)
例子:
{
"name": "delete_event",
"arguments": {
"event_id": "abc123def456"
}
}
时间格式
所有时间参数应采用ISO 8601格式。示例:
2024-01-15T10:00:00Z(UTC)2024-01-15T10:00:00-05:00(带时区偏移)
错误处理
服务器为常见问题提供详细的错误消息:
- 缺少必要参数
- 时间格式无效
- 身份验证失败
- 日历访问权限问题
发展
运行测试
./gradlew test
建筑分布
./gradlew shadowJar
构建的JAR将在 build/libs/.
安全说明
- 安全地存储您的Google服务帐户凭据
- 从不将凭据提交到版本控制
- 使用环境变量作为凭据路径
- 确保您的服务帐户具有所需的最低权限
故障排除
常见问题
- 认证错误:验证
GOOGLE_CREDENTIALS_PATH指向有效的服务帐户JSON文件 - 权限不足:确保以适当的权限将服务帐户电子邮件添加到您的日历中
- 未找到事件:检查事件ID是否正确,以及事件是否存在于指定的日历中
- 时间格式错误:确保所有日期时间参数都采用ISO 8601格式
许可证
该项目根据MIT许可证获得许可。