谷歌日历MCP服务器
这个项目是一个持久的、基于Python的MCP(模型上下文协议)服务器,充当MCP客户端(如Claude Desktop)和您的Google Calendar API之间的桥梁。
它将日历公开为LLM可以使用的一组工具(创建、读取、更新、删除)。感谢本地SQLite数据库安全地存储您的谷歌 refresh_token,您只需通过基于浏览器的身份验证流程 一次之后,服务器可以在后台运行,并始终为Claude做好准备。
______________________________________________________________________
✨ 特性
- 完整CRUD:
- get_events (阅读) - create_event (创建) - update_event (更新) - delete_event (删除)
- 持久身份验证: 使用本地SQLite数据库(
sql_app.db)安全地存储您的Google OAuthrefresh_token. - 简单的一次性设置: A内置
--authflag会启动一个临时网络服务器,以便从谷歌轻松获取您的令牌。 stdio运输: 设计由Claude Desktop自动启动和管理。- 安全: 客户端中不需要API密钥。服务器在后台处理所有令牌刷新。
______________________________________________________________________
🔧 安装和设置
您需要获取谷歌凭据,设置项目,并进行一次身份验证。
步骤1:获取Google凭据
在你开始之前,你必须从谷歌获得你自己的API证书。
- 转到 谷歌云控制台.
- 创建一个新项目。
- 首选 “API和服务”->“库” 并启用 “Google日历API”.
- 首选 “API和服务”->“OAuth同意屏幕”.
- 选择 “外部” 并填写必填字段(应用程序名称、用户支持电子邮件)。 - 在“范围”页面上,添加 .../auth/calendar 和 .../auth/userinfo.email 范围。 - 在“测试用户”页面上,添加您计划使用的谷歌电子邮件帐户(例如。, you@gmail.com).
- 首选 “API和服务”->“凭据”.
- 点击 “+创建凭据”->“OAuth客户端ID”. - 选择 “Web应用程序” 对于应用程序类型。 - 在“授权重定向URI”下,单击“+添加URI”并添加: http://127.0.0.1:8000/auth/google/callback
- 单击“创建”。谷歌会给你一个 客户端ID 和一个 客户端密钥复制这些。
步骤2:克隆并安装
- 克隆存储库:
git clone
cd mcp-google-calender- 创建虚拟环境并激活它:
# On macOS/Linux
python3 -m venv .venv
source .venv/bin/activate
# On Windows
python -m venv .venv
.\.venv\Scripts\activate- 安装所需的软件包:
pip install -r requirements.txt- 创建一个
.env在项目的根目录中创建文件,并添加您从谷歌获得的凭据:
# .env
GOOGLE_CLIENT_ID=YOUR_CLIENT_ID_HERE.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=YOUR_CLIENT_SECRET_HERE步骤3:通过谷歌授权(仅限一次)
您必须运行此步骤一次才能创建数据库并获取 refresh_token.
- 运行身份验证服务器:
python main.py --auth- 您的终端将显示:
Starting one-time auth server on http://127.0.0.1:8000 Please open http://127.0.0.1:8000/auth/google in your browser.
- 在浏览器中打开该URL,登录您的Google帐户,并授予权限。
- 您将被重定向到成功页面。现在,您可以停止终端中的服务器(
Ctrl+C). - 一个新的数据库文件,
sql_app.db,现在将位于您的项目中~/Library/Application Support/mcp-google-calender/目录。您的令牌已安全存储。
步骤4:连接到克劳德桌面
这是告诉Claude如何运行服务器的最后一步。
- 查找 绝对路径 到项目的Python可执行文件。当你的venv处于活动状态时,运行:
# On macOS/Linux
which python
# Example output: /Users/yourname/Code/mcp-google-calender/.venv/bin/python
# On Windows
where python
# Example output: C:\Users\yourname\Code\mcp-google-calender\.venv\Scripts\python.exe- 查找 绝对路径 你的
main.py文件。在项目文件夹中,运行:
# On macOS/Linux
pwd
# Example output: /Users/yourname/Code/mcp-google-calender
# (So your script path is /Users/yourname/Code/mcp-google-calender/main.py)
# On Windows
cd
# Example output: C:\Users\yourname\Code\mcp-google-calender
# (So your script path is C:\Users\yourname\Code\mcp-google-calender\main.py)- 打开克劳德桌面,转到 设置 -> 开发者 -> 编辑配置.
- 将以下内容添加到
mcpServers对象,使用 绝对路径 你刚刚发现。
{
"mcpServers": {
"google_calendar": {
"command": "/ABSOLUTE/PATH/TO/YOUR/.venv/bin/python",
"args": [
"/ABSOLUTE/PATH/TO/YOUR/main.py"
],
"cwd": "/ABSOLUTE/PATH/TO/YOUR/PROJECT/FOLDER"
}
}
}- command:Python可执行文件的完整路径(从步骤4.1开始)。 - args:一个包含您的完整路径的列表 main.py 脚本。 - cwd:通往 *文件夹* 包含 main.py 和 .env (从步骤4.2开始)。这对于服务器找到您的 .env 文件。 - *(Windows用户:记得使用双反斜杠 \\ JSON文件中的路径。)*
______________________________________________________________________
🚀 用法
- 完全退出并重新启动Claude Desktop 以使更改生效。
- 打开新聊天。您应该在聊天栏中看到“搜索和工具”(滑块)图标。
- 如果你点击它,你会看到
google_calendar服务器及其四个工具:
- get_events - create_event - update_event - delete_event
- 现在,您可以让克劳德管理您的日历!
示例提示:
- “明天我的日历上有什么?”
- “为本周五下午3点创建一个名为“医生预约”的活动。”
- “找到“医生预约”事件,并将其时间更改为下午4点。”
- “删除事件‘医生预约’。”
______________________________________________________________________
📄 许可证
这个项目是在MIT许可证下开源的。
