Google Calendar MCP 服务端
使用说明(Markdown 格式)
-
项目简介
- 该仓库实现了一个用于 ML 模型/LLM 客户端的 MCP 服务器,聚合 Google Calendar 的能力,允许模型通过工具调用来查询日历、创建/修改事件、获取时区信息等,并可通过 STDIO 或 SSE 传输向客户端提供结果。
- 服务器端提供了两个传输模式:STDIO(适用于 Claude Desktop 等桌面客户端)和 SSE(适用于 Web 应用等异步场景),并包含 Google OAuth2 认证流程。
-
主要功能点
- 工具集合:get-events、list-calendars、get-timezone-info、get-current-date、check-availability、create-event、delete-event、update-event 等,覆盖日历查询、事件管理和时区信息等场景。
- 自动时区处理与时间格式修正,支持 RFC3339、ISO 8601 等常见时间格式。
- 事件创建与更新时的时段冲突检查,避免时间重叠冲突。
- Google Calendar API 认证与授权,支持首次授权的交互式登录与保存凭证。
- 两种传输模式:
- STDIO:适配 Claude Desktop 等本地应用,命令行启动后通过标准输入/输出进行通信。
- SSE:通过 WebSocket/Server-Sent Events 提供流式交互能力,便于网页/服务端应用接入。
-
安装步骤
- 安装依赖
- 将代码克隆或下载到本地,并在项目根目录执行安装:pip install -e .
- 认证准备
- 在 Google Cloud Console 配置日历 API 的 OAuth 2.0,下载 credentials.json,并放置在 mcp-server_google_calendar/mcp_server_google_calendar/credentials.json 路径下。
- 授权与首次运行
- 运行服务器后首次会打开浏览器完成授权,授权凭据将保存在 token.json 以供后续使用。
- 启动服务器
- STDIO 模式(适用于 Claude Desktop 等桌面客户端):
- 直接运行命令:mcp-server-google-calendar
- SSE 模式(适用于网页/其他应用):
- 使用内置命令启动:mcp-server-google-calendar-sse
- 或模块方式:python -m mcp_server_google_calendar.server_sse
- 如需自定义端口/主机,可在启动时添加参数,例如 --host 0.0.0.0 --port 8001
- STDIO 模式(适用于 Claude Desktop 等桌面客户端):
- 安装依赖
-
服务器配置说明(MCP 客户端需要投用的配置信息,JSON 格式;仅供参考,不作为代码块展示)
-
STDIO 模式配置(示例名称:google_calendar_stdio) { "server_name": "google_calendar_stdio", "command": "mcp-server-google-calendar", "args": [] }
-
SSE 模式配置(示例名称:google_calendar_sse) { "server_name": "google_calendar_sse", "command": "mcp-server-google-calendar-sse", "args": [] }
注:MCP 客户端配置仅用于描述如何启动服务器以便客户端能够连接与通信,具体需要的字段包括 server_name、command、args 等。不同客户端可能会有略微差异,此处以仓库提供的启动方式为准。
-
-
基本使用方法
- 通过客户端请求工具:
- 使用 get-events、list-calendars 等工具查询日历数据,工具返回格式通常是 JSON 字符串,便于模型理解与后续处理。
- 通过智能体对话使用场景:
- 例如询问“列出我的日历中的下周事件”或“在工作日创建一个团队会议”,模型将调用相应工具并获取结构化结果,进一步生成应答。
- 认证与授权
- 第一次运行需要完成 Google OAuth 授权,后续运行会重用保存的 token.json。
- 兼容性与错误处理
- 服务器内置了时区解析、时间格式修正以及简单的错误处理逻辑,若外部 API 调用失败会返回友好信息。
- 通过客户端请求工具: