一个模型上下文协议(MCP)服务器,使AI代理能够使用结构化的JSON格式将复杂任务分解成可管理的部分。
分而治之 MCP 服务器是临时笔记 MCP 服务器的进化版本,专门设计用于需要被分解成可管理部分的复杂任务。与简单的文本文件不同,该服务器使用结构化的JSON格式来存储任务信息、检查列表和上下文,使得在多个对话中跟踪进度和维护上下文变得更加容易。
将服务器添加到您的MCP配置中:
{
"mcpServers": {
"divide-and-conquer": {
"command": "npx",
"args": ["-y", "@landicefu/divide-and-conquer-mcp-server"],
"disabled": false
}
}
}
在您的对话中开始使用它:
// 初始化一个新任务
await use_mcp_tool({
server_name: "divide-and-conquer",
tool_name: "initialize_task",
arguments: {
task_description: "重构认证系统",
context_for_all_tasks: "当前系统使用基于会话的认证。"
}
});
// 添加检查列表项
await use_mcp_tool({
server_name: "divide-and-conquer",
tool_name: "add_checklist_item",
arguments: {
task: "分析当前认证流程",
detailed_description: "审查现有的认证代码。",
context_and_plan: "查看src/auth/*文件。当前实现使用express-session与MongoDB存储。"
}
});
要通过Smithery自动安装Divide and Conquer Server for Claude Desktop:
npx -y @smithery/cli install @landicefu/divide-and-conquer-mcp-server --client claude
将服务器添加到您的MCP配置中:
{
"mcpServers": {
"divide-and-conquer": {
"command": "npx",
"args": ["-y", "@landicefu/divide-and-conquer-mcp-server"],
"disabled": false
}
}
}
克隆仓库:
git clone https://github.com/landicefu/divide-and-conquer-mcp-server.git
cd divide-and-conquer-mcp-server
安装依赖:
npm install
构建服务器:
npm run build
将服务器添加到您的MCP配置中:
{
"mcpServers": {
"divide-and-conquer": {
"command": "node",
"args": ["/path/to/divide-and-conquer-mcp-server/build/index.js"],
"disabled": false
}
}
}
分而治之 MCP 服务器提供以下工具:
initialize_task创建一个具有指定描述的新任务,并可选地初始化检查列表项。
update_task_description更新主要任务描述。
update_context更新所有任务的上下文信息。
add_checklist_item向检查列表添加一个新的项目。
update_checklist_item更新现有的检查列表项。
mark_task_done标记检查列表项为已完成。
mark_task_undone标记检查列表项为未完成。
remove_checklist_item移除检查列表项。
reorder_checklist_item移动检查列表项到新的位置。
add_note向任务添加备注。
add_resource向任务添加资源。
update_metadata更新任务元数据。
clear_task清除当前任务数据。
get_checklist_summary返回带有完成状态的检查列表摘要。上下文信息有意排除在摘要之外,以节省上下文窗口空间。
get_current_task_details检索当前任务(第一个未完成的任务)的详细信息(包括全部上下文),以及所有其他任务的有限字段。对于当前任务,包含所有字段包括context_and_plan;对于其他任务,仅包含任务、详细描述和完成状态(不包括context_and_plan)。这是处理任务时推荐使用的工具。
await use_mcp_tool({
server_name: "divide-and-conquer",
tool_name: "initialize_task",
arguments: {
task_description: "重构认证系统以使用JWT令牌并提高安全性",
context_for_all_tasks: "当前系统使用基于会话的认证和cookie。我们需要迁移到JWT以获得更好的可扩展性和安全性。",
initial_checklist: [
{
task: "分析当前认证流程",
detailed_description: "审查现有认证代码以了解当前流程。",
context_and_plan: "查看src/auth/*文件。当前实现使用express-session与MongoDB存储。特别注意会话过期处理。"
},
{
task: "设计JWT实现",
detailed_description: "创建一份设计文档,概述如何实现JWT。",
context_and_plan: "考虑令牌结构、存储和刷新机制。研究Node.js应用程序中JWT实现的最佳实践。参考安全要求文档在docs/security.md。"
}
],
metadata: {
tags: ["安全", "重构", "认证"],
priority: "高",
estimated_completion_time: "两周"
}
}
});
const summary = await use_mcp_tool({
server_name: "divide-and-conquer",
tool_name: "get_checklist_summary",
arguments: {
include_descriptions: true
}
});
// 结果包含带有完成状态的检查列表的格式化摘要(上下文被排除以节省空间)
const taskDetails = await use_mcp_tool({
server_name: "divide-and-conquer",
tool_name: "get_current_task_details",
arguments: {}
});
// 结果包含:
// - ultimate_goal: 整个任务的最终目标(任务描述)
// - tasks: 所有任务的数组,其中当前任务(第一个未完成)包含所有字段包括context_and_plan,
// 而其他任务只有有限字段(任务、详细描述、完成状态)没有context_and_plan
// - current_task_index: 当前任务(第一个未完成)的索引
// - 其他任务元数据、备注、资源等
在处理复杂的软件开发任务时,AI代理经常面临上下文窗口限制,这使得在一个对话中完成所有步骤变得困难。分而治之 MCP 服务器允许代理:
对于项目规划和管理任务,服务器可以:
在进行研究和分析时,代理可以:
服务器使用以下JSON结构来存储任务信息:
{
"task_description": "关于整个任务的中等详细描述。我们希望实现的最终目标。",
"checklist": [
{
"done": false,
"task": "任务的短而全面的名字",
"detailed_description": "关于我们要通过此任务实现的目标的较长描述",
"context_and_plan": "相关的信息、代理应阅读的文件以及其他任务的更多细节,以及此任务的详细计划。这通常是最长的字符串。"
}
],
"context_for_all_tasks": "检查列表中所有任务都应包含的信息。",
"metadata": {
"created_at": "ISO时间戳",
"updated_at": "ISO时间戳",
"progress": {
"completed": 0,
"total": 1,
"percentage": 0
},
"tags": ["标签1", "标签2"],
"priority": "高|中|低",
"estimated_completion_time": "ISO时间戳或持续时间"
},
"notes": [
{
"timestamp": "ISO时间戳",
"content": "关于整体任务的附加备注或观察"
}
],
"resources": [
{
"name": "资源名称",
"url": "URL或文件路径",
"description": "资源描述"
}
]
}
默认情况下,分而治之 MCP 服务器将任务数据存储在以下位置:
~/.mcp_config/divide_and_conquer.json(展开为/Users/用户名/.mcp_config/divide_and_conquer.json)C:\Users\用户名\.mcp_config\divide_and_conquer.json当您首次初始化任务时,此文件会自动创建。如果您尝试读取任务数据时文件不存在,服务器将返回空的任务结构并在下次写入时创建文件。
服务器处理以下情况:
欢迎贡献!请随时提交Pull Request。
本项目根据MIT许可证发布 - 查看LICENSE文件获取详细信息。