开发安全系统-MCP服务器
MCP(模型控制协议)服务器,为LLM开发工作流实现会话连续性和沙盒安全。
🎯 核心目标
创建一个MCP服务器,为人工智能辅助开发提供“精确地从你停止的地方继续”+“永不中断主应用程序”功能。
✨ 主要特点
- 会话状态持久性:保存并恢复完整的开发会话上下文
- 沙盒管理:用于安全实验的隔离开发环境
- 活动检测:基于文件的监控,建议何时保存会话状态
- 安全同步:受控地将批准的变更复制回主项目
🚀 快速开始
安装
# Clone the repository
git clone
cd dev-safety-mcp
# Install dependencies
pip install -r requirements.txt
# Install the package
pip install -e .基本用法
- 创建安全开发沙箱:
# Through MCP client
await create_sandbox("F:/my-project")- 休息时保存会话状态:
await save_session_state(
operation="Add payment feature",
current_step="Created component files",
next_steps=["Add API endpoints", "Test integration"],
sandbox_path="F:/my-project-sandbox-session-20250604-143022",
context={"feature": "payment", "priority": "high"}
)- 从你停止的地方继续:
session = await load_session_state()
print(session['continuation_prompt'])- 将批准的更改同步到主项目:
await sync_to_main(
sandbox_path="F:/my-project-sandbox-session-20250604-143022",
main_path="F:/my-project",
files=["src/components/Payment.jsx", "src/api/payment.js"]
)🛠️ 可用的MCP工具
create_sandbox
为安全开发创建项目的独立副本。
参数:
project_path(str):通往主项目的路径sandbox_name(str,可选):沙箱的自定义名称
save_session_state
保存完整的会话上下文以供以后继续。
参数:
operation(str):描述你正在做什么current_step(str):刚刚完成了什么next_steps(List\[str\]):接下来需要做什么sandbox_path(str):正在使用的沙盒路径context(Dict):附加上下文信息
load_session_state
加载最新会话状态并提供继续提示。
check_activity
监控沙盒中的文件活动,以建议何时保存状态。
参数:
sandbox_path(str):监视路径minutes(int,可选):要检查的时间窗口(默认值:10)
sync_to_main
将批准的更改从沙箱安全地复制到主项目。
参数:
sandbox_path(str):源沙盒路径main_path(str):目标主项目路径files(List\[str\],可选):要同步的特定文件(默认值:所有更改的文件)
commit_progress
手动提交当前进度以防止丢失工作。
参数:
sandbox_path(str):沙盒路径message(str,可选):提交描述进度的消息
check_mcp_status
新:检查MCP服务器监控系统的运行状况和状态。
退货:
- 服务器状态和心跳信息
- 进程ID和启动时间
- 如果服务器出现故障,则发出健康警告
📁 项目结构
dev-safety-mcp/
├── README.md
├── requirements.txt
├── setup.py
├── config/
│ └── project_types.json
├── src/
│ ├── __init__.py
│ ├── mcp_server.py # Main MCP server
│ ├── sandbox_manager.py # Sandbox creation/management
│ ├── session_manager.py # Session state persistence
│ ├── activity_monitor.py # File-based activity detection
│ └── utils.py # Helper functions
├── tests/
│ ├── test_basic_functionality.py
│ └── test_with_real_project.py
└── examples/
└── basic_workflow_example.py
🔧 开发工作流程
- 开始开发 -创建沙盒
create_sandbox - 安全工作 -所有更改都发生在隔离的沙盒中
- 保存进度 -使用
save_session_state休息时 - 无缝继续 -加载会话状态,以准确地从您停止的地方继续
- 部署更改 -使用
sync_to_main将已批准的更改复制回来
🛡️ 安全功能
- 沙箱隔离:开发过程中从未接触过主要项目
- 自动备份:在任何同步操作之前创建的备份
- 活动监控:建议在不活动期间保存状态
- 版本控制:沙盒中用于更改跟踪的Git分支
- 服务器运行状况监控:使用心跳文件进行内置状态监控
- 外部状态检查:用于验证MCP服务器运行状况的独立脚本
📊 服务器监控
开发安全MCP服务器包括内置的监控功能,用于检测服务器何时停机,确保您在不知情的情况下不会失去保护。
状态监控功能:
- 自动心跳文件 -每30秒更新一次
- 启动通知 -服务器启动时的明确指示
- 外部状态检查器 -独立监控脚本
- 健康警告 -服务器出现故障时发出警报
使用外部状态检查器:
# Check if MCP server is running
python tools/check-mcp-status.py
# Example outputs:
# ✅ MCP server is ACTIVE (last seen: 15s ago)
# 🔴 MCP server appears DOWN ⚠️ (last seen: 5m ago)状态文件位置:
- 文件:
~/.dev-safety/mcp_status.json - 更新:服务器运行时每30秒一次
- 内容:PID、启动时间、工具计数、运行状况
🧪 测试
# Run basic functionality tests
python -m pytest tests/test_basic_functionality.py
# Test with a real project
python -m pytest tests/test_with_real_project.py
# Run example workflow
python examples/basic_workflow_example.py📋 需求
- Python 3.8+
- Git(用于沙盒版本控制)
- MCP兼容客户端(克劳德桌面等)
🚧 实施状态
✅ 第一阶段:核心价值(当前)
- \[x\] 带会话连续性工具的MCP服务器
- \[x\] 安全开发的沙盒管理
- \[x\] 会话状态持久性
- \[x\] 基于文件的活动检测
- \[x\] 手动会话继续
🔮 未来阶段
- 第2阶段:智能提示(基于定时器的监控、自动建议)
- 第三期:简单自动化(自动保存、健康检查)
- 阶段4:高级功能(多界面支持、可视化监控)
📄 许可证
MIT许可证-有关详细信息,请参阅许可证文件。
🤝 贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 添加新功能的测试
- 提交拉取请求
📞 支持
有关问题和疑问,请使用GitHub问题跟踪器。
