谷歌日历MCP服务器
一个与谷歌日历集成的模型上下文协议(MCP)服务器,使用TypeScript构建。
特性
- 与OAuth 2.0身份验证无缝集成Google日历
- 用于自动身份验证的持久令牌存储
- 通过全面的事件操作列出和管理日历
- 创建、读取、更新和删除日历事件
- 获取指定日期之间的日历事件
- 用于实时更新的服务器发送事件(SSE)传输选项
- 与Claude和其他兼容MCP的AI助手简单集成
安装
npm install -g mcp-google-calendar或者直接运行:
npx -y mcp-google-calendar先决条件
- Node.js(v16或更高版本)
- 谷歌云平台帐户
- 已启用Google日历API
- OAuth 2.0凭据
设置
1.谷歌云配置
- 首选 谷歌云控制台
- 创建新项目或选择现有项目
- 启用Google日历API:
- 导航到“API和服务”>“库” - 搜索“Google日历API” - 点击“启用”
- 配置OAuth同意屏幕:
- 转到“API和服务”>“OAuth同意屏幕” - 选择“外部”用户类型(或谷歌工作区的“内部”) - 填写必填信息: - 应用程序名称:mcp日历 - 用户支持电子邮件:(您的电子邮件) - 开发人员联系信息:(您的电子邮件) - 添加作用域: - 点击“添加或删除范围” - 查找并选择“https://www.googleapis.com/auth/calendar.events" - 将您的电子邮件添加为测试用户 - 完成设置
- 创建OAuth凭据:
- 转到“凭据” - 点击“创建凭据”>“OAuth客户端ID” - 选择“桌面应用程序”作为应用程序类型 - 命名它(例如,“MCP日历桌面客户端”) - 下载JSON文件并另存为 credentials.json 在您的项目目录中
2.环境配置
创建一个 .env 项目根目录中的文件:
# Server configuration
PORT=3420
# Google Calendar API configuration
CREDENTIALS_PATH=./credentials.json用法
启动服务器
从标准WebSockets开始:
npx -y mcp-google-calendar从服务器发送事件(SSE)开始:
npx -y mcp-google-calendar --sse使用克劳德桌面
将此添加到您的 claude_desktop_config.json:
{
"mcpServers": {
"mcp-google-calendar": {
"command": "npx",
"args": ["-y", "mcp-google-calendar"],
"env": {
"CREDENTIALS_PATH": "/path/to/your/credentials.json"
}
}
}
}验证过程
第一次运行服务器时:
- 浏览器窗口将自动打开
- 使用您的Google帐户登录
- 授予请求的日历权限
- 身份验证令牌保存到
token.json
在后续的发射中:
- 服务器自动使用保存的令牌
- 除非令牌过期,否则不需要浏览器交互
可用工具
| 工具 | 说明 |
|---|---|
list_calendars | 获取所有可用日历 |
list_calendar_events | 检索指定日期之间的事件 |
create_calendar_event | 在日历中添加新事件 |
get_calendar_event | 获取特定事件的详细信息 |
edit_calendar_event | 修改现有日历事件 |
delete_calendar_event | 从日历中删除事件 |
发展
克隆并设置项目:
git clone https://github.com/am2rican5/mcp-google-calendar.git
cd mcp-google-calendar
npm install构建项目:
npm run build在开发模式下运行:
npm start安全考虑
⚠️ 重要安全警告 ⚠️
credentials.json和token.json包含敏感的身份验证信息- 切勿将这些文件提交到版本控制或公开共享
- 每个用户都应该创建自己的OAuth凭据
- 如果您怀疑凭据泄露,请立即在Google Cloud Console中撤销它们
- 该令牌授予访问您的Google日历数据的权限
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
贡献
欢迎投稿!请随时提交拉取请求。
- 分叉存储库
- 创建功能分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
