日历提醒管理服务器

一个基于MCP协议的Google日历提醒管理服务器,支持时间和位置触发提醒。

  • by kfinkels
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 kfinkels/gcalendar-mcp

使用说明

谷歌日历MCP服务器

一个MCP(模型上下文协议)服务器,用于管理谷歌日历提醒,支持基于时间和位置的触发器。

特性

  • 基于时间的提醒:“明天早上9点提醒我给妈妈打电话”
  • 基于位置的提醒:“当我在特拉维夫哈沙隆街附近时,提醒我去X店”
  • 列出提醒:查看即将到来的提醒
  • 删除提醒:按ID删除提醒

先决条件

  • Python 3.11+
  • 紫外线 包管理器
  • 启用日历API的谷歌云项目

设置

1.安装依赖项

uv sync

2.设置Google Cloud凭据

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

3.首次认证

运行服务器一次以进行身份验证:

uv run gcalendar-mcp

这将为Google OAuth打开一个浏览器窗口。授权后,您的凭据将被保存。

使用Claude代码

添加到您的Claude Code MCP配置中(~/.claude/claude_desktop_config.json):

{
  "mcpServers": {
    "gcalendar": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/gcalendar_mcp", "gcalendar-mcp"]
    }
  }
}

可用工具

create_time_reminder

创建基于时间的提醒。

参数:

  • title (必填):需要提醒什么
  • time (必填):何时提醒(支持自然语言)
  • description (可选):附加注释

示例:

  • “明天9点提醒我给妈妈打电话”
  • “2小时后提醒我休息一下”
  • “今天下午3点提醒我参加会议”

create_location_reminder

创建基于位置的提醒。

参数:

  • title (必填):需要提醒什么
  • location (必填):地点/地址
  • description (可选):附加注释
  • date (可选):提醒日期

示例:

  • “提醒我在杂货店附近买牛奶”
  • “当我在特拉维夫哈沙隆街附近时,提醒我去X店”

注: 谷歌日历本身不支持基于位置的触发器。这将创建一个标记了位置的事件。对于自动位置通知,请使用谷歌地图或专用的位置提醒应用程序。

list_reminders

列出日历中即将到来的提醒。

参数:

  • max_results (可选):最大结果数(默认值:10)

删除提醒器

按事件ID删除提醒。

参数:

  • event_id (必填):要删除的事件的ID

配置

您可以通过设置环境变量来自定义凭据目录:

export GCALENDAR_MCP_CONFIG_DIR=/path/to/custom/config

发展

# Install dev dependencies
uv sync --dev

# Run tests
uv run pytest

许可证

麻省理工学院