Development Safety System - MCP Server について
Development Safety System - MCP Serverは、LLM開発ワークフローでセッション継続とサンドボックス分離を支援します。進捗を保ち、メインプロジェクトと分けて作業し、承認済みの変更を反映したい開発者向けです。
主な機能
- 01開発セッションの保存と復元
- 02分離された開発サンドボックスの作成
- 03ファイル活動の監視と保存提案
- 04承認済み変更の安全な同期
- 05サーバーの稼働状況確認
活用シーン
- 01休止後の開発再開
- 02メインプロジェクトに触れずに試行
- 03選択したファイルをメインプロジェクトへ同期
- 04MCPサーバーの状態確認
MCP 対応
サンドボックス管理、セッションの保存と復元、活動確認、安全な同期、状態確認のMCPツールを提供します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
開発安全システム - MCP サーバー
LLM 開発ワークフローのセッション継続性とサンドボックスの安全性を実現する MCP(Model Context Protocol)サーバーです。
🎯 主な目標
AI 支援開発において、「中断したところから正確に再開する」機能と「メインアプリを壊さない」機能を備えた 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 .
基本的な使い方
- 安全な開発のためにサンドボックスを作成します:
# 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, optional):サンドボックスのカスタム名
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, optional):確認する時間枠(デフォルト:10)
sync_to_main
承認済みの変更をサンドボックスからメインプロジェクトに安全にコピーします。
パラメーター:
sandbox_path(str):コピー元のサンドボックスのパスmain_path(str):コピー先のメインプロジェクトのパスfiles(List[str], optional):同期する特定のファイル(デフォルト:変更されたすべてのファイル)
commit_progress
作業の消失を防ぐために、現在の進捗を手動でコミットします。
パラメーター:
sandbox_path(str):サンドボックスへのパスmessage(str, optional):進捗を説明するコミットメッセージ
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 サーバーの健全性を確認するスタンドアロンのスクリプト
📊 サーバーの監視
dev-safety 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 互換クライアント(Claude Desktop など)
🚧 実装状況
✅ フェーズ1:中核となる機能(現在)
- セッション継続ツールを備えた MCP サーバー
- 安全な開発のためのサンドボックス管理
- セッション状態の永続化
- ファイルベースのアクティビティ検出
- 手動でのセッション継続
🔮 今後のフェーズ
- フェーズ2:スマートなヒント(タイマーによる監視、自動提案)
- フェーズ3:シンプルな自動化(自動保存、ヘルスチェック)
- フェーズ4:高度な機能(複数インターフェースのサポート、視覚的な監視)
📄 ライセンス
MIT ライセンス。詳細は LICENSE ファイルをご覧ください。
🤝 貢献
- リポジトリをフォークします
- 機能ブランチを作成します
- 変更を加えます
- 新しい機能のテストを追加します
- プルリクエストを送信します
📞 サポート
問題や質問がある場合は、GitHub のイシュートラッカーをご利用ください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。