使用说明
谷歌任务MCP服务器
一个模型上下文协议(MCP)服务器,将您的Google任务带入Claude和其他兼容MCP的客户端。通过自然对话管理你的任务、任务列表和待办事项。
🔒 隐私第一:此存储库是公开的,以展示透明度。代码显示 没有恶意记录或存储个人信息。所有敏感数据(令牌)在静止时都会加密,并自动从日志中编辑。您可以查看整个代码库以验证对隐私的承诺。
⚠️ 免责声明:此服务器已提供 按原样 没有任何保证或担保。虽然已经尽一切努力确保安全和隐私,但对可用性、数据完整性或安全性没有任何保证。使用风险自负。对于生产用例,考虑自托管您自己的实例。
目录
你能用这个做什么?
此MCP服务器允许Claude访问您的Google任务数据,允许您:
- 管理任务列表:创建、读取、更新和删除任务列表
- 管理任务:创建、读取、更新、删除和移动任务
- 组织任务:创建子任务、设置截止日期、添加注释
- 标记完成:将任务标记为已完成或未完成
- 批量操作:从列表中清除所有已完成的任务
- 查询任务:按完成状态、截止日期等筛选任务
- 自然语言:通过与Claude的对话与您的任务互动
通过与Claude或任何其他MCP兼容客户端的自然对话。
对于最终用户:使用托管服务器
如果您只想将此MCP服务器与Claude Desktop一起使用,而无需自己托管任何内容,请按照以下步骤操作:
先决条件
安装说明
步骤1:在Claude Desktop中添加连接器
- 打开克劳德桌面
- 首选 设置 (左下角的齿轮图标)
- 导航到 连接器 标签
- 点击 添加自定义连接器
- 填写以下详细信息:
- 名字:
Google Tasks(或您喜欢的任何名称) - 远程MCP服务器URL:
https://your-deployed-domain.com/mcp
- 名字:
- 点击 添加
步骤2:连接并授权
- 在 连接器 设置,找到您刚才添加的Google任务连接器
- 点击 连接 连接器旁边
- 您的网络浏览器将打开谷歌授权页面
- 登录您的Google帐户
- 审查并批准所请求的权限
- 您将被重定向回来,连接将完成
授权后,克劳德将可以访问您的谷歌任务!
可用工具
连接后,Claude可以使用这些工具访问您的数据:
任务列表管理
list_task_lists-返回所有经过身份验证的用户的任务列表get_task_list-返回特定任务列表insert_task_list-创建新任务列表update_task_list-更新任务列表(完整更新)patch_task_list-更新任务列表(部分更新)delete_task_list-删除任务列表
任务管理
list_tasks-返回任务列表中的所有任务get_task-返回特定任务insert_task-创建新任务update_task-更新任务(完整更新)patch_task-更新任务(部分更新)delete_task-删除任务clear_completed_tasks-从列表中清除所有已完成的任务move_task-将任务移动到其他位置或父级
对话示例
试着问克劳德:
- “我有什么任务列表?”
- “显示我的工作列表中的所有任务”
- 创建一个名为“个人项目”的新任务列表
- “在我的工作列表中添加一个任务“查看Q4报告”,截止日期为下周五”
- “将“购买杂货”任务标记为已完成”
- 将“编写提案”任务移动为“客户端项目”的子任务
- “从我的购物清单中清除所有已完成的任务”
- “本周有哪些任务要完成?”
隐私和安全
- 加密令牌:所有身份验证令牌在存储前都使用AES-256-GCM进行加密
- 不记录个人数据:代码是公开的-您可以验证没有记录任何敏感信息
- 自动编校:所有用户ID、令牌和凭据都会从系统日志中自动编辑
- OAuth 2.0:使用Google进行行业标准的安全身份验证
- 你掌控全局:随时从您的Google帐户设置中取消访问
开发者:自助主机
想运行自己的实例吗?以下是如何自己部署此MCP服务器。
先决条件
第一步:创建谷歌云项目
- 首选 谷歌云控制台
- 创建新项目或选择现有项目
- 启用Google任务API:
- 首选 API和服务 → 图书馆
- 搜索“Google任务API”
- 点击 启用
- 创建OAuth 2.0凭据:
- 首选 API和服务 → 凭证
- 点击 创建凭据 → OAuth客户端ID
- 选择 Web应用程序
- 添加授权重定向URI:
https://your-domain.com/callback - 注意你的 客户端ID 和 客户端密钥
- 配置OAuth同意屏幕:
- 首选 API和服务 → OAuth 授权界面
- 添加所需范围:
https://www.googleapis.com/auth/tasks
步骤2:克隆和设置
# Clone the repository
git clone https://github.com/akutishevsky/google-tasks-mcp.git
cd google-tasks-mcp
# Install dependencies
npm install
# Generate encryption secret
npm run generate-secret
# Copy the output - you'll need it for environment variables
第三步:地方发展
备注:Google要求OAuth回调具有可公开访问的URL。对于本地开发,使用隧道服务(如ngrok)公开本地服务器或部署到测试环境进行测试。
# Copy environment template
cp .env.example .env
# Edit .env with your values
# GOOGLE_CLIENT_ID=your_client_id
# GOOGLE_CLIENT_SECRET=your_client_secret
# GOOGLE_REDIRECT_URI=https://your-tunnel-url.com/callback
# ENCRYPTION_SECRET=paste_generated_secret_here
# PORT=3000
# Build the project
npm run build
# Run with Deno
deno task dev
确保.env文件中的重定向URI与指向本地服务器的可公开访问的URL匹配。
步骤4:部署到生产环境
部署到Deno部署
- 安装Deno Deploy命令行界面:
deno install -A --unstable https://deno.land/x/deploy/deployctl.ts
- 部署项目:
# Build first
npm run build
# Deploy to Deno Deploy
deployctl deploy --project=google-tasks-mcp build/index.js
- 在Deno Deploy仪表板中设置环境变量:
- 转到项目设置
- 添加所有必需的环境变量
- 重新启动部署
步骤5:更新Google OAuth设置
返回您的Google Cloud Console OAuth客户端,更新重定向URI以匹配您部署的URL:
https://your-domain.com/callback
步骤6:配置MCP客户端
对于Claude Desktop:
- 打开克劳德桌面
- 首选 设置 → 连接器 标签
- 点击 添加自定义连接器
- 填写以下详细信息:
- 名字:
Google Tasks(或您喜欢的任何名称) - 远程MCP服务器URL:
https://your-domain.com/mcp
- 名字:
- 点击 添加
- 点击 连接 在要授权的连接器旁边
对于其他MCP客户:
使用以下连接详细信息配置MCP客户端:
- 服务器URL:
https://your-domain.com - 运输:服务器发送事件(SSE)
- 端点:
/mcp - 认证:OAuth 2.0
- 发现URL:
/.well-known/oauth-authorization-server
环境变量引用
| 变量 | 必填 | 描述 |
|---|---|---|
GOOGLE_CLIENT_ID |
是 | 您的Google OAuth客户端ID |
GOOGLE_CLIENT_SECRET |
是 | 您的Google OAuth客户端密码 |
GOOGLE_REDIRECT_URI |
是 | OAuth回调URL(必须与Google Cloud Console设置匹配) |
ENCRYPTION_SECRET |
是 | 32+个字符的密钥用于令牌加密(使用 npm run generate-secret) |
PORT |
无 | 服务器端口(默认值:3000) |
LOG_LEVEL |
否 | 日志记录级别:跟踪、调试、信息、警告、错误(默认值:信息) |
ALLOWED_ORIGINS |
否 | 浏览器客户端允许的CORS源的逗号分隔列表 |
开发命令
npm run build # Compile TypeScript to JavaScript
npm run dev # Watch mode - recompile on changes
npm run generate-secret # Generate encryption secret for ENCRYPTION_SECRET env variable
项目结构
src/
├── auth/ # OAuth 2.0 authentication & token storage
├── server/ # Hono app, MCP endpoints, middleware
├── tools/ # MCP tools for Google Tasks API (tasklists, tasks)
├── transport/ # Custom SSE transport for MCP
├── google/ # Google Tasks API client
├── utils/ # Logger and encryption utilities
└── index.ts # Main entry point
安全特性
令牌加密
所有谷歌访问和刷新令牌在静止时都使用加密 AES-256-GCM:
- 算法:AES-256-GCM(经过身份验证的加密)
- 密钥派生:PBKDF2,迭代次数为100000次
- 纵深防御:即使数据库遭到破坏,令牌也会受到保护
重要:保持你的 ENCRYPTION_SECRET:
- 长度至少为32个字符
- 随机生成(使用
npm run generate-secret) - 安全,从不承诺版本控制
- 跨服务器重启保持一致
隐私安全日志
自定义记录器会自动编辑所有敏感信息:
- ✅ 记录操作事件和错误
- ❌ 没有令牌、凭据或身份验证码
- ❌ 没有用户ID或个人信息
- ❌ 没有包含敏感数据的API请求/响应有效负载
您可以在中查看日志记录实现 src/utils/logger.ts.
贡献
这是一个个人项目,但欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支
- 进行更改
- 提交拉取请求
许可证
MIT许可证-请参阅 许可证 文件以获取详细信息。
支持
- 问题:报告错误或请求功能 GitHub问题
- 谷歌任务API:参见 Google任务API文档
- MCP协议:参见 模型上下文协议文档
致谢
内置: