MCPlanManager
Supports installation via curl script, enabling easy setup of the MCPlanManager environment.
Enables AI agents to work with GitHub repositories through MCP client configuration, supporting task management for GitHub-based workflows.
Generates context-aware prompts in Markdown format to assist with task execution.
Provides visualization capabilities for task dependencies using Mermaid graph code generation.
Uses Python as the runtime environment for the MCP server, with direct module execution support for tool integration.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCPlanManager visualize my current task dependencies in mermaid format"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCPlanManager - AI Agent 任务管理系统
一个简洁高效的任务管理器,专为 AI Agent 的长程任务执行而设计,支持MCP (Model Context Protocol) 标准,并同时支持 uvx 和 Docker 两种部署方式。
版本 1.2.0 更新亮点:
新增计划持久化工具:引入
dumpPlan和loadPlan工具,允许对任务计划进行完整的导出和恢复。优化工具文档:为使用 Pydantic 模型的工具(如
initializePlan,editDependencies)补充了参数结构描述,以改善部分客户端的兼容性。增强测试套件:添加了针对持久化功能的完整测试用例,并优化了测试运行流程。
🚀 部署与使用
我们提供两种推荐的部署方式,请根据您的需求选择。
方式一:使用 uvx (轻量级 & 快速启动)
uvx 允许您以一行命令轻松启动 MCP 服务,它会自动处理依赖管理和环境设置。
先决条件:安装 uv 如果您的系统中还没有
uv,请先执行以下命令安装:curl -LsSf https://astral.sh/uv/install.sh | sh配置您的AI客户端 在 Cursor、Continue.dev 等客户端中,使用以下配置即可自动下载并运行服务(通过标准输入输出进行通信):
{ "mcpServers": { "mcplanmanager": { "command": "uvx", "args": ["mcplanmanager"] } } }
方式二:使用 Docker (生产环境 & 隔离部署)
Docker 提供了最佳的环境一致性和隔离性,是生产环境部署的首选方案。服务将以 SSE (Server-Sent Events) 模式运行。
拉取或构建镜像 从 Docker Hub 拉取最新镜像:
docker pull donway19/mcplanmanager:latest或者在项目根目录本地构建:
docker-compose build运行容器 您可以通过
docker run或docker-compose来启动服务。使用
docker run:docker run -d --name mcplanmanager_service -p 8080:8080 donway19/mcplanmanager:latest使用
docker-compose(推荐): 项目根目录下的docker-compose.yml文件已为您配置好:services: mcplanmanager: build: . container_name: mcplanmanager_service ports: - "8080:8080" restart: unless-stopped然后运行
docker-compose up -d。配置您的AI客户端 使用以下配置通过 SSE 连接到 Docker 容器中运行的服务:
{ "mcpServers": { "mcplanmanager-docker": { "transport": "sse", "url": "http://localhost:8080/sse" } } }注意:如果部署在云服务器上,请将
localhost替换为服务器的公网 IP 或域名。
Related MCP server: TaskMateAI
🧪 运行测试
我们提供了一套完整的测试套件来保证代码质量。
启动服务 确保您的 MCP 服务正在运行(通过
uvx或Docker)。运行所有测试 在项目根目录执行以下命令:
# 推荐使用 SSE 模式测试 Docker 部署 python test/run_all_tests.py --mode sse # 或者使用 uvx 模式测试本地服务 # python test/run_all_tests.py --mode uvx该脚本会自动运行所有功能测试和边界情况测试,并输出详细报告。
🛠️ MCP 工具列表
本项目提供以下15个工具:
initializePlan: 初始化新的任务计划loadPlan: 从一个完整的计划对象加载并替换当前计划dumpPlan: 导出当前完整的计划数据为一个字典对象getCurrentTask: 获取当前正在执行的任务startNextTask: 开始下一个可执行的任务completeTask: 标记任务为完成状态failTask: 标记任务失败skipTask: 跳过指定任务addTask: 添加新任务到计划中getTaskList: 获取任务列表(支持状态过滤)getExecutableTaskList: 获取当前可执行的任务列表getPlanStatus: 获取整个计划的状态editDependencies: 修改任务间的依赖关系visualizeDependencies: 生成依赖关系可视化(支持ascii,tree,mermaid格式)generateContextPrompt: 生成上下文提示词
🧑💻 本地开发
如果您希望贡献代码或进行二次开发,请遵循以下步骤:
克隆仓库并设置环境
git clone https://github.com/donway19/MCPlanManager.git cd MCPlanManager uv venv source .venv/bin/activate uv pip install -e .在 Cursor 中进行本地调试 为了实现修改代码后实时生效的热重载调试,请在 Cursor 的
mcp.server.configFiles设置中指向项目中的examples/mcp_configs/local_development.json文件。该文件已为您配置好了本地开发所需的环境变量。启动 Cursor 后,您就可以在聊天窗口中使用
@mcplanmanager-local-dev来调用和测试您本地的最新代码了。
📄 许可证
本项目基于 MIT License - 详见 LICENSE 文件。
Available Tools
15 toolsaddTaskA
向当前计划中动态添加一个新任务。
Args: name (str): 新任务的名称,应确保唯一性。 dependencies (List[int]): 新任务所依赖的任务ID的整数列表 (从0开始)。 reasoning (str): 解释为何要添加此任务的字符串。 after_task_id (int, optional): 一个任务ID,新任务将被插入到该任务之后。如果省略,则添加到列表末尾。
Returns: ToolResponse[TaskOutput]: 包含新创建任务的响应对象。
Inputs: name (required), dependencies (required), reasoning (required), after_task_id.
completeTaskA
将指定ID的任务标记为 'completed' (已完成)。 这是解锁后续依赖任务的关键步骤。
Args: task_id (int): 需要标记为完成的任务的ID (从0开始)。 result (str): 描述任务完成结果或产出的字符串。
Inputs: task_id (required), result (required).
dumpPlanA
导出当前完整的计划数据为一个字典对象。 这个导出的对象可以被 loadPlan 工具用来恢复状态。
Returns: ToolResponse[dict]: 包含当前完整计划数据的响应对象。
Inputs: no named parameters.
editDependenciesA
以批量、事务性的方式编辑一个或多个任务的依赖关系。
此工具允许 'set' 或 'update' 操作,所有编辑将在应用前进行全面验证。 如果任何指令失败,整个操作将回滚。
Args: edits (List[DependencyEdit]): 一个包含编辑指令对象的列表,每个对象的结构如下: - task_id (int): 要修改的任务ID。 - action (Literal["set", "update"]): 要执行的操作。 - dependencies (Optional[List[int]]): 当 action 为 'set' 时,提供新的完整依赖ID列表。 - add (Optional[List[int]]): 当 action 为 'update' 时,提供要添加的依赖ID列表。 - remove (Optional[List[int]]): 当 action 为 'update' 时,提供要移除的依赖ID列表。
Inputs: edits (required).
failTaskB
将指定ID的任务标记为 'failed' (失败)。
Args: task_id (int): 需要标记为失败的任务的ID (从0开始)。 error_message (str): 描述任务失败原因的字符串。 should_retry (bool, optional): 是否应该重试该任务的标志。默认为 True。
Inputs: task_id (required), error_message (required), should_retry.
generateContextPromptB
生成一个详细的文本提示,总结计划的当前状态。 这个提示可以作为上下文提供给AI模型,以帮助其决定下一步行动。 内容包括:总体目标、当前任务、可执行任务列表等。
Inputs: no named parameters.
getCurrentTaskA
获取当前标记为 'in_progress' (正在进行中) 的任务详情。
Returns: ToolResponse[TaskOutput]: 包含当前任务详情的响应对象。
Inputs: no named parameters.
getExecutableTaskListB
获取当前所有依赖已满足且状态为 'pending' 的可执行任务列表。
Returns: ToolResponse[List[TaskOutput]]: 包含可执行任务列表的响应对象。
Inputs: no named parameters.
getPlanStatusB
获取整个计划的全面概览,包括元数据、进度、任务状态统计等。
Inputs: no named parameters.
getTaskListB
获取计划中所有任务的列表,可按状态进行过滤。
Args: status_filter (str, optional): 用于过滤任务的状态字符串。 可接受的值: 'pending', 'in_progress', 'completed', 'failed', 'skipped'。
Returns: ToolResponse[List[TaskOutput]]: 包含任务列表的响应对象。
Inputs: status_filter.
initializePlanA
初始化或完全替换一个新的任务计划。
Args: goal (str): 描述计划总体目标的字符串。 tasks (List[TaskInput]): 任务对象的列表。每个任务的结构如下: - name (str): 任务的名称,在一个计划中应唯一。 - dependencies (List[Union[str, int]]): 依赖的任务名称或ID列表。 - reasoning (str): 阐述为何需要此任务。
Inputs: goal (required), tasks (required).
loadPlanA
通过一个完整的计划对象加载或替换当前计划。 这个工具会直接覆盖内存中的整个计划,请谨慎使用。
Args: plan_data (dict): 一个包含完整计划数据的字典对象,通常由 dumpPlan 工具导出。 它应包含 'meta', 'state', 和 'tasks' 三个顶级键。
Inputs: plan_data (required).
skipTaskA
将指定ID的任务标记为 'skipped' (已跳过)。 被跳过的任务在依赖解析中被视为“已完成”,允许后续任务继续。
Args: task_id (int): 需要跳过的任务的ID (从0开始)。 reason (str): 解释为何跳过此任务的字符串。
Inputs: task_id (required), reason (required).
startNextTaskA
自动查找下一个可执行的任务(所有依赖均已完成)并开始执行。 这会将任务状态更新为 'in_progress'。这是推进计划的核心方法。
Returns: ToolResponse[TaskOutput]: 包含已启动任务的响应对象。
Inputs: no named parameters.
visualizeDependenciesB
生成当前任务依赖关系的可视化图。
Args: format (str, optional): 输出的格式。可接受的值为 'mermaid' (生成流程图代码), 'tree' (生成树状图), 或 'ascii' (生成纯文本格式的列表)。 默认为 'ascii'。
Returns: str: 包含所选格式可视化内容的字符串。
Inputs: format.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 15 tools
Each tool has a distinct purpose with clear boundaries. For example, addTask, completeTask, failTask, and skipTask handle different task states; getCurrentTask, getExecutableTaskList, getTaskList, and getPlanStatus provide different views of plan data; and initializePlan, dumpPlan, and loadPlan manage plan lifecycle. No tools overlap in functionality.
All tool names follow a consistent verb_noun pattern with snake_case, such as addTask, completeTask, dumpPlan, editDependencies, failTask, generateContextPrompt, getCurrentTask, getExecutableTaskList, getPlanStatus, getTaskList, initializePlan, loadPlan, skipTask, startNextTask, and visualizeDependencies. This uniformity makes the set predictable and easy to understand.
With 15 tools, the server is well-scoped for managing task plans, covering all essential operations like task addition, state changes, dependency management, plan loading/saving, status queries, and visualization. Each tool serves a specific role without redundancy, making the count appropriate for the domain.
The tool set provides complete coverage for task plan management, including CRUD operations (addTask, initializePlan, loadPlan, dumpPlan), task lifecycle handling (completeTask, failTask, skipTask, startNextTask), dependency management (editDependencies, visualizeDependencies), and comprehensive querying (getCurrentTask, getExecutableTaskList, getTaskList, getPlanStatus, generateContextPrompt). No obvious gaps exist; agents can fully interact with plans from creation to completion.
Maintenance
Related MCP Connectors
Task management your AI agents can actually run. One line becomes a context-ready task over MCP.
Task management for teams building with AI agents. Agents claim tasks and report progress.
Task & board management for AI agents + humans. Kanban, comments, digests via MCP.
Task manager for AI agents. Orchestrate agents to achieve large goals in unified control plane.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that provides persistent task management capabilities for AI assistants, allowing them to create, update, and track tasks beyond their usual context limitations.5-
- AlicenseNot gradedqualityDmaintenanceAI-driven task management application that operates via MCP, enabling autonomous creation, organization, and execution of tasks with support for subtasks, priorities, and progress tracking.2MIT
- AlicenseNot gradedqualityDmaintenanceAn intelligent task management system that provides structured workflows for AI Agents to plan, decompose, and execute complex programming tasks. It features a dedicated research mode for technical investigations and a task memory function to optimize workflows and avoid redundant coding work.1MIT
- AlicenseBqualityFmaintenanceA Model Context Protocol server for AI agents to manage tasks and track progress across projects, with features like project isolation, search, and reporting.1110 npm1MIT