使用说明
谷歌任务MCP服务器
用于Google Tasks的全面模型上下文协议(MCP)服务器,使LLM能够通过设计良好、面向工作流的工具管理任务和任务列表。
特性
此MCP服务器为Google任务管理提供了面向工作流的智能工具:
任务列表管理
- 创建、更新、删除和列出 任务列表
- 将任务组织到项目和类别中
任务操作
- 创建任务 带有标题、注释、截止日期和层次结构(子任务)
- 列出任务 具有强大的过滤功能(日期范围、状态、分页)
- 更新任务 -修改标题、注释、状态、截止日期
- 删除任务 永久地
- 移动任务 职位与父母之间
- 清除已完成的任务 批量
工作流工具
- 快速添加 -自然语言任务创建
- 批量创建 -一次创建多个任务
- 搜索任务 -在所有列表中查找任务
- 任务摘要 -按时间范围(今天、明天、一周、逾期)获取有组织的视图
先决条件
- Python 3.8+ 安装在您的系统上
- 谷歌云项目 启用了任务API
- OAuth 2.0凭据 用于桌面应用程序
安装说明
第一步:谷歌云设置
-
首选 谷歌云控制台
-
创建新项目或选择现有项目
-
启用Google任务API:
- 转到“API和服务”>“库”
- 搜索“任务API”
- 点击“启用”
-
创建OAuth 2.0凭据:
- 转到“API和服务”>“凭据”
- 点击“创建凭据”>“OAuth客户端ID”
- 选择“桌面应用程序”作为应用程序类型
- 给它起个名字(例如,“谷歌任务MCP”)
- 下载凭据JSON文件
-
创建配置目录:
mkdir -p ~/.google_tasks_mcp -
将下载的凭据文件另存为:
~/.google_tasks_mcp/credentials.json
步骤2:安装依赖项
pip install -r requirements.txt
步骤3:首次运行和身份验证
首次运行服务器进行身份验证:
python google_tasks_mcp.py
这将:
- 打开浏览器窗口进行谷歌身份验证
- 请您授权该应用程序
- 保存身份验证令牌以备将来使用
配置
适用于Claude桌面应用程序
将此添加到您的Claude桌面配置文件中:
MacOS: ~/Library/Application Support/Claude/claude_desktop_config.json
窗户: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"google-tasks": {
"command": "python",
"args": ["/path/to/google_tasks_mcp.py"],
"env": {}
}
}
}
替换 /path/to/google_tasks_mcp.py 以及服务器文件的实际路径。
对于其他MCP客户端
默认情况下,服务器在stdio传输上运行:
python google_tasks_mcp.py
作为远程(HTTP/SSE)MCP服务器运行
此服务器还可以通过HTTP/SSE远程运行。用环境变量控制它:
MCP_MODE:设置为remote(启用HTTP/SSE)。违约:stdio.MCP_HOST:绑定主机(例如。,0.0.0.0).违约:0.0.0.0.MCP_PORT:端口号。违约:8000.MCP_PATH:SSE端点路径。违约:/sse.
例子:
source /Users/omshejul/python-env/venv/bin/python
export MCP_MODE=remote
export MCP_HOST=0.0.0.0
export MCP_PORT=8000
export MCP_PATH=/sse
python google_tasks_mcp.py
克劳德远程配置(SSE)
Claude Desktop通常需要stdio服务器。使用 mcp-remote 适配器通过SSE连接。将这样的条目添加到 mcpServers Claude配置的一部分:
{
"mcpServers": {
"google-tasks": {
"command": "npx",
"args": ["-y", "mcp-remote@latest", "http://YOUR_HOST:8000/sse"]
}
}
}
替换 YOUR_HOST 并根据需要设置端口。确保可以从客户端访问服务器。
可选:需要承载令牌
为远程服务器设置身份验证令牌,以便客户端必须提供 Authorization: Bearer <token>:
export MCP_AUTH_TOKEN=REPLACE_ME_SECRET
export MCP_MODE=remote
export MCP_HOST=0.0.0.0
export MCP_PORT=8000
export MCP_PATH=/sse
/Users/omshejul/python-env/venv/bin/python google_tasks_mcp.py
对于克劳德 mcp-remote,传递标头并将密钥保存在env变量中:
{
"mcpServers": {
"google-tasks": {
"command": "npx",
"args": [
"-y",
"mcp-remote@latest",
"http://YOUR_HOST:8000/sse",
"--header",
"Authorization:Bearer ${GOOGLE_TASKS_MCP_TOKEN}"
],
"env": {
"GOOGLE_TASKS_MCP_TOKEN": "REPLACE_ME_SECRET"
}
}
}
}
可用工具
任务列表管理
create_task_list
创建新的任务列表以组织相关任务。
Input: title (string)
Returns: Created task list details
list_task_lists
列出所有支持分页的任务列表。
Input:
- max_results (1-50, default: 20)
- page_token (optional)
- response_format (json/markdown/concise/detailed)
Returns: List of task lists
update_task_list
重命名现有任务列表。
Input:
- tasklist_id (string)
- title (string)
Returns: Updated task list
delete_task_list
⚠️ 永久删除任务列表及其所有任务。
Input: tasklist_id (string)
Returns: Confirmation
任务操作
create_task
使用可选详细信息创建新任务。
Input:
- title (string, required)
- notes (string, optional)
- due_date (ISO format YYYY-MM-DD, optional)
- tasklist_id (default: "@default")
- parent_task_id (optional, for subtasks)
Returns: Created task details
list_tasks
列出具有全面筛选选项的任务。
Input:
- tasklist_id (default: "@default")
- max_results (1-100, default: 30)
- show_completed (boolean, default: false)
- show_deleted (boolean, default: false)
- due_min/due_max (ISO dates for filtering)
- completed_min/completed_max (ISO dates)
- page_token (for pagination)
- response_format (json/markdown/concise/detailed)
Returns: Filtered task list
update_task
修改任务属性。
Input:
- task_id (string, required)
- tasklist_id (default: "@default")
- title (optional)
- notes (optional)
- status (needsAction/completed, optional)
- due_date (ISO format or "clear", optional)
Returns: Updated task
delete_task
⚠️ 永久删除任务。
Input:
- task_id (string)
- tasklist_id (default: "@default")
Returns: Confirmation
move_task
重新组织任务位置或层次结构。
Input:
- task_id (string)
- tasklist_id (default: "@default")
- parent_task_id (optional)
- previous_task_id (optional)
Returns: Moved task details
clear_completed_tasks
⚠️ 从列表中删除所有已完成的任务。
Input:
- tasklist_id (default: "@default")
Returns: Confirmation
工作流工具
quick_add_task
使用自然语言创建任务。
Input:
- text (string, e.g., "Buy milk tomorrow")
- tasklist_id (default: "@default")
Returns: Created task
示例:
- “明天见约翰”
- “紧急:修复登录错误”
- “下周提交报告”
bulk_create_tasks
一次创建多个任务。
Input:
- tasks (list of strings, 1-50 items)
- tasklist_id (default: "@default")
- due_date (optional, applies to all)
Returns: Creation summary
search_tasks
在所有任务列表中查找任务。
Input:
- query (string)
- include_completed (boolean, default: false)
- max_results (1-50, default: 20)
- response_format (json/markdown/concise/detailed)
Returns: Matching tasks from all lists
get_task_summary
按时间范围获取有组织的任务概述。
Input:
- time_range (today/tomorrow/week/overdue/all)
- include_completed (boolean, default: false)
- response_format (concise/markdown/detailed)
Returns: Task summary for time period
使用示例
日常计划工作流程
- “获取我今天的任务摘要”
- “显示过期任务”
- “创建明天到期的任务‘审查季度报告’”
- “将任务[ID]标记为已完成”
项目设置工作流
- “创建一个名为“网站重新设计”的任务列表”
- “批量创建任务:[‘设计模型’、‘获取客户反馈’、‘实施更改’、‘测试’、‘部署’]”
- “为所有任务设置截止日期2024-02-15”
任务搜索工作流
- “搜索包含“会议”的任务”
- “查找标题中带有“紧急”的所有任务”
- “显示上周完成的任务”
响应格式
服务器支持多种响应格式:
- JSON:用于处理的原始API响应
- 标记语言:为可读性而格式化
- 简洁:信息最少,便于快速查看
- 详细的:完整的任务信息,包括ID
错误处理
服务器提供清晰、可操作的错误消息:
- 安装说明中的身份验证错误
- 特定指导下的输入无效
- API错误,建议修复
- 适用时的限速信息
安全
- OAuth 2.0令牌存储在本地
~/.google_tasks_mcp/token.json - 凭据永远不会离开您的本地计算机
- 令牌刷新是自动处理的
- 仅限于访问Google任务
故障排除
身份验证问题
- 确保credentials.json位于正确的位置
- 删除token.json以重新进行身份验证
- 检查任务API是否已在Google云控制台中启用
权限错误
- 验证Google帐户是否可以访问Google任务
- 检查OAuth同意屏幕是否已配置
- 确保授权了正确的范围
连接问题
- 验证互联网连接
- 检查防火墙设置
- 确保谷歌服务可访问
发展
添加新工具
- 定义用于输入验证的Pydantic模型
- 使用@mcp.tool装饰器实现工具功能
- 添加全面的文档字符串和错误处理
- 更新README文档
测试
在开发模式下运行服务器:
python google_tasks_mcp.py --debug
许可证
MIT许可证-有关详细信息,请参阅许可证文件
贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支
- 添加新功能的测试
- 提交拉取请求
支持
对于问题或疑问:
- 检查故障排除部分
- 查看Google任务API文档
- 打开一个包含详细错误信息的问题
致谢
内置: