Planer MCP服务器
使用FastMCP构建的智能规划和任务管理MCP服务器,提供针对软件工程项目优化的复杂规划工具。
特性
- 🤖 LLM驱动的任务生成:使用LLM采样生成上下文感知的高质量任务分解
- 💬 互动启发:提出澄清问题,以确保充分理解要求
- ✅ 计划验证:保存前预览并确认计划,具有再生选项
- 📊 进度报告:计划创建期间的实时进度更新
- 🎯 专注工程:优化了编码、调试、系统设计和功能开发的提示
- ⏱️ 自动时间跟踪:通过计划/任务创建和完成时间戳跟踪实际时间
- 📄 分页:高效处理大型计划列表(每页30个计划)
- 🔍 智能过滤:默认情况下隐藏已完成的计划,专注于正在进行的工作
- 💾 持久化存储:SQLite数据库,用于可靠的数据持久性
- 🏷️ 基于类别的规划:基于任务类别的不同规划策略
运作原理
当您创建新计划时,服务器会使用智能的、LLM驱动的工作流:
- 🧠 LLM分析需求 (10%进度)
- LLM评估是否有足够的信息 - 确定缺少什么(如果有的话) - 只有在真正需要时才要求澄清 - 用户不会受到不必要的困扰!
- 💬 智慧引智 (有条件)
- 如果 LLM需要更多信息→ 提出具体、有针对性的问题 - 否则 → 直接进入任务生成 - 示例:“构建REST API”可能不需要提问 - 示例:“迁移系统”可能需要澄清技术栈
- 🤖 使用LLM生成任务 (30-60%的进展)
- 使用LLM采样创建上下文感知任务 - 应用特定类别的规划策略 - 考虑依赖关系和优先级 - 生成详细的任务描述
- 👀 显示预览并确认 (80%的进展)
- 显示建议的计划 - 您可以:接受、请求修改或取消
- 🔁 必要时重新生成
- 如果您请求更改,LLM将根据您的反馈重新生成 - 迭代改进,直到您满意为止
- 💾 保存到数据库 (95-100%进度)
- 存储经过验证的高质量计划
可用工具
new_plan ⭐ 通过智能LLM驱动的工作流进行增强
创建具有智能任务分解的新计划。LLM决定何时要求澄清——用户只有在必要时才会被打扰!
智能工作流:
- LLM分析 您的请求(进度10%)
- 有条件地引发 仅当LLM需要更多信息时
- 生成任务 使用LLM采样(30-60%进度)
- 显示预览 并要求确认(80%进度)
- 使再生 如果您要求修改
- 保存 已验证的计划(95-100%进度)
参数:
title:计划标题(最多200个字符)goal:主要目标或目的(最多500个字符)category:其中之一:项目、个人、学习、商业、创意、研究、维护description(可选):详细说明additional_context(可选):用于更好规划的附加上下文
主要特点:
- 🧠 智慧引智:LLM决定何时需要提问
- 🎯 无不必要的中断:只有在真正需要的时候才问
- 📊 进度报告:实时更新(10%、30%、60%、80%、95%、100%)
- 📝 综合录井:信息、警告、错误、调试消息
- 🤖 LLM供电:高质量、情境感知的任务生成
- 🔁 反馈循环:请求修改并重新生成
- 🛡️ 可靠的:如果LLM失败,则返回模板
list_plans
列出具有分页和过滤功能的计划。
参数:
include_completed(可选,默认值:False):包括已完成的计划page(可选,默认值:1):页码(每页30个计划)
get_plan
检索特定计划的详细信息。
参数:
plan_id:要检索的计划的ID
update_task_status
更新计划中特定任务的状态。
参数:
plan_id:包含任务的计划的IDtask_ids:要更新的任务ID列表status:其中之一:待定、正在进行、已完成、已删除notes(可选):关于状态更改的注释
update_plan
通过添加新任务或更改计划信息来更新现有计划。
参数:
plan_id:要更新的计划的IDtitle(可选):新标题description(可选):新描述new_tasks(可选):要添加的新任务标题列表additional_context(可选):更新的其他上下文
delete_plan
从数据库中永久删除计划及其所有任务。
参数:
plan_id:要删除的计划的ID
安装
用户(使用uvx)
使用Planer MCP的最简单方法是 uvx:
uvx planer-mcp或者将其添加到MCP配置中(例如,在Cursor中):
{
"mcpServers": {
"planer": {
"command": "uvx",
"args": ["planer-mcp"]
}
}
}为了发展
cd planer-mcp
uv venv
uv pip install -e ".[dev]"用法
使用uvx运行(推荐给用户)
uvx planer-mcp使用Python模块运行(开发)
uv run python -m src.planer_mcp.server使用main.py运行(开发)
python main.py
# or
uv run python main.py在游标中配置
对于用户:
{
"mcpServers": {
"planer": {
"command": "uvx",
"args": ["planer-mcp"]
}
}
}发展:
{
"mcpServers": {
"planer": {
"command": "uv",
"args": [
"--directory",
"C:/Projects/mcp/planer-mcp",
"run",
"python",
"-m",
"src.planer_mcp.server"
]
}
}
}改变 --directory 路径以匹配您的项目位置。
发展
运行测试
make test # Run tests
make format # Format code
make lint # Lint code
make type-check # Type checking
make dev-check # Run all checks (format, type-check, test)发布到PyPI
- 更新版本
pyproject.toml - 更新
authors和urls在pyproject.toml - 提交所有更改并创建git标签
- 构建和发布:
make build # Build package
make publish-test # Publish to TestPyPI (for testing)
make publish # Publish to PyPI或者手动使用紫外线:
uv build
uv publish建筑
src/planer_mcp/server.py-FastMCP服务器实施src/planer_mcp/models/schemas.py-Pydantic数据模型src/planer_mcp/database/models.py-SQLAlchemy ORM模型src/planer_mcp/database/manager.py-使用查询生成器进行数据库操作src/planer_mcp/planning/engine.py-规划逻辑src/planer_mcp/planning/formatter.py-输出格式src/planer_mcp/prompts/templates.py-特定类别的提示
分类
项目(软件工程)
- 需求分析和规范
- 系统架构和设计
- 数据库模式和数据建模
- API设计与实现
- 前端/后端开发
- 测试策略和实施
- CI/CD设置和部署
- 代码审查和质量门
- 性能优化
- 文件和安全
学习(技能发展)
- 渐进式技能培养
- 动手编码练习
- 实际项目开发
- 代码审查实践
- 测试和调试
- 性能优化
- 体系结构模式
业务(产品开发)
- 市场调研和验证
- MVP特征定义
- 技术架构
- 监控和分析
- 用户反馈集成
- 迭代开发
创意(设计)
- 用户研究和人物角色
- 设计系统和组件
- 线框和原型制作
- 可访问性考虑因素
- 设计开发交接
研究(调查)
- 问题陈述定义
- 技术评估
- 概念验证开发
- 性能基准测试
- 记录调查结果
维护(重构)
- 代码审计和技术债务
- 依赖关系更新和补丁
- 测试覆盖率提高
- 文档更新
- 性能评测
示例用法
制定计划(LLM驱动的智能启发式)
示例1:足够的信息(无引用)
User: Create plan for "Build REST API with FastAPI"
Server: [Progress 10%] Analyzing requirements...
Server: [Info] Sufficient information provided, generating task list...
Server: [Progress 30%] Generating tasks with LLM...
Server: [Progress 60%] Parsing generated tasks...
Server: [Info] Generated 12 tasks from LLM
Server: [Progress 80%] Validating plan...
[Plan Preview shows 12 detailed tasks]
Server: Does this plan look correct?
- Type 'yes' to save
- Type modifications to regenerate
- Type 'cancel' to abort
User: yes
Server: [Progress 100%] Plan created successfully!示例2:法学硕士需要澄清(聪明的启发)
User: Create plan for "Migrate legacy system to cloud"
Server: [Progress 10%] Analyzing requirements...
Server: [Info] LLM needs clarification: Critical tech stack info missing
To create an effective plan for 'Migrate legacy system to cloud', please provide:
1. What is the current technology stack?
2. Which cloud provider (AWS/Azure/GCP)?
3. What's the current deployment architecture?
4. What's the timeline/phased approach preference?
User: Currently on-premise Java monolith with MySQL. Moving to AWS.
3-month timeline, want microservices architecture.
Server: [Info] Additional context received, generating optimized task list...
Server: [Progress 30%] Generating tasks with LLM...
Server: [Info] Generated 18 tasks from LLM
...示例3:请求修改
[After plan preview]
User: Add more testing tasks and include performance benchmarks
Server: [Info] Regenerating plan with user feedback...
Server: [Info] Regenerated plan with 16 tasks
Server: [Progress 95%] Saving plan to database...列出活动计划
# Only active (incomplete) plans
list_plans()
# Include completed plans
list_plans(include_completed=True)
# Pagination
list_plans(page=2)管理任务
# Mark tasks complete
update_task_status(plan_id=1, task_ids=[1, 2, 3], status="completed")
# Set tasks in progress
update_task_status(plan_id=1, task_ids=[4, 5], status="in_progress", notes="Started backend work")最佳实践
- 全部
__init__.py文件仅包含导入/导出 - 代码位于正确命名的文件中(schemas.py、manager.py等)
- 用于所有数据库操作的SQLAlchemy查询生成器
- 全程键入提示
- FastMCP用于干净、现代的MCP服务器实施
测试
uv run pytest tests/ -v所有12项测试均通过,核心功能覆盖率为100%。
