任务管理MCP服务器

一个为Google Tasks设计的MCP服务器,提供任务列表管理、任务操作和工作流工具,支持通过LLM管理任务。

  • by omshejul
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 omshejul/google-task-mcp

使用说明

谷歌任务MCP服务器

用于Google Tasks的全面模型上下文协议(MCP)服务器,使LLM能够通过设计良好、面向工作流的工具管理任务和任务列表。

特性

此MCP服务器为Google任务管理提供了面向工作流的智能工具:

任务列表管理

  • 创建、更新、删除和列出 任务列表
  • 将任务组织到项目和类别中

任务操作

  • 创建任务 带有标题、注释、截止日期和层次结构(子任务)
  • 列出任务 具有强大的过滤功能(日期范围、状态、分页)
  • 更新任务 -修改标题、注释、状态、截止日期
  • 删除任务 永久地
  • 移动任务 职位与父母之间
  • 清除已完成的任务 批量

工作流工具

  • 快速添加 -自然语言任务创建
  • 批量创建 -一次创建多个任务
  • 搜索任务 -在所有列表中查找任务
  • 任务摘要 -按时间范围(今天、明天、一周、逾期)获取有组织的视图

先决条件

  1. Python 3.8+ 安装在您的系统上
  2. 谷歌云项目 启用了任务API
  3. OAuth 2.0凭据 用于桌面应用程序

安装说明

第一步:谷歌云设置

  1. 首选 谷歌云控制台

  2. 创建新项目或选择现有项目

  3. 启用Google任务API:

    • 转到“API和服务”>“库”
    • 搜索“任务API”
    • 点击“启用”
  4. 创建OAuth 2.0凭据:

    • 转到“API和服务”>“凭据”
    • 点击“创建凭据”>“OAuth客户端ID”
    • 选择“桌面应用程序”作为应用程序类型
    • 给它起个名字(例如,“谷歌任务MCP”)
    • 下载凭据JSON文件
  5. 创建配置目录:

    mkdir -p ~/.google_tasks_mcp
    
  6. 将下载的凭据文件另存为:

    ~/.google_tasks_mcp/credentials.json
    

步骤2:安装依赖项

pip install -r requirements.txt

步骤3:首次运行和身份验证

首次运行服务器进行身份验证:

python google_tasks_mcp.py

这将:

  1. 打开浏览器窗口进行谷歌身份验证
  2. 请您授权该应用程序
  3. 保存身份验证令牌以备将来使用

配置

适用于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

使用示例

日常计划工作流程

  1. “获取我今天的任务摘要”
  2. “显示过期任务”
  3. “创建明天到期的任务‘审查季度报告’”
  4. “将任务[ID]标记为已完成”

项目设置工作流

  1. “创建一个名为“网站重新设计”的任务列表”
  2. “批量创建任务:[‘设计模型’、‘获取客户反馈’、‘实施更改’、‘测试’、‘部署’]”
  3. “为所有任务设置截止日期2024-02-15”

任务搜索工作流

  1. “搜索包含“会议”的任务”
  2. “查找标题中带有“紧急”的所有任务”
  3. “显示上周完成的任务”

响应格式

服务器支持多种响应格式:

  • JSON:用于处理的原始API响应
  • 标记语言:为可读性而格式化
  • 简洁:信息最少,便于快速查看
  • 详细的:完整的任务信息,包括ID

错误处理

服务器提供清晰、可操作的错误消息:

  • 安装说明中的身份验证错误
  • 特定指导下的输入无效
  • API错误,建议修复
  • 适用时的限速信息

安全

  • OAuth 2.0令牌存储在本地 ~/.google_tasks_mcp/token.json
  • 凭据永远不会离开您的本地计算机
  • 令牌刷新是自动处理的
  • 仅限于访问Google任务

故障排除

身份验证问题

  • 确保credentials.json位于正确的位置
  • 删除token.json以重新进行身份验证
  • 检查任务API是否已在Google云控制台中启用

权限错误

  • 验证Google帐户是否可以访问Google任务
  • 检查OAuth同意屏幕是否已配置
  • 确保授权了正确的范围

连接问题

  • 验证互联网连接
  • 检查防火墙设置
  • 确保谷歌服务可访问

发展

添加新工具

  1. 定义用于输入验证的Pydantic模型
  2. 使用@mcp.tool装饰器实现工具功能
  3. 添加全面的文档字符串和错误处理
  4. 更新README文档

测试

在开发模式下运行服务器:

python google_tasks_mcp.py --debug

许可证

MIT许可证-有关详细信息,请参阅许可证文件

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 添加新功能的测试
  4. 提交拉取请求

支持

对于问题或疑问:

  1. 检查故障排除部分
  2. 查看Google任务API文档
  3. 打开一个包含详细错误信息的问题

致谢

内置: