谷歌日历MCP服务器

提供对Google Calendar访问的模型上下文协议服务器,支持列出、搜索、创建日历事件等功能。

  • by Homoney
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 dhomoney/Google-Calendar-MCP-Server

使用说明

谷歌日历MCP服务器

提供对Google日历访问的模型上下文协议(MCP)服务器。

特性

  • 列出时间范围内的日历事件
  • 获取特定事件的详细信息
  • 按文本查询搜索事件
  • 创建新的日历事件
  • 列出所有可访问的日历

安装说明

1.获取Google日历API证书

  1. 去 谷歌云控制台
  2. 创建新项目或选择现有项目
  3. 启用Google日历API:
    • 导航到“API和服务”>“库”
    • 搜索“Google日历API”
    • 点击“启用”
  4. 创建OAuth 2.0凭据:
    • 转到“API和服务”>“凭据”
    • 点击“创建凭据”>“OAuth客户端ID”
    • 选择“桌面应用程序”作为应用程序类型
    • 下载凭据JSON文件
  5. 将凭据文件另存为 ~/.config/google-calendar-mcp/credentials.json

2.安装依赖项

pip install -r requirements.txt

3.配置MCP

将其添加到MCP配置文件中(通常 ~/.config/mcp/config.json 或类似):

{
  "mcpServers": {
    "google-calendar": {
      "command": "python",
      "args": ["/path/to/google-calendar-mcp/server.py"]
    }
  }
}

4.首次运行-身份验证

第一次运行时,服务器将:

  1. 打开浏览器窗口进行Google OAuth身份验证
  2. 要求您授予日历访问权限
  3. 将身份验证令牌保存到 ~/.config/google-calendar-mcp/token.json

未来的运行将自动使用保存的令牌。

Docker部署

您可以在Docker中运行谷歌日历MCP服务器,以便于部署和隔离。看 医生.md 了解全面的Docker设置说明。

快速入门:

  1. 首先在本地进行身份验证(一次性): python server.py
  2. 构建并运行: docker-compose build && docker-compose up -d
  3. 配置您的MCP客户端以使用: docker exec -i google-calendar-mcp python -u server.py

有关详细说明、故障排除和高级配置,请参阅DOCKER.md。

可用工具

list_事件

列出指定时间范围内的日历事件。

参数:

  • time_min (可选):ISO格式的开始时间(默认为现在)
  • time_max (可选):ISO格式的结束时间(默认为今天结束)
  • max_results (可选):最大事件数(默认值:10,最大值:250)
  • calendar_id (可选):要查询的日历ID(默认值:“primary”)

例子:

{
  "time_min": "2026-01-22T00:00:00Z",
  "time_max": "2026-01-22T23:59:59Z",
  "max_results": 20
}

get_event

获取特定日历事件的详细信息。

参数:

  • event_id (必填):事件ID
  • calendar_id (可选):日历ID(默认值:“主”)

搜索事件

通过文本查询搜索日历事件。

参数:

  • query (必填):要搜索的文本
  • time_min (可选):ISO格式的开始时间
  • time_max (可选):ISO格式的结束时间
  • max_results (可选):最大结果(默认值:10)

create_event

创建新的日历事件。

参数:

  • summary (必填):活动标题
  • start_time (必填):ISO格式的开始时间
  • end_time (必填):ISO格式的结束时间
  • description (可选):事件描述
  • location (可选):活动地点
  • attendees (可选):与会者电子邮件地址数组
  • calendar_id (可选):日历ID(默认值:“主”)

例子:

{
  "summary": "Team Meeting",
  "start_time": "2026-01-23T10:00:00-06:00",
  "end_time": "2026-01-23T11:00:00-06:00",
  "description": "Weekly sync",
  "location": "Conference Room A",
  "attendees": ["colleague@example.com"]
}

列表_日历

列出用户可访问的所有日历。

无需参数。

时间格式注释

  • 所有时间应采用ISO 8601格式
  • 包括时区偏移以提高准确性(例如。, -06:00 中央时间)
  • UTC时间应以“Z”结束(例如。, 2026-01-22T17:00:00Z)

故障排除

身份验证问题

  • 删除 ~/.config/google-calendar-mcp/token.json 并重新验证
  • 验证credentials.json是否有效并且位于正确的位置
  • 检查Google日历API是否已在Google云控制台中启用

权限错误

  • 确保配置了OAuth同意屏幕
  • 如果应用程序处于测试模式,则添加测试用户
  • 验证范围是否包括日历访问

安全说明

  • 永不承诺 credentials.json 或 token.json 到版本控制
  • 令牌文件包含提供持续访问的刷新令牌
  • 定期查看Google帐户设置中的OAuth应用程序权限