内容
# G2N MCP Google Calendar SSE Server
🌎 本README提供多种语言版本:
- 🇺🇸 [英语](README.md)
- 🇧🇷 [葡萄牙语](README.pt-br.md)
## 概述
G2N MCP Google Calendar SSE Server是一个模型上下文协议(Model Context Protocol,MCP)服务器实现,通过服务器推送事件(Server-Sent Events,SSE)提供Google Calendar集成。该服务器将Google Calendar功能暴露为工具,供AI模型和应用程序(如Cursor、Claude和n8n)与Google Calendar进行交互。
该服务器使用最新的MCP SDK版本构建,提供MCP兼容模型与Google Calendar服务之间的强大集成。
## 特性
该服务器提供以下用于Google Calendar管理的MCP工具:
- `list-calendars`: 列出所有可用的日历
- `get-calendar`: 获取特定日历的详细信息
- `list-events`: 列出日历中的事件并提供过滤选项
- `get-event`: 获取特定事件的详细信息
- `create-event`: 创建新的日历事件
- `update-event`: 更新现有的日历事件
- `delete-event`: 删除日历事件
- `list-colors`: 列出可用于事件和日历的颜色
### v1.1.0中的新功能
- 完善的日志系统,支持可配置的日志级别
- 请求/响应日志中间件,以便更好地监控
- SSE心跳实现,确保连接稳定
- 增强的错误处理和调试能力
- 改进的Docker配置,确保数据目录权限正确
- 增强的OAuth流程,提供更好的令牌管理
- 代码重构,提高可维护性
### v1.0.1中的新功能
- 第一个稳定版本
- 生产就绪,支持Docker和Docker Swarm
- 增强的环境变量配置
- 改进的连接URL,适用于不同的部署场景
- 更好的n8n集成文档
- Traefik配置指南
- 多平台Docker镜像(amd64、arm64、arm/v7)
## 快速开始
### 先决条件
- 已安装Docker和Docker Compose
- 启用Calendar API的Google Cloud项目
- OAuth 2.0客户端ID和客户端密钥
### 环境变量
该服务器使用以下环境变量:
```env
PORT=3001 # 服务器端口(默认:3001)
PUBLIC_URL=https://your-domain.com # OAuth回调的公共URL
GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID} # Google OAuth客户端ID
GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET} # Google OAuth客户端密钥
OAUTH_REDIRECT_PATH=/oauth/callback # OAuth回调路径(默认:/oauth/callback)
```
**重要说明:**
- 使用Traefik时,请确保将其配置为指向`PORT`环境变量中指定的端口
- 这对于成功接收Google刷新令牌至关重要
- `PUBLIC_URL`必须是可通过互联网访问的,以便OAuth回调正常工作
## 认证流程
1. 使用Docker或直接启动服务器
2. 在浏览器中导航到`/auth`端点
3. 使用您的Google账户授予应用程序权限
4. 授权后,服务器将存储刷新令牌以便持续访问
5. 服务器将在需要时自动刷新令牌
要撤销访问,请使用`/revoke`端点:
```bash
curl -X POST https://your-domain.com/revoke
```
## 与MCP兼容应用程序的使用
### 连接URL
根据您的部署场景,使用适当的URL格式:
1. **Docker Swarm / n8n内部访问:**
```
http://[stack-service-name]:3001/sse
```
示例:如果您的服务在堆栈中名为`g2n-mcp-gcal-sse`,请使用:
```
http://g2n-mcp-gcal-sse:3001/sse
```
2. **外部访问(Cursor、Claude等):**
```
https://your-domain.com/sse
```
3. **本地开发:**
```
http://localhost:3001/sse
```
### Cursor AI
您可以通过在设置中配置MCP连接来使用此服务器与Cursor AI:
1. 打开Cursor设置
2. 使用您的公共域名配置MCP服务器URL:
```
https://your-domain.com/sse
```
3. 通过AI命令开始使用Google Calendar功能
### Claude Desktop
对于Claude Desktop:
1. 导航到设置 > MCP
2. 使用您的公共URL添加新的MCP连接:
```
https://your-domain.com/sse
```
3. 通过您的对话访问Google Calendar功能
### n8n
1. 在n8n中,添加一个新的MCP节点
2. 使用内部服务URL配置MCP节点:
```
http://[stack-service-name]:3001/sse
```
3. 在您的工作流中使用暴露的日历工具
## 许可证
本项目根据MIT许可证进行许可 - 详细信息请参见LICENSE文件。
## 关于G2NTech
本项目由[G2NTech](https://github.com/oaugustosgabriel)的[Gabriel Augusto](https://github.com/oaugustosgabriel)开发和维护。
## 支持项目 💜
如果您觉得这个项目有用,请考虑通过PIX支持它:
- **PIX密钥:** `gabriel@g2ngroup.com`