DockaShell について
DockaShell は、AI エージェントに分離された永続的な Docker コンテナを提供する MCP サーバーです。シェルアクセスとファイル操作が可能で、すべてのコマンドとファイル変更が監査ログに記録されます。研究目的のプロジェクトであり、本番用途向けではありません。
主な機能
- 01エージェントごとの独立した永続コンテナ
- 02シェルアクセスとファイル操作
- 03コマンドとファイル変更の監査ログ
- 04npm によるグローバルインストールとコマンドライン管理
活用シーン
- 01分離された Python 環境での CSV ファイルの処理
- 02コンテナ内での Web 開発プロジェクトの構築と実行
- 03セッションをまたぐ SQLite データベースの保持
MCP 対応
本プロジェクトは MCP サーバーであり、シェルやファイル操作のツールを MCP クライアントに公開します。エージェントの操作は監査証跡として記録されます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
DockaShell
DockaShell は、AI エージェントが作業するための隔離された Docker コンテナを提供する MCP(Model Context Protocol)サーバーです。各エージェントは、シェルアクセス、ファイル操作、完全な監査証跡を備えた独自の永続環境を取得します。
これはエージェントの自律性を探求する研究プロジェクトです。シェルベースのワークフローをどこまで押し進められるでしょうか? エージェントは自身の開発環境を管理し、独自のツールを作成できるでしょうか?
これが存在する理由
現在の AI アシスタントは根本的な壁にぶつかっています。
- 永続メモリがない: 会話はリセットされ、コンテキストは失われ、エージェントは以前の作業を基に積み上げることができません
- ツールの子守: すべてのシェルコマンドに人間の承認が必要で、エージェントのフローと自律性が損なわれます
- 限られたツールセット: エージェントは必要なものを自ら構築するのではなく、あらかじめ定義されたツールに縛られています
- 自己省察がない: 自身のトレースを分析して改善したり、過去のセッションから学んだりできません
DockaShell はこれらの制約を取り除き、何が生まれるかを探求します。
- 自己進化するエージェント: 自身のツール、スクリプト、ワークフローを構築し洗練させます
- 継続的なメモリ: セッションをまたいで永続するナレッジベース、wiki、ノートブックを維持します
- 自律的な探索: 絶え間ない人間の介入なしにシェルコマンドを実行します
- メタ学習: 以前のトレースを分析して、意思決定とツールの使用を改善します
核心的な問いはこれです。エージェントが真の永続性と自律性を持ったとき、何を成し遂げられるでしょうか?
仕組み
AI Agent (Claude/GPT/...)
↔ DockaShell (MCP Server)
└─ Docker Engine
├─ Container A (Project 1)
│ └─ Persistent Volume
├─ Container B (Project 2)
│ └─ Persistent Volume
└─ Container C (Project 3)
└─ Persistent Volume
各 AI エージェントは、永続ストレージを備えた独自の隔離された Docker コンテナを取得します。何十ものカスタムツールの代わりに、エージェントは標準のシェルコマンド(bash、git、npm など)を使用し、独自のワークフローを構築します。
主要な原則:
- シェル > 専用ツール: エージェントはすでに POSIX を「話せる」ので、実際のコマンドを使わせましょう
- コンテナ分離: 内部は完全な自律性、ホストシステムへのリスクはゼロ
- 永続ワークスペース: ファイル、データベース、コンテキストはセッションをまたいで存続します
- 完全な監査証跡: すべてのコマンドとファイル変更が分析用に記録されます
クイックスタート
# Install
npm install -g dockashell
# Setup
dockashell build
dockashell create my-project
dockashell start my-project
MCP クライアントの設定に追加します:
{
"mcpServers": {
"dockashell": {
"command": "dockashell",
"args": ["serve"]
}
}
}
要件: Node.js 20+、Docker が実行中であること
ワークフローの例
データ分析: エージェントが Python 環境を起動し、CSV ファイルを処理し、インサイトを生成します
Web 開発: エージェントが React アプリを構築し、依存関係をインストールし、ライブプレビュー付きで開発サーバーを実行します
リサーチアシスタント: エージェントがセッションをまたいで情報を追跡し、SQLite データベースを維持し、コンテキストを記憶します
ドキュメント
現在の状態
これは活発な研究であり、本番用ソフトウェアではありません。コア機能は実験には十分機能しますが、エージェントが永続的なシェル環境で何をできるかを探求する中で、変更が予想されます。
コントリビューションとフィードバックを歓迎します。
ライセンス
Apache License 2.0
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。