Google日历MCP服务器

一个允许Claude和其他MCP客户端与Google Calendar交互的模型上下文协议服务器,用于管理日历事件、检查可用性和处理调度任务。

  • by guinacio
  • Python
  • 本地部署
  • 10 星标
  • 更新于
在 GitHub 查看 guinacio/mcp-google-calendar

使用说明

[!重要]

⚠️ 您在寻找完整的Google MCP解决方案吗?

此存储库提供 Google 日历 只有整合。 如果你需要 全功能谷歌MCP包 --包括 Gmail, Google 云端硬盘, Google 日历,以及更多--查看我的完整工作空间包:

👉 mcp谷歌工作区

这 mcp-google-workspace 该软件包将所有谷歌服务集成捆绑到一个易于配置的MCP服务器中。这是大多数用户的推荐选择。


谷歌日历MCP服务器

一个模型上下文协议(MCP)服务器,允许Claude和其他MCP客户端与Google日历进行交互。此服务器使AI助手能够管理您的日历事件、检查可用性和处理日程安排任务。

特性

日历管理

  • 列出事件 (get-events)

    • 查看任何日历中的事件
    • 按时间范围筛选
    • 限制结果数量
  • 列出日历 (list-calendars)

    • 查看所有可用日历
    • 访问日历ID和设置
  • 获取时区信息 (get-timezone-info)

    • 获取用户的时区信息
  • 获取当前日期 (get-current-date)

    • 获取用户时区中的当前日期和时间
    • 适用于知识截止日期过时的AI模型

活动操作

  • 创建事件 (create-event)

    • 安排具有完整功能支持的新活动
    • 添加与会者并设置提醒
    • 包括会议链接和附件
    • 设置可见性、透明度和颜色
    • 配置重复事件
    • 自动时区检测和冲突检查
  • 更新事件 (update-event)

    • 修改现有事件
    • 通过冲突检查更改时间/日期
    • 添加/删除与会者
    • 更新任何事件详细信息
    • 控制通知设置
  • 删除事件 (delete-event)

    • 从日历中删除事件
    • 控制与会者的通知设置

可用性管理

  • 检查可用性 (check-availability)
    • 检查多个日历的忙/闲状态
    • 时区意识
    • 支持检查其他用户的可用性

需求

  • Python>=3.12
  • 启用日历API的Google云控制台项目
  • OAuth 2.0凭据

安装

1.建立谷歌云项目

  1. 首选 谷歌云控制台
  2. 创建新项目或选择现有项目
  3. 启用Google日历API
  4. 创建OAuth 2.0凭据(桌面应用程序类型)
  5. 下载凭据并另存为 credentials.json 在\mcp_server_google_calendar文件夹中

2.安装软件包

# Clone or download the project
cd mcp-google-calendar

# Install the package
pip install -e .

3.身份验证设置

首次运行时,服务器将自动打开您的浏览器进行OAuth身份验证。您的凭据将被保存以备将来使用。

用法

此服务器可以在两种模式下运行:

STDIO模式(适用于克劳德桌面)

配置Claude桌面:

将以下内容添加到您的Claude Desktop配置文件中:

窗户: %APPDATA%\Claude\claude_desktop_config.json macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

{
  "mcpServers": {
    "google_calendar": {
      "command": "mcp-server-google-calendar"
    }
  }
}

使用Python模块的替代方案:

{
  "mcpServers": {
    "google_calendar": {
      "command": "python",
      "args": ["-m", "mcp_server_google_calendar"]
    }
  }
}

重新启动克劳德桌面 配置更改后。

SSE模式(适用于web应用程序和其他客户端)

使用SSE传输运行服务器:

# Using the installed command
mcp-server-google-calendar-sse

# Or using Python module
python -m mcp_server_google_calendar.server_sse

# With custom host/port
python -m mcp_server_google_calendar.server_sse --host 0.0.0.0 --port 8001

SSE服务器将在以下位置可用:

  • 服务器: http://localhost:8000
  • SSE端点: http://localhost:8000/sse

示例命令

以下是一些你可以问克劳德的问题:

事件创建

  • “为明天下午2点创建一个名为“团队会议”的活动”
  • “每周一上午10点安排一次定期会议”
  • “下周二下午与约翰进行视频通话”

活动管理

  • “将我下午2点的会议改为下午4点”
  • “添加Jane(jane@example.com)明天的团队会议”
  • “取消我与约翰的会面”
  • “更新今天团队午餐的地点”

日历查询

  • “这周我有什么会议?”
  • “我明天下午什么时候有空?”
  • “检查爱丽丝和鲍勃下周一下午3点是否都有空”
  • “列出我的所有重复事件”

日期/时间信息

  • “今天几号?”(适用于知识过时的模型)
  • “今天是星期几?”
  • “我当前的时区是什么?”

高级功能

时间冲突检测

服务器在创建或更新事件时会自动检查时间冲突,并会警告您重叠的事件。

时区支持

  • 从您的Google日历设置中自动检测时区
  • 事件的手动时区规范
  • 正确处理时区转换

重复事件

完全支持使用iCalendar RRULE格式的重复事件:

  • 每日、每周、每月、每年模式
  • 自定义重复规则
  • 例外日期和规则

与会者管理

  • 通过电子邮件验证添加/删除与会者
  • 设置可选与会者与必需与会者
  • 控制响应状态和通知
  • 为更多客人提供支持

故障排除

身份验证问题

  • 确保 credentials.json 位于项目根目录中
  • 检查Google Cloud Console中是否配置了OAuth同意屏幕
  • 验证日历API是否已启用
  • 删除 token.json 如果需要,强制重新身份验证

服务器连接问题

  • 验证Python版本(需要>=3.12)
  • 检查Claude Desktop配置文件语法
  • 配置更改后重新启动Claude Desktop
  • 对于SSE模式,确保端口未被使用

事件创建问题

  • 在Google日历中确认日历权限
  • 检查与现有事件的时间冲突
  • 验证与会者的电子邮件地址是否有效
  • 确保时区格式正确

文件结构

mcp-google-calendar/
├── mcp_server_google_calendar/
│   ├── __init__.py
│   ├── __main__.py          # STDIO mode entry point
│   ├── __main_sse__.py      # SSE mode entry point
│   ├── credentials.json      # Google OAuth credentials (you provide)
│   ├── server.py            # STDIO server implementation
│   ├── server_sse.py        # SSE server implementation
│   ├── schemas.py           # Pydantic schemas
│   ├── auth/                # Authentication module
│   ├── tools/               # Tool definitions
│   └── utils/               # Utility functions
├── token.json              # Saved auth token (auto-generated)
├── pyproject.toml          # Project configuration
└── README.md

备注

  • 服务器维护具有相同功能的STDIO和SSE模式的单独实现
  • 两种模式都支持自动时区检测和冲突检查
  • 所有时间应以YYYY-MM-DDTHH:MM:SS格式或RFC3339指定
  • 日历ID“primary”是指用户的默认日历
  • 事件更新维护未指定字段的现有数据
  • 服务器自动处理时区检测和转换

许可证

MIT许可证