🗓️ 谷歌日历MCP服务器
该项目整合了 谷歌日历v3 API 有个习惯 MCP(模型上下文协议)服务器,通过以下工具实现与日历的自然语言交互 克劳德桌面.
它充当日历数据和使用MCP兼容HTTP流的LLM之间的桥梁。
______________________________________________________________________
🧠 概述
此项目包含两个核心服务器:
1.🔐 谷歌OAuth服务器
- 处理OAuth 2.0流
- 在本地会话文件中存储和刷新访问令牌
2.🤖 MCP服务器
- 实施 模型上下文协议(MCP)
- 公开HTTP流媒体接口
- 使用保存的凭据与进行交互 谷歌日历API v3
______________________________________________________________________
🚀 入门指南
第一步:🔧 设置Google API凭据
- 转到 谷歌云控制台
- 创建或选择项目
- 启用 谷歌日历API
- 首选 凭证 → *创建OAuth 2.0客户端ID*
- 选择 桌面应用程序 - 设置品牌并在受众中添加测试用户电子邮件
- 将OAuth凭据下载为
client_secret.json - 将此文件放入 根目录 项目的
______________________________________________________________________
第二步:📦 再进行
poetry install______________________________________________________________________
步骤3:🚪 启动OAuth服务器
poetry run uvicorn src.main:app --host 0.0.0.0 --port 8000- 这应该会自动打开浏览器进行OAuth身份验证。
- 如果没有,请访问 http://0.0.0.0:8000/google_oauth/
- 成功验证后,您将看到一个成功页面。
- A.
session.json文件将使用您的访问/刷新令牌创建。
______________________________________________________________________
步骤4:🧩 运行MCP服务器
poetry run python src/server.py这将在以下位置启动可流式传输的MCP兼容HTTP服务器 http://localhost:8080/mcp______________________________________________________________________
步骤5:🧠 连接MCP客户端(克劳德桌面)
更新配置文件:
~/Library/Application Support/Claude/claude_desktop_config.json添加以下条目:
{
"mcpServers": {
"google-calendar-mcp": {
"command": "npx",
"args": [
"mcp-remote",
"http://localhost:8080/mcp"
]
}
}
}______________________________________________________________________
步骤6:✅ 验证集成
- 打开 克劳德桌面 设置。
- 如果正确添加了MCP服务器,它将显示在 *设置->集成*
🧠 演示
https://github.com/user-attachments/assets/27a8e5ee-8f2f-40c7-bdfc-1caa93767efb
🧱 项目结构
project-root/
├── client_secret.json # Google OAuth credentials
├── session.json # Access/refresh token storage
├── pyproject.toml # Poetry project config
├── README.md
└── src/
├── main.py # FastAPI app for OAuth server
├── server.py # MCP-compatible server
├── settings.py # App settings and constants
├── api/
│ └── oauth_callback.py # OAuth endpoint logic
├── core/
│ ├── calendar_client.py # Google Calendar API wrapper
│ ├── mcp_tools.py # Tools exposed to MCP clients
│ ├── oauth_manager.py # OAuth initiation and flow
│ └── session_manager.py # Token handling
└── gcalendar_types/ # Typed definitions for Calendar v3 API______________________________________________________________________
🧩 依赖项
______________________________________________________________________
