TodoList MCP服务器
使用Spring Boot和Spring AI MCP(模型上下文协议)服务器构建的全面待办事项列表管理系统。该服务使AI助手能够通过单次和批量操作创建、管理和组织具有优先级和状态的任务。
⚠️ 已弃用: 此MCP服务器已弃用,将不再接收更新,请使用我们的新MCP服务器, 代理模式
🚀 特性
- 任务管理:创建、读取和删除具有唯一ID的任务
- 优先权制度:5级优先级系统(从最低到最高)
- 状态跟踪:3状态工作流(未完成→ 正在工作→ 已完成)
- 批量操作:用于管理多个任务的高效批处理操作
- MCP集成:通过Spring AI MCP与AI助手无缝集成
- 综合API:所有实体的完整CRUD操作
📋 先决条件
- Java 21 或更高
- 8.0级 或更高
- 弹簧靴3.5.7
- 春季AI 1.0.3
🛠️ 安装
克隆存储库
git clone https://github.com/Touchie771/TodoList.git
cd TodoList构建项目
./gradlew build运行应用程序
./gradlew bootRun应用程序将在默认的Spring Boot端口(8080)上启动,并注册为MCP服务器。
📖 用法
基本任务操作
// Add a single task
int taskId = todoList.addToTodoList("Complete project documentation");
// Add multiple tasks at once
int[] taskIds = todoList.addToTodoListBulk(
"Write unit tests",
"Review code changes",
"Update README"
);
// Get all tasks
Map allTasks = todoList.getTodoMap();优先级管理
// Set priority for a single task
todoList.addToPriorityList(taskId, TaskPriority.HIGH);
// Set priorities for multiple tasks
int[] taskIds = {1, 2, 3};
TaskPriority[] priorities = {TaskPriority.HIGHEST, TaskPriority.HIGH, TaskPriority.NORMAL};
todoList.addToPriorityListBulk(taskIds, priorities);
// Get all priorities
Map allPriorities = todoList.getPriorityMap();状态管理
// Mark task as being worked on
todoList.addToStateList(taskId, TaskState.WORKING_ON);
// Complete a task
todoList.addToStateList(taskId, TaskState.COMPLETED);
// Set states for multiple tasks
int[] taskIds = {1, 2, 3};
TaskState[] states = {TaskState.COMPLETED, TaskState.WORKING_ON, TaskState.NOT_COMPLETED};
todoList.addToStateListBulk(taskIds, states);
// Get all states
Map allStates = todoList.getStateMap();批量操作
// Remove multiple tasks
todoList.removeFromTodoListBulk(1, 2, 3);
// Remove multiple priorities
todoList.removeFromPriorityListBulk(1, 2, 3);
// Remove multiple states
todoList.removeFromStateListBulk(1, 2, 3);系统管理
// Clear all tasks (keeps priorities and states)
todoList.clearTodoList();
// Clear all priorities
todoList.clearPriorityList();
// Clear all states
todoList.clearStateList();
// Reset everything
todoList.reset();🎯 优先级
| 优先级 | 描述 | 用例 |
|---|---|---|
LOWEST | 最低优先级 | 可选任务,触手可及 |
LOW | 低优先级 | 不太紧急但重要 |
NORMAL | 默认优先级 | 标准任务 |
HIGH | 高优先级 | 重要任务,即将完成 |
HIGHEST | 最高优先级 | 紧急、关键任务 |
🔄 任务状态
| 状态 | 描述 | 何时使用 |
|---|---|---|
NOT_COMPLETED | 初始状态 | 新任务,未启动 |
WORKING_ON | 正在进行中 | 目前正在进行中 |
COMPLETED | 已完成 | 任务已成功完成 |
🔧 API 参考
任务操作
addToTodoList(String task)→intaddToTodoListBulk(String... tasks)→int[]removeFromTodoList(int taskId)→voidremoveFromTodoListBulk(int... taskIds)→void
优先运营
addToPriorityList(int taskId, TaskPriority priority)→voidaddToPriorityListBulk(int[] taskIds, TaskPriority[] priorities)→voidremoveFromPriorityList(int taskId)→voidremoveFromPriorityListBulk(int... taskIds)→void
州运营
addToStateList(int taskId, TaskState state)→voidaddToStateListBulk(int[] taskIds, TaskState[] states)→voidremoveFromStateList(int taskId)→voidremoveFromStateListBulk(int... taskIds)→void
系统运维
clearTodoList()→voidclearPriorityList()→voidclearStateList()→voidreset()→void
查询操作
getTodoMap()→MapgetPriorityMap()→MapgetStateMap()→Map
🧪 测试
运行测试套件:
./gradlew test跑步覆盖:
./gradlew test jacocoTestReport📁 项目结构
src/
├── main/
│ └── java/
│ └── me/touchie771/todoList/
│ ├── TodoList.java # Main service class
│ ├── TaskPriority.java # Priority enum
│ ├── TaskState.java # State enum
│ └── TodoListApplication.java # Spring Boot main class
└── test/
└── java/
└── me/touchie771/todoList/
└── TodoListTest.java # Unit tests🔒 错误处理
该服务包括全面的错误处理:
- 数组长度不匹配:
IllegalArgumentException用于阵列长度不匹配的批量操作 - 任务ID无效:对不存在的任务ID进行静默处理(删除操作)
- 空值:任务描述的标准Java空处理
🚀 性能注意事项
- 内存使用:O(n),其中n是任务数
- 时间复杂度:O(1)用于单次操作,O(k)用于批量操作(k=批量大小)
- 线程安全:基于HashMap的实现(考虑将ConcurrentHashMap用于生产环境)
🤝 贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'Add amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 打开拉取请求
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
👤 作者
Touchie771 - *初期工作* - Touchie771
🙏 致谢
- Spring Boot团队为优秀的框架
- Spring AI团队为MCP服务器提供支持
- Java社区寻求灵感和最佳实践
______________________________________________________________________
备注:该项目旨在通过MCP协议与人工智能助手合作。所有操作都作为可由兼容的AI系统调用的工具公开。
