Google日历API服务

通过Model Context Protocol (MCP)访问Google Calendar的服务器,提供日历和事件管理功能。

  • by Takatoshi-Miura
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 Takatoshi-Miura/MCP-GoogleCalendar

使用说明

MCP-GoogleCalendar(可翻译为):MCP-谷歌日历

是通过模型上下文协议(MCP)访问Google日历的服务器。

功能

  • 获取Google Calendar的日历列表
  • 获取日历事件(计划)列表
  • 获取活动详细信息
  • 创建新活动
  • 现有活动的更新
  • 删除活动

目录结构

项目结构如下:

MCP-GoogleCalendar/
├── mcp-google-calendar/
│   ├── src/
│   │   ├── services/            # ビジネスロジック層
│   │   │   ├── auth.service.ts      # Google認証サービス
│   │   │   └── calendar.service.ts  # Google Calendar操作
│   │   ├── tools/               # MCPツール定義
│   │   │   ├── common.ts           # 共通ユーティリティ
│   │   │   └── calendar.tools.ts    # Calendar関連ツール
│   │   ├── types/               # 型定義
│   │   │   └── index.ts            # 共通型定義
│   │   ├── auth-cli.ts          # 認証用CLIスクリプト
│   │   └── index.ts             # エントリーポイント
│   ├── credentials/             # 認証情報
│   ├── build/                   # ビルド結果
│   ├── package.json
│   └── tsconfig.json
└── README.md

设置

前提条件

  • Node.js 18及以上版本
  • npm(Node Package Manager,Node包管理器)
  • Google云平台的项目与访问权限

Google API的设置

  1. Google Cloud 控制台进行访问,然后创建或选择项目。

  2. 从左侧菜单选择“API和服务”>“库”,然后启用以下API:

    • 谷歌日历API
  3. 从左侧菜单中选择“API和服务”>“凭据”。

  4. 点击“创建认证信息”>选择“OAuth客户端ID”。

    • 选择“桌面应用”作为应用程序类型
    • 输入任意名称,点击“创建”
  5. 点击所创建认证信息的“下载JSON”,下载JSON文件。

设置步骤

  1. 克隆仓库
git clone https://github.com/yourusername/MCP-GoogleCalendar.git
cd MCP-GoogleCalendar
  1. 安装依赖包
cd mcp-google-calendar
npm install
  1. 构建TypeScript
npm run build
  1. Google OAuth认证信息文件的配置

从Google Cloud Console下载的认证信息文件 mcp-google-calendar/credentials/client_secret.json 并将其存储起来。

  1. 执行自动认证
npm run auto-auth

自动认证流程:

  • 确认OAuth设置检查认证信息文件是否正确配置
  • 现有代币的处理若有旧的令牌文件则自动删除
  • 浏览器认证默认浏览器会自动打开并跳转到Google认证页面
  • 权限许可登录Google账户,授予应用程序访问权限
  • 保存令牌认证完成后,令牌将 credentials/token.json 自动保存

注意事项:

  • 如果浏览器未自动打开,请手动将控制台中显示的URL粘贴到浏览器中
  • 认证完成后,控制台会显示“✅ 认证正常完成!”
  1. MCP服务器设置

在Claude Code中的设置

如果使用Claude Code,可以通过以下命令添加:

claude mcp add mcp-google-calendar -- node ~/MCP-GoogleCalendar/mcp-google-calendar/build/index.js

在Cursor中的设置

在Cursor Settings的MCP Servers中点击“Add new global MCP server”,并在mcp.json中追加以下内容

"mcp-google-calendar": {
  "command": "node",
  "args": [
    "[実際のパスを設定する]/MCP-GoogleCalendar/mcp-google-calendar/build/index.js"
  ]
}

以上

可用命令

在项目中,可以使用以下npm脚本:

  • npm run build - 编译TypeScript
  • npm run start - 启动MCP服务器
  • npm run auto-auth - 执行自动认证
  • npm run check-oauth - 检查OAuth设置
  • npm run oauth-info - 显示OAuth设置的详细信息

可用的工具

在此MCP服务器上,可以使用以下工具:

日历管理

  • g_calendar_list_calendars - 获取日历列表

活动(计划)管理

  • g_calendar_list_events - 获取指定日历的事件列表(可指定时间段)
  • g_calendar_get_event - 获取指定活动的详细信息
  • g_calendar_create_event - 创建新活动(可指定标题、日期时间、说明、地点、参与者、颜色)
  • g_calendar_update_event - 更新现有活动(也可更改颜色)
  • g_calendar_delete_event - 删除指定活动

应用实例

📅 日程管理自动化

  • 定期会议的自动注册AI代理自动生成定期会议
  • 活动提醒重要事件的确认与通知
  • 确认日程获取并分析特定时间段的活动列表

🤖 AI助手集成

  • 使用自然语言创建事件根据“明天10点安排会议”等指示创建活动
  • 调整日程确认空闲时间并提出最佳时段
  • 活动信息概要从日历获取信息并进行整理

与其他系统的协作

  • 与任务管理的整合将任务管理工具与日历同步
  • 生成报告获取活动数据并制作活动报告
  • 自动调度根据外部数据自动创建活动

使用示例

获取日历列表

// AIエージェントに指示
"私のGoogleカレンダーの一覧を表示してください"

获取活动列表

// 今週のイベントを取得
"今週のカレンダーの予定を教えてください"

// 特定期間のイベントを取得
"2025年1月15日から1月20日までのイベントを取得してください"

创建活动

// AIエージェントに指示
"明日の15時から16時まで「プロジェクト会議」という予定を入れてください。
場所は「会議室A」で、説明は「Q1の進捗確認」です。"

// イベントに色を指定する場合
"明日の10時から11時まで「重要会議」という予定を赤色で登録してください"

可用的颜色ID:

  • 1薰衣草
  • 2鼠尾草
  • 3葡萄
  • 4火烈鸟
  • 5香蕉
  • 6闽南语
  • 7孔雀
  • 8石墨
  • 9蓝莓
  • 10罗勒
  • 11西红柿(红)

活动更新

// AIエージェントに指示
"イベントID xxx の時間を10時から11時に変更してください"

删除活动

// AIエージェントに指示
"イベントID xxx を削除してください"

故障排除

如发生认证错误时

  1. credentials/client_secret.json 确认是否正确配置
  2. 在Google Cloud Console中确认OAuth客户端ID是否设置正确
  3. npm run check-oauth 确认OAuth设置
  4. 删除现有令牌并重新认证: rm credentials/token.json && npm run auto-auth

当发生API错误时

  1. 在Google Cloud Console中确认Google Calendar API是否已启用
  2. 如认证令牌过期,将自动刷新
  3. 确认错误信息,并在必要时重新进行认证

许可证

ISC(International Security Cooperation,国际安全合作)

贡献

我们欢迎拉取请求。如需进行重大更改,请先提交问题进行讨论。