使用说明
谷歌日历MCP服务器
用于Google日历集成的模型上下文协议(MCP)服务器,专为支持家庭助理的个人日历管理而设计。
特性
- MCP工具:搜索事件、列出即将发生的事件、创建/更新/删除事件
- 每日议程:获取格式化的每日议程摘要
- 日历类别:按类型(工作、个人、家庭等)组织日历
- REST API:家庭助理集成的端点
- 苏格兰和南方能源公司运输:通过mcp-remote从克劳德桌面连接
- Docker支持:使用Docker Compose轻松部署
快速开始
1.谷歌云设置
- 首选 谷歌云控制台
- 创建新项目或选择现有项目
- 启用 谷歌日历API
- 创建OAuth 2.0凭据(桌面应用程序类型)
- 下载凭据
2.配置
# Copy example environment file
cp .env.example .env
# Edit with your credentials
# GOOGLE_CLIENT_ID=your-client-id
# GOOGLE_CLIENT_SECRET=your-client-secret
3.初始OAuth设置
# Run OAuth setup (opens browser for consent)
docker compose --profile setup run --rm calendar-auth
4.启动服务器
docker compose up -d
5.克劳德桌面配置
添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"calendar": {
"command": "npx",
"args": ["-y", "mcp-remote", "http://YOUR_SERVER_IP:8002/mcp/sse", "--allow-http"]
}
}
}
家庭助理MCP集成
服务器为MCP连接公开SSE端点:
/mcp/sse-主MCP SSE终点/sse-家庭助理兼容性的别名端点
每个连接都会获得一个新的服务器实例,以实现适当的会话隔离。
MCP工具
| 工具 | 说明 |
|---|---|
calendar_get_current_time |
获取当前日期/时间以及查询的参考日期 |
calendar_list_events |
使用可选筛选器列出即将发生的事件 |
calendar_search |
按文本查询搜索事件 |
calendar_get_event |
获取特定事件的详细信息 |
calendar_create_event |
创建新的日历事件 |
calendar_update_event |
更新现有事件 |
calendar_delete_event |
删除事件 |
calendar_daily_agenda |
获取特定日期的议程 |
calendar_weekly_summary |
获取7天概览 |
calendar_list_calendars |
列出所有可用日历 |
calendar_free_busy |
检查某个时间范围的可用性 |
工具模式注释
所有工具都使用具有显式类型的Gemini兼容模式:
- 数组参数使用逗号分隔的字符串(例如。,
attendees: "user1@example.com,user2@example.com") - 日历ID使用逗号分隔的字符串(例如。,
calendar_ids: "primary,work@group.calendar.google.com") - 日期使用ISO 8601格式(
YYYY-MM-DD或YYYY-MM-DDTHH:MM:SS)
REST API端点
| 端点 | 描述 |
|---|---|
GET /health |
带有身份验证状态的健康检查 |
GET /calendars |
列出所有日历 |
GET /events/today |
今天的活动 |
GET /events/upcoming |
即将举行的活动 |
GET /events/search?q=query |
搜索事件 |
GET /summary/daily |
每日总结 |
GET /summary/weekly |
每周总结 |
GET /free-time |
查找空闲时段 |
家庭助理集成
REST传感器示例
sensor:
- platform: rest
name: "Next Calendar Event"
resource: http://YOUR_SERVER_IP:8002/events/upcoming?days=1
value_template: "{{ value_json[0].summary if value_json else 'No events' }}"
scan_interval: 300
- platform: rest
name: "Today's Events Count"
resource: http://YOUR_SERVER_IP:8002/events/today
value_template: "{{ value_json | length }}"
scan_interval: 300
MCP集成
家庭助理可以通过MCP SSE端点进行连接:
http://YOUR_SERVER_IP:8002/mcp/ssehttp://YOUR_SERVER_IP:8002/sse(别名)
项目结构
mcp_google_calendar/
├── src/mcp_google_calendar/
│ ├── __init__.py
│ ├── auth.py # OAuth2 authentication
│ ├── calendar_client.py # Google Calendar API wrapper
│ ├── config.py # Settings and configuration
│ ├── models.py # Pydantic models
│ ├── server.py # MCP stdio server
│ ├── sse_server.py # MCP SSE server
│ ├── combined_server.py # REST + SSE combined server
│ └── api.py # REST API for Home Assistant
├── config/
│ └── calendars.yaml # Calendar categorization
├── credentials/
│ ├── client_secrets.json # OAuth credentials
│ └── token.json # Stored tokens
├── docker-compose.yml
├── Dockerfile
└── README.md
许可证
麻省理工学院