很棒的ToDo MCP服务器
这个项目是一个基于模型上下文协议(MCP)的简单但强大的待办事项列表服务器。它充当LLM客户端(比如Gemini或Claude Code/DDesktop)的后端,为他们提供一个干净、定义良好的API来读取和更新持久任务列表。
完全披露:我完全是yolo vibe编写这个代码来戳MCP服务器,看看发生了什么。不知何故,在咖啡、好奇心和一些“编译、发布”的时刻之间,它变成了我真正喜欢的东西——所以我分享了它。如果你发现任何过于热情的变量名,只要知道它们是氛围的一部分。 😄
享受,欢迎公关(尤其是那些将“氛围”转化为“设计”的公关)。
服务器是使用Python构建的 fastmcp 库并管理其依赖关系 uv它可以直接运行,也可以作为Docker容器运行。
特性
服务器公开了一组用于管理ToDo列表的工具和资源,该列表存储在JSON文件中。
- 列出任务:以结构化格式检索所有任务。
- 添加任务:创建一个具有标题、描述、截止日期和优先级的新任务。
- 解释任务:获取任务上下文和重要性的可读摘要。
- 分解任务:将复杂任务分解为更小、可管理的子任务。
- 优先处理任务:根据艾森豪威尔矩阵(重要性和紧迫性)对任务进行排序。
- 推荐任务:获取当天要处理的最相关任务的列表。
- 标记为已完成:将任务标记为已完成。
入门指南
先决条件
- Python 3.13+
- 紫外线 (一个快速的Python包安装程序和解析器)
安装
- 克隆存储库:
git clone
cd awesome_todo_mcp_server- 创建虚拟环境并安装依赖项:
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 该文件简化了在容器中运行服务器和管理数据持久性的过程。
- 配置卷:
在开始之前,您需要编辑 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- 启动容器:
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与待办事项列表进行交互。
