开发安全系统服务器

一个MCP服务器,为LLM开发工作流提供会话连续性和沙盒安全功能。

  • by fti9999
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 fti9999/dev-safety-mcp

使用说明

开发安全系统-MCP服务器

MCP(模型控制协议)服务器,为LLM开发工作流实现会话连续性和沙盒安全。

🎯 核心目标

创建一个MCP服务器,为人工智能辅助开发提供“精确地从你停止的地方继续”+“永不中断主应用程序”功能。

✨ 主要特点

  • 会话状态持久性:保存并恢复完整的开发会话上下文
  • 沙盒管理:用于安全实验的隔离开发环境
  • 活动检测:基于文件的监控,建议何时保存会话状态
  • 安全同步:受控地将批准的变更复制回主项目

🚀 快速开始

安装

# Clone the repository
git clone <repository-url>
cd dev-safety-mcp

# Install dependencies
pip install -r requirements.txt

# Install the package
pip install -e .

基本用法

  1. 创建安全开发沙箱:
# Through MCP client
await create_sandbox("F:/my-project")
  1. 休息时保存会话状态:
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"}
)
  1. 从你停止的地方继续:
session = await load_session_state()
print(session['continuation_prompt'])
  1. 将批准的更改同步到主项目:
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

🔧 开发工作流程

  1. 开始开发 -创建沙盒 create_sandbox
  2. 安全工作 -所有更改都发生在隔离的沙盒中
  3. 保存进度 -使用 save_session_state 休息时
  4. 无缝继续 -加载会话状态,以准确地从您停止的地方继续
  5. 部署更改 -使用 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许可证-有关详细信息,请参阅许可证文件。

🤝 贡献

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 添加新功能的测试
  5. 提交拉取请求

📞 支持

有关问题和疑问,请使用GitHub问题跟踪器。