mcpField
C
containerport

containerport

ローカル
github.com/CloudCorpRecordsクラウド・インフラ02 週間前に更新

containerport について

containerportは、ホストのdockerバイナリを通じて日常的なDockerコンテナ操作を行うMCPサーバー兼コマンドラインツールです。コンテナ管理向けに、コンテナ、イメージ、ログ、ボリュームの基本操作に絞り、Dockerの広範なカタログやゲートウェイ機能は対象外です。

主な機能

  1. 01コンテナの一覧表示、確認、起動、停止、削除
  2. 02ポート、環境値、コマンドを指定して実行
  3. 03イメージの一覧表示と取得
  4. 04コンテナログの取得
  5. 05ボリュームの一覧表示

活用シーン

  1. 01稼働中または停止中のコンテナを確認
  2. 02コンテナの起動と管理
  3. 03コンテナログの取得
  4. 04利用可能なイメージとボリュームの一覧表示

MCP 対応

MCPサーバーは、コンテナのライフサイクル操作、イメージの一覧表示と取得、ログ取得、ボリューム一覧など、10種類のDocker操作をツールとして公開します。呼び出しはホストのdockerバイナリを通じて実行されます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"cloudcorprecords-containerport": {
"command": "npx",
"args": [
"-y",
"@reneturcios/containerport"
]
}
}
}
起動コマンドnpx -y @reneturcios/containerport

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@reneturcios/containerport0.1.0
ocighcr.io/cloudcorprecords/containerport:0.1.0

ツール

10

掲載時のツール一覧 · 1 週間前に更新

パラメーター型必須説明
allbooleanいいえtrue の場合、実行中のコンテナに加えて停止中のコンテナも含めます。

詳細

containerport

containerport は、日常的な Docker コンテナ作業のための小規模な MCP サーバー兼 CLI です。Docker CLI に直接対応する定義済みのコアサブセット(コンテナの一覧表示、詳細確認、実行、起動、停止、削除、イメージの一覧表示と取得、コンテナログの読み取り、ボリュームの一覧表示という 10 個のツール)を、クリーンルーム方式で再構築したものです。

これは、Docker の MCP カタログ/ツールキットゲートウェイを意図したものではありません。Compose のサポート、イメージのビルド、ネットワークや Swarm の管理、レジストリ認証、コンテナ内での exec、カタログ/ゲートウェイツールはなく、エージェントがよく使うコンテナ操作だけを、ホストの docker バイナリを通じて忠実に実行します。

各呼び出しは引数配列として構築され、execFile のセマンティクスで実行されます。シェル文字列は決して使わないため、イメージ名、環境変数の値、ポートがシェル構文として再解釈されることはありません。run-container に渡す command は、ホストのシェルではなく、コンテナ自身の sh -c を通じて実行されます。エグゼキューターは差し替え可能で、テストスイートでは偽のエグゼキューターを使って正確な引数配列を検証しています。

ホストでは、動作する docker CLI が必要です。docker が見つからない場合、呼び出しは捏造した結果ではなく、基盤となる spawn エラー(ENOENT)をそのまま返して失敗します。公開されているコンテナイメージには docker バイナリは含まれていません。ホスト側のエグゼキューター(たとえば、Docker ソケットをマウントするワークフロー)を想定しており、その旨は Dockerfile に記載されています。

インストール

npx @reneturcios/containerport list-containers --all
docker run -i ghcr.io/cloudcorprecords/containerport

CLI

containerport list-containers [--all]
containerport inspect-container <container_id>
containerport run-container <image> [--name n] [--port 8080:80] [--env KEY=val] [--command "echo hi"]
containerport start-container <container_id>
containerport stop-container <container_id>
containerport remove-container <container_id> [--force]
containerport list-images
containerport pull-image <image>
containerport get-container-logs <container_id> [--tail 100]
containerport list-volumes
containerport --version

終了コード:0 は成功、1 は docker エラー、2 は使用方法のエラーです。

MCP サーバー

npx -y @reneturcios/containerport mcp
{
  "mcpServers": {
    "containerport": {
      "command": "npx",
      "args": ["-y", "@reneturcios/containerport", "mcp"]
    }
  }
}
ツール
ツール入力説明
list_containersall(ブール値、省略可能)docker ps [--all] --format json を実行して解析します。
inspect_containercontainer_id(必須)docker inspect を実行し、単一のドキュメントを返します。
run_containerimage(必須)、name、ports[]、env[]、commanddocker run -d を実行し、新しいコンテナ ID を返します。
start_containercontainer_id(必須)docker start を実行します。
stop_containercontainer_id(必須)docker stop を実行します。
remove_containercontainer_id(必須)、forcedocker rm [-f] を実行します。
list_images—docker images --format json を実行して解析します。
pull_imageimage(必須)docker pull を実行します。
get_container_logscontainer_id(必須)、taildocker logs [--tail n] を実行します。
list_volumes—docker volume ls を実行し、ドライバー名とボリューム名のペアを解析します。

エグゼキューターの失敗(docker バイナリが見つからない、デーモンエラー、存在しないコンテナなど)は、基盤となるメッセージを含むツールエラーとして報告されます。

開発

npm install
npm run build
npm test
npm run dev

テストはすべて偽のエグゼキューターで実行され、正確な引数配列、出力の解析、エラーの伝播を検証します。実際の Docker デーモンには接続しません。

ライセンス

MIT — LICENSE を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。