Google日历MCP服务器

一个连接Claude桌面应用与Google日历的自定义模型上下文协议服务器,支持通过OAuth 2.0安全访问日历数据,实现日程查询、自然语言日期解析等功能。

  • by zoya-234
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 zoya-234/google_calender_mcp

使用说明

📅 谷歌日历MCP服务器

将Claude Desktop连接到Google日历的自定义模型上下文协议服务器

该项目实现了一个功能齐全的 模型上下文协议(MCP)服务器 这允许Claude Desktop(以及任何其他兼容MCP的LLM) 安全地访问您的谷歌日历 使用OAuth 2.0。

连接后,Claude可以:

  • 阅读您的日历
  • 回答日程问题
  • 解析自然语言日期
  • 总结事件
  • 您的可用性原因

🔥 特性

  • ✅ 私人谷歌日历访问(OAuth 2.0)
  • ✅ 获取任何给定日期的所有事件
  • ✅ 自然语言日期支持(通过Claude)
  • ✅ Claude内部的自动工具调用
  • ✅ 安全令牌存储(token.json)
  • ✅ 使用Node.js构建的完全兼容的MCP服务器

📁 项目结构

G-mcp/
│── server.js        # Main MCP server
│── token.js         # OAuth token generator
│── token.json       # OAuth credentials (auto-generated)
│── .env             # Environment variables
│── package.json
│── README.md

🚀 入门指南

1.克隆存储库

git clone <your-repo-url>
cd G-mcp

2.安装依赖项

npm install

使用的依赖关系:

  • googleapis
  • dotenv
  • zod
  • @modelcontextprotocol/sdk

3.创建Google Cloud OAuth客户端

  1. 访问: https://console.cloud.google.com/apis/credentials

  2. 创建新→ OAuth 2.0客户端ID

  3. 应用程序类型: 桌面应用程序

  4. 副本:

    • 客户端ID
    • 客户端密码
  5. 添加重定向URI:

    http://localhost:54545/oauth2callback
    

4.填写您的 .env 文件

CLIENT_ID=your_client_id_here
CLIENT_SECRET=your_client_secret_here
CALENDAR_ID=your_gmail_here@gmail.com

5.生成OAuth令牌

运行:

node token.js
  • 将打开一个谷歌登录窗口
  • 批准访问
  • token.json 将自动创建

⭐ 重要提示: 保持 token.json。没有它,您的MCP服务器无法运行。


6.将MCP服务器连接到克劳德桌面

打开:

Claude → Settings → Tools & Integrations → Local MCP Servers

添加:

{
  "command": "node",
  "args": ["C:/MCP/G-mcp/server.js"],
  "env": {
    "CLIENT_ID": "your-client-id",
    "CLIENT_SECRET": "your-client-secret",
    "CALENDAR_ID": "your-calendar-id"
  }
}

重新启动克劳德桌面。


🧪 使用示例

一旦您的服务器处于活动状态,请在Claude中尝试以下操作:

Do I have any meetings today?
What’s on my schedule for December 5th?
Check if I have meetings on 2025-12-01.

Claude将自动调用MCP工具:

getMyCalendarDataByDate

并根据您的真实日历返回自然语言答案。


🔍 运作原理

1.克劳德解释你的问题

→ 检测日期或意图 → 选择正确的MCP工具

2.MCP服务器收到工具调用

→ 调用Google日历API → 返回结构化JSON

3.Claude转换JSON→ 人性化响应

→ 处理时区转换 → 清晰地总结会议


🛠 故障排除

日志文件位置:

C:\Users\<your-user>\AppData\Roaming\Claude\logs\

寻找:

mcp-server-<your-server-name>

常见错误

错误 含义 修复
ENOENT token.json 找不到token.json 将正确的文件复制到项目根目录
invalid_grant Token过期 删除Token.json→ 再次运行token.js
insufficient scopes OAuth权限错误 使用日历。只读
Server disconnected 语法或路径问题 修复Claude配置中的路径

🔒 安全说明

  • 永不承诺 .env 或 token.json 转到GitHub
  • 仅在本地存储机密
  • 如果共享,请使用专用的Google Cloud项目

✨ 未来的增强功能

  • 添加“创建事件”支持(写访问)
  • 添加每周/每月摘要
  • 添加“查找空闲时段”
  • 多日历支持
  • 添加高级诊断工具

🤝 贡献

欢迎PR和功能建议! 分叉仓库,进行改进,并打开一个pull请求。


📄 许可证

MIT许可证