使用说明
谷歌日历MCP服务器
这是一个模型上下文协议(MCP)服务器,与谷歌日历API集成,允许人工智能助手管理日历、创建和更新事件、查找可用的时间段等。
特性
- 列出所有可用日历
- 列出具有筛选选项的事件
- 创建、更新和删除事件
- 获取特定事件的详细信息
- 在日历中查找可用的时间段
- 获取即将举行的会议的状态(正在进行、即将举行、过去)
- 支持重复事件
- 会议与会者管理
设置
先决条件
- Node.js 16+
- 启用日历API的谷歌云项目
- OAuth 2.0客户端凭据
安装
选项1:本地安装
- 克隆此存储库
git clone https://github.com/daemonX10/Google-Calendar-MCP-Server.git cd Google-Calendar-MCP-Server - 安装依赖项:
npm install - 创建一个
.env文件与您的Google API凭据(您可以从.env.example):GOOGLE_CLIENT_ID=your_client_id GOOGLE_CLIENT_SECRET=your_client_secret GOOGLE_REDIRECT_URI=http://localhost:3000/auth/callback
选项2:使用Docker(推荐)
- 克隆此存储库
git clone https://github.com/daemonX10/Google-Calendar-MCP-Server.git cd Google-Calendar-MCP-Server - 复制示例环境文件:
cp .env.example .env - 编辑
.env使用您的Google API证书提交 - 构建并启动Docker容器:
docker-compose up -d
谷歌云设置
- 首选 谷歌云控制台
- 创建新项目或选择现有项目
- 在API库中启用Google日历API
- 创建OAuth 2.0凭据:
- 转到API和服务>凭据
- 点击“创建凭据”>“OAuth客户端ID”
- 选择“Web应用程序”作为应用程序类型
- 添加
http://localhost:3000/auth/callback作为授权重定向URI - 将客户端ID和客户端密码复制到您的
.env文件
- 设置OAuth同意屏幕:
- 转到API和服务>OAuth同意屏幕
- 填写所需信息(应用程序名称、用户支持电子邮件等)
- 添加必要的范围(
https://www.googleapis.com/auth/calendar和https://www.googleapis.com/auth/calendar.events) - 将您的电子邮件地址添加为测试用户
认证
首次身份验证
- 启动服务器:
npx ts-node src/index.ts - 您将在控制台输出中看到一个URL。在浏览器中打开此URL以授权应用程序。
- 授权后,您将被重定向到一个带有代码参数的URL。复制此代码。
- 使用身份验证助手保存刷新令牌:这将自动将刷新令牌保存到您的
npx ts-node src/auth-helper.ts "YOUR_AUTH_CODE".env文件并测试连接。 - 您现在可以使用MCP服务器了!
身份验证故障排除
如果遇到身份验证问题:
- 确保您的Google Cloud OAuth凭据已正确设置,并具有精确的重定向URI
- 如果您收到“invalid_grant”错误,则授权码可能已过期——它们只持续几分钟
- 如果您之前已授权该应用程序,则可能需要撤销其访问权限 Google帐户权限 然后重试
- 确保您已将电子邮件添加为Google Cloud Console OAuth同意屏幕中的测试用户
运行服务器
发展模式
npm run dev
生产模式
选项1:Node.js
- 构建服务器:
npm run build - 启动服务器:
npm start
选项2:Docker(推荐)
# Build and start the container
docker-compose up -d
# View logs
docker-compose logs -f
# Stop the container
docker-compose down
Docker Hub镜像
您还可以使用我们预构建的Docker镜像:
# Pull the image
docker pull daemonx10/google-calendar-mcp:latest
# Run the container (create a .env file first)
docker run -d -p 3000:3000 --name google-calendar-mcp --env-file ./.env daemonx10/google-calendar-mcp:latest
与AI助手集成
{
"mcp": {
"servers": {
"google-calendar": {
"command": "node",
"args": ["/absolute/path/to/mcp-google-calendar/dist/index.js"],
"env": {
"GOOGLE_CLIENT_ID": "your_client_id",
"GOOGLE_CLIENT_SECRET": "your_client_secret",
"GOOGLE_REDIRECT_URI": "http://localhost:3000/auth/callback",
"GOOGLE_REFRESH_TOKEN": "your_refresh_token"
}
}
}
}
}
对于Claude Desktop,您需要首先使用以下命令构建项目 npm run build.
Claude.ai Web集成
对于Claude.ai网站,您需要:
- 让服务器在您的计算机上本地运行
- 使用以下解决方案 Claude MCP浏览器扩展 将Claude.ai连接到本地MCP服务器
其他人工智能助理
对于支持模型上下文协议的其他AI助手:
- 保持服务器在端口3000上运行
- 配置助手以连接到
http://localhost:3000用于Google日历MCP服务器 - 有关具体的MCP集成步骤,请参阅您的助手的文档
使用MCP服务器
一旦与您选择的AI助手集成,您就可以使用自然语言命令与Google日历进行交互。例如:
- “显示我今天的日历”
- “明天下午2点与约翰就项目规划举行会议”
- “在我的日历中查找本周可用的30分钟时段”
- “将我下午3点的会议重新安排到下午4点”
- “取消我与Sarah的会面”
可用工具
列表_日历
列出所有可用日历。
list_事件
在日历中列出具有筛选选项的事件。 参数:
calendarId(可选):日历ID(默认值:“主”)maxResults(可选):要返回的最大事件数timeMin(可选):ISO格式的开始时间(默认值:现在)timeMax(可选):ISO格式的结束时间q(可选):用于查找事件的搜索词
create_event
在日历中创建新事件。 参数:
calendarId(可选):日历ID(默认值:“主”)summary:事件标题description(可选):事件描述location(可选):活动地点start:ISO格式的开始时间end:ISO格式的结束时间attendees(可选):与会者的电子邮件地址列表reminders(可选):事件提醒配置recurrence(可选):重复事件的重复规则
get_event
获取特定事件的详细信息。 参数:
calendarId(可选):日历ID(默认值:“主”)eventId:事件ID
update_事件
更新日历中的现有事件。 参数:
calendarId(可选):日历ID(默认值:“主”)eventId:事件IDsummary(可选):事件标题description(可选):事件描述location(可选):活动地点start(可选):ISO格式的开始时间end(可选):ISO格式的结束时间attendees(可选):与会者的电子邮件地址列表reminders(可选):事件提醒配置
删除事件
从日历中删除事件。 参数:
calendarId(可选):日历ID(默认值:“主”)eventId:事件ID
查找可用地块
在日历中查找可用的时间段。 参数:
calendarId(可选):日历ID(默认值:“主”)timeMin(可选):ISO格式的开始时间(默认值:现在)timeMax(可选):ISO格式的结束时间duration(可选):持续时间(分钟)workingHoursStart(可选):工作时间开始时间(例如“09:00”)workingHoursEnd(可选):工作时间结束时间(例如“17:00”)
get_upcoming_meetings
获取今天或特定日期即将举行的会议。 参数:
calendarId(可选):日历ID(默认值:“主”)date(可选):ISO格式的日期(默认值:今天)
安全考虑
- 此MCP服务器在您的计算机上本地运行,因此您的日历数据永远不会通过外部服务器
- OAuth刷新令牌存储在.env文件中,请确保其安全
- 服务器在与谷歌API通信时使用HTTPS
- 将此服务器暴露于外部网络时请小心
故障排除
服务器无法启动
- 检查Node.js是否已安装并且是最新的
- 验证所有依赖项是否已安装
npm install - 确保.env文件具有正确的凭据
- 检查TypeScript错误
npx tsc --noEmit
身份验证问题
- 确保您的Google Cloud OAuth凭据与.env文件中的凭据匹配
- 从取消应用程序访问 Google帐户权限 然后重试
- 确保您的电子邮件已作为测试用户添加到Google Cloud Console中
- 检查您的重定向URI是否与Google Cloud控制台中的URI完全匹配
整合问题
- 验证配置文件中的路径是否绝对正确
- 在尝试将服务器与AI助手一起使用之前,请确保服务器正在运行
- 检查助手的日志是否存在连接错误
- 对于Claude Desktop,请确保您已使用
npm run build
许可证
麻省理工学院