使用说明
项目简介
本项目是一个基于 Model Context Protocol (MCP) 构建的服务器,旨在为大型语言模型 (LLM) 应用提供与 Google 日历集成的能力。通过此服务器,LLM 可以创建、管理 Google 日历事件,从而扩展 LLM 在日程管理和自动化方面的应用场景。
主要功能点
- 创建日历事件: 支持创建包含标题、描述、开始/结束时间、地点、参与者和提醒设置的 Google 日历事件。
- OAuth2 认证: 使用 OAuth2 协议安全地访问 Google Calendar API。
- MCP 协议: 完整实现了 MCP 协议,可以与任何兼容 MCP 协议的 LLM 客户端进行通信。
- 详细日志: 提供详细的调试日志,方便问题排查和功能验证。
安装步骤
- 安装 Node.js: 确保已安装 Node.js v18 或更高版本。
- 配置 Google Cloud 项目:
- 在 Google Cloud Console 中创建一个项目。
- 启用 Google Calendar API。
- 创建 OAuth2 客户端 ID 和客户端密钥,并下载 JSON 配置文件。
- 获取 OAuth2 凭据: 您需要配置 OAuth2 凭据,包括客户端 ID、客户端密钥和刷新令牌。 刷新令牌需要您先使用客户端ID和密钥进行OAuth授权流程获取。
- 安装依赖: 无需手动安装,服务器将作为 MCP 客户端的子进程启动,客户端会自动处理依赖安装。
服务器配置
MCP 客户端需要配置服务器的启动命令才能连接到 Google 日历 MCP 服务器。以下是一个示例 'claude_desktop_config.json' 配置,适用于 Claude 等 LLM 客户端。您需要根据实际情况替换占位符。
{ "mcpServers": { "gcalendar": { "command": "npx", "args": [ "-y", "@tobedoit/google-calendar-mcp" ], "env": { "GOOGLE_CLIENT_ID": "您的 Google 客户端 ID", // 请替换为您的 Google Cloud 项目的客户端 ID "GOOGLE_CLIENT_SECRET": "您的 Google 客户端密钥", // 请替换为您的 Google Cloud 项目的客户端密钥 "GOOGLE_REFRESH_TOKEN": "您的 Google 刷新令牌" // 请替换为您通过 OAuth 授权流程获取的刷新令牌 } } } }
配置参数说明:
- 'server name': 服务器名称,例如 "gcalendar",客户端通过此名称引用服务器。
- 'command': 启动服务器的命令,这里使用 'npx' 直接运行 npm 包。
- 'args': 传递给 'command' 的参数,'-y' 表示自动确认安装 npm 包 '@tobedoit/google-calendar-mcp'。
- 'env': 环境变量配置,用于向服务器传递必要的凭据信息:
- 'GOOGLE_CLIENT_ID': 您的 Google Cloud 项目的客户端 ID。
- 'GOOGLE_CLIENT_SECRET': 您的 Google Cloud 项目的客户端密钥。
- 'GOOGLE_REFRESH_TOKEN': 通过 OAuth 授权流程获取的刷新令牌。
注意: 请务必将 'GOOGLE_CLIENT_ID', 'GOOGLE_CLIENT_SECRET', 和 'GOOGLE_REFRESH_TOKEN' 替换为您的实际凭据。 刷新令牌的获取过程较为复杂,通常需要通过 OAuth 授权流程手动获取一次。
基本使用方法
配置完成后,LLM 客户端 (如 Claude) 即可通过 MCP 协议与此服务器通信。LLM 可以调用服务器提供的 'create_event' 工具来创建 Google 日历事件。 具体的工具调用方式取决于 LLM 客户端的实现,通常 LLM 会根据工具的描述和参数要求,生成相应的请求并发送给 MCP 服务器。
例如,用户可以指示 LLM "明天上午十点安排一个与团队讨论项目进展的会议,地点在会议室A,邀请同事张三和李四参加"。 LLM 客户端解析用户指令后,可以调用 'create_event' 工具,并传递会议主题、时间、地点、参与者等参数给 Google 日历 MCP 服务器,服务器将会在用户的 Google 日历上创建相应的事件。
信息
分类
生产力应用