任务管理MCP服务

一个基于FastAPI的MCP服务器,提供Google Tasks集成功能,用于AI助手的任务列表和任务管理。

  • by Kyuraa
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Kyuraa/google_tasks_mcp

使用说明

谷歌任务MCP服务器

一个模型上下文协议(MCP)服务器,为人工智能助手提供谷歌任务集成。MCP服务器是使用FastAPI后端创建的 FastMCP.from_fastapi(),从FastAPI路由自动生成MCP工具。

建筑

AI Assistant → MCP Server (from FastAPI) → Google Tasks API

特性

任务列表管理

  • 列出所有任务列表
  • 创建新任务列表
  • 获取任务列表详细信息
  • 更新任务列表标题
  • 删除任务列表

任务管理

  • 在任务列表中列出任务
  • 创建新任务
  • 获取任务详细信息
  • 更新任务(标题、注释、截止日期、状态)
  • 删除任务
  • 将任务标记为已完成/未完成

设置

1.Google API证书

创建一个 tokens.json 文件在 fastapi_backend/ 包含OAuth令牌的目录:

{
  "refresh_token": "your_refresh_token",
  "client_id": "your_client_id",
  "client_secret": "your_client_secret",
  "token_uri": "https://oauth2.googleapis.com/token"
}

系统将自动使用这些令牌通过Google Tasks API进行身份验证。无需额外 credentials.json 文件是必需的。

2.安装依赖项

从根目录安装所有依赖项:

pip install -r requirements.txt

3.运行MCP服务器

MCP服务器现在包括FastAPI后端,因此您只需要运行一个服务:

cd mcp_server
python server.py

第一次运行此程序时,它将打开一个浏览器进行Google OAuth身份验证。完成身份验证流程,令牌将被保存。

备注:FastAPI后端现在嵌入MCP服务器中,可在以下网址访问 /api/* 端点。

配置

环境变量

您可以配置以下环境变量:

  • FASTAPI_URL:FastAPI后端的URL(默认值: http://localhost:8000)
  • GOOGLE_CREDENTIALS_PATH:Google credentials.json文件的路径(默认: credentials.json)
  • GOOGLE_TOKEN_PATH:保存Google OAuth令牌的路径(默认值: tokens.json)

MCP配置

将以下内容添加到MCP设置文件中(例如。, cline_mcp_settings.json):

{
  "mcpServers": {
    "google-tasks": {
      "command": "python",
      "args": ["/path/to/google_tasks_mcp/mcp_server/server.py"],
      "env": {
        "FASTAPI_URL": "http://localhost:8000",
        "GOOGLE_TOKEN_PATH": "/path/to/google_tasks_mcp/fastapi_backend/tokens.json"
      }
    }
  }
}

重要:更新配置中的路径以匹配您的实际文件位置。这 GOOGLE_TOKEN_PATH 应该指向你的 tokens.json 文件。

可用工具

任务列表工具

  • list_task_lists() -列出所有任务列表
  • create_task_list(title) -创建新任务列表
  • get_task_list(tasklist_id) -获取任务列表详细信息
  • update_task_list(tasklist_id, title) -更新任务列表标题
  • delete_task_list(tasklist_id) -删除任务列表

任务工具

  • list_tasks(tasklist_id) -在任务列表中列出任务
  • create_task(tasklist_id, title, notes?, due?) -创建新任务
  • get_task(tasklist_id, task_id) -获取任务详细信息
  • update_task(tasklist_id, task_id, title?, notes?, due?, status?) -更新任务
  • delete_task(tasklist_id, task_id) -删除任务
  • complete_task(tasklist_id, task_id) -将任务标记为已完成
  • uncomplete_task(tasklist_id, task_id) -将任务标记为需要采取行动

API终点

FastAPI后端提供以下REST端点:

任务列表

  • GET /tasklists -列出所有任务列表
  • POST /tasklists -创建任务列表
  • GET /tasklists/{id} -获取任务列表详细信息
  • PUT /tasklists/{id} -更新任务列表
  • DELETE /tasklists/{id} -删除任务列表

任务

  • GET /tasklists/{list_id}/tasks -在任务列表中列出任务
  • POST /tasklists/{list_id}/tasks -创建任务
  • GET /tasklists/{list_id}/tasks/{task_id} -获取任务详细信息
  • PUT /tasklists/{list_id}/tasks/{task_id} -更新任务
  • DELETE /tasklists/{list_id}/tasks/{task_id} -删除任务

发展

测试FastAPI后端

cd fastapi_backend
curl http://localhost:8000/health

测试MCP服务器

您可以使用MCP检查器或将其与您的AI助手集成来测试MCP服务器。

故障排除

身份验证问题

  • 确保 tokens.json 包含具有refresh_token、client_id和client_secret的有效OAuth凭据
  • 删除或更新 tokens.json 如果令牌无效或过期
  • 检查Google任务API是否已在您的Google云项目中启用

连接问题

  • 确保FastAPI后端在预期端口上运行
  • 检查 FASTAPI_URL MCP服务器中的环境变量
  • 验证MCP服务器和FastAPI后端之间的网络连接

API错误

  • 检查FastAPI日志以获取详细的错误消息
  • 确保您的Google API配额未被超过
  • 验证任务列表和任务ID是否有效

许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。