任务管理服务器

一个基于模型上下文协议(MCP)的任务管理服务器,为LLM客户端提供结构化的任务列表管理API。

  • by P-Faust
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 p-faust/awesome-todo-mcp-server

使用说明

很棒的ToDo MCP服务器

这个项目是一个基于模型上下文协议(MCP)的简单但强大的待办事项列表服务器。它充当LLM客户端(比如Gemini或Claude Code/DDesktop)的后端,为他们提供一个干净、定义良好的API来读取和更新持久任务列表。

完全披露:我完全是yolo vibe编写这个代码来戳MCP服务器,看看发生了什么。不知何故,在咖啡、好奇心和一些“编译、发布”的时刻之间,它变成了我真正喜欢的东西——所以我分享了它。如果你发现任何过于热情的变量名,只要知道它们是氛围的一部分。 😄

享受,欢迎公关(尤其是那些将“氛围”转化为“设计”的公关)。

服务器是使用Python构建的 fastmcp 库并管理其依赖关系 uv它可以直接运行,也可以作为Docker容器运行。

特性

服务器公开了一组用于管理ToDo列表的工具和资源,该列表存储在JSON文件中。

  • 列出任务:以结构化格式检索所有任务。
  • 添加任务:创建一个具有标题、描述、截止日期和优先级的新任务。
  • 解释任务:获取任务上下文和重要性的可读摘要。
  • 分解任务:将复杂任务分解为更小、可管理的子任务。
  • 优先处理任务:根据艾森豪威尔矩阵(重要性和紧迫性)对任务进行排序。
  • 推荐任务:获取当天要处理的最相关任务的列表。
  • 标记为已完成:将任务标记为已完成。

入门指南

先决条件

  • Python 3.13+
  • 紫外线 (一个快速的Python包安装程序和解析器)

安装

  1. 克隆存储库:

    git clone <repository-url>
    cd awesome_todo_mcp_server
    
  2. 创建虚拟环境并安装依赖项: uv 将在当前目录中自动创建一个虚拟环境,并安装中列出的所有软件包 pyproject.toml.

    uv sync --locked
    

运行服务器

安装依赖项后,您可以启动服务器:

uv run awesome-todo-server.py

服务器将于启动 http://0.0.0.0:3000 默认情况下。您可以通过设置来配置端口 SERVER_PORT 环境变量。

Docker部署

该项目包括 Dockerfile 和 docker-compose.yml 便于容器化和部署。

构建Docker镜像

直接从以下内容构建图像 Dockerfile:

docker build -t awesome-todo-mcp .

使用Docker Compose运行

这 docker-compose.yml 该文件简化了在容器中运行服务器和管理数据持久性的过程。

  1. 配置卷: 在开始之前,您需要编辑 docker-compose.yml 文件,为待办事项列表数据指定主机路径。替换 path/to/your/todo/json 使用本地计算机上要存储的实际路径 todos.json 文件。

    services:
      awesome-todo-mcp:
        build: .
        environment:
          - SERVER_PORT=3000 # Port used by Server inside container
        ports:
          - "3000:3000" # Hostport:SERVER_PORT
        volumes:
          - /your/local/path:/data # <-- CHANGE THIS
    
  2. 启动容器:

    docker-compose up -d
    

这将以分离模式启动服务(如果映像不存在,则首先构建映像)。API默认情况下将在 http://localhost:3000。任务数据保存在您映射到的目录中的主机上 /data (那就是 todos.json 写)。

代码更改后的重建:因为应用程序代码已烘焙到映像中(请参见 COPY awesome-todo-server.py 在 Dockerfile),在重新开始之前,每当代码或依赖关系发生变化时,您都必须重建映像:

docker-compose up --build -d
# or
docker-compose build && docker-compose up -d

如果更改内部服务器端口,请调整 SERVER_PORT 以及相应的端口映射 docker-compose.yml。只要绑定到的主机路径不受容器重启的影响,数据持久性就不会受到影响 /data 保持不变。

与Gemini CLI连接

要将Gemini CLI连接到正在运行的ToDo服务器,您需要将服务器配置添加到 ~/.gemini/settings.json 文件。在内部添加以下块 mcpServers 对象:

"awesome-todo-mcp": {
  "httpUrl": "http://127.0.0.1:3000/mcp/"
}

你的 mcpServers 配置应该看起来像这样(您可能还列出了其他服务器):

{
  "mcpServers": {
    "awesome-todo-mcp": {
      "httpUrl": "http://127.0.0.1:3000/mcp/"
    }
  }
}

保存更改后,您可以通过Gemini CLI与待办事项列表进行交互。