使用说明
谷歌日历MCP服务器
用于与Google日历API交互的模型上下文协议(MCP)服务器,专为 史密瑟里.
特性
- OAuth2身份验证:完成OAuth2流,以实现安全的Google日历访问
- 日历管理:列出、创建和删除日历
- 活动操作:创建、读取、更新和删除日历事件
- 综合活动详情:支持与会者、提醒、地点等
- 全天活动支持:处理定时和全天事件
- 搜索功能:按文本和时间范围搜索事件
先决条件
在使用此MCP服务器之前,您需要:
- Node.js 18+ 安装
- 谷歌云控制台项目 启用日历API
- OAuth2凭据 (客户端ID和客户端密码)
谷歌云设置
1.创建谷歌云项目
- 首选 谷歌云控制台
- 创建新项目或选择现有项目
- 启用Google日历API:
- 转到“API和服务”>“库”
- 搜索“Google日历API”
- 点击“启用”
2.配置OAuth同意屏幕
- 转到“API和服务”>“OAuth同意屏幕”
- 选择“外部”用户类型
- 填写所需信息:
- 应用程序名称:“您的应用程序名称”
- 用户支持电子邮件:您的电子邮件
- 开发人员联系信息:您的电子邮件
- 添加范围(测试可选):
https://www.googleapis.com/auth/calendarhttps://www.googleapis.com/auth/calendar.events
3.创建OAuth2凭据
- 转到“API和服务”>“凭据”
- 点击“创建凭据”>“OAuth 2.0客户端ID”
- 选择“Web应用程序”
- 添加授权重定向URI:
http://localhost:3000/oauth2callback
- 下载JSON文件并记下您的客户端ID和客户端密码
安装
使用Smithery命令行界面
npm install -g @smithery/cli
npm create smithery
或者克隆此存储库:
git clone <repository-url>
cd google-calendar-mcp
npm install
配置
使用您的Google OAuth2凭据配置MCP服务器:
{
"clientId": "your-google-client-id.apps.googleusercontent.com",
"clientSecret": "your-google-client-secret",
"redirectUri": "http://localhost:3000/oauth2callback",
"refreshToken": "optional-refresh-token-for-permanent-access"
}
配置参数
clientId(必填):来自谷歌云控制台的谷歌OAuth2客户端IDclientSecret(必填):来自谷歌云控制台的谷歌OAuth2客户端密码redirectUri(可选): OAuth2 重定向 URI (默认:http://localhost:3000/oauth2callback)refreshToken(可选):用于永久访问的预先存在的刷新令牌
用法
发展
npx @smithery/cli dev
身份验证流程
-
生成OAuth URL:
Tool: generate_oauth_url -
访问URL 并授权该应用程序
-
交易所授权码:
Tool: exchange_auth_code Parameters: { "auth_code": "code-from-redirect" } -
保存刷新令牌 供将来在配置中使用
可用工具
身份验证工具
generate_oauth_url-生成OAuth2授权URLexchange_auth_code-代币的交换授权码check_auth_status-检查当前身份验证状态
日历管理
list_calendars-列出所有可访问的日历get_calendar-获取详细的日历信息create_calendar-创建新日历delete_calendar-删除日历(主日历除外)
事件管理
list_events-列出具有筛选选项的事件get_event-获取详细的事件信息create_event-创建新事件update_event-更新现有事件delete_event-删除事件
示例用法
创建事件
Tool: create_event
Parameters: {
"calendar_id": "primary",
"summary": "Team Meeting",
"description": "Weekly sync meeting",
"start_time": "2024-01-15T10:00:00Z",
"end_time": "2024-01-15T11:00:00Z",
"location": "Conference Room A",
"attendees": ["colleague@company.com"],
"timezone": "America/New_York"
}
列出即将举行的活动
Tool: list_events
Parameters: {
"calendar_id": "primary",
"time_min": "2024-01-15T00:00:00Z",
"time_max": "2024-01-22T23:59:59Z",
"max_results": 20
}
安全最佳实践
- 安全地存储凭据 -从不将OAuth2凭据提交到版本控制
- 使用刷新令牌 -配置
access_type: "offline"获取刷新令牌 - 限制范围 -仅请求必要的日历API作用域
- 监控使用情况 -跟踪Google云控制台中API的使用情况
错误处理
MCP服务器为常见问题提供详细的错误消息:
- 身份验证错误 -关于OAuth2设置的明确指导
- API配额限制 -关于利率限制的信息
- 权限错误 -帮助解决范围和访问问题
- 无效参数 -带有有用描述的验证错误
发展
项目结构
google-calendar-mcp/
├── src/
│ ├── index.ts # Main MCP server entry point
│ └── tools/
│ ├── auth.ts # Authentication tools
│ ├── calendars.ts # Calendar management tools
│ └── events.ts # Event management tools
├── package.json
├── smithery.yaml
└── README.md
建筑
npx @smithery/cli build
贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
许可证
MIT许可证-有关详细信息,请参阅许可证文件
支持
- 文档: Smithery文件
- 谷歌日历API: Google日历API参考
- 问题:通过GitHub提交问题