# Containerization Assist

Walks an app from repo analysis to a running container: builds the image, scans it, and writes Kubernetes manifests from the chat.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed · ★ 43
- Author: Azure
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/Azure/containerization-assist
- Updated: 2026-10-22
- HTML: https://affpapa.org/en/nevibecode/mcp/containerization-assist

## What it does

This is a TypeScript MCP server built on the MCP SDK. It takes one application through the whole path: reads the repository, writes a Dockerfile, builds the image, scans it, tags it, then produces Kubernetes manifests and applies them. Progress arrives as MCP notifications, so a slow build does not look stuck.

Rego policies control what the server does. Before generation you set defaults for resources, base images and build strategy; during generation the knowledge base gets filtered and templates are injected; afterwards come semantic checks, a security score and cross-tool consistency. The repo ships example policies — environment-based strategy for dev/staging/prod, cost control by team tier, a security-first setup.

Node.js 20 or higher is required, plus a running Docker daemon with an accessible socket: `/var/run/docker.sock` on Linux and macOS, `//./pipe/docker_engine` on Windows. No daemon, no build. Trivy covers scanning, and deployment needs a kubeconfig at `~/.kube/config` with RBAC rights for deployments, services and namespaces. You can also skip MCP entirely and call `analyzeRepo`, `buildImageContext` or `scanImage` from the SDK.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `DOCKER_SOCKET`, `LOG_LEVEL` — keys and tokens: ask the human for the values, never commit them or put them in shared files.
- Works with: Kubernetes

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env DOCKER_SOCKET=<DOCKER_SOCKET> --env LOG_LEVEL=<LOG_LEVEL> --transport stdio containerization-assist -- npx -y containerization-assist-mcp
```
Replace <…> with your own values

### Codex

**Platform CLI**
```bash
codex mcp add containerization-assist --env DOCKER_SOCKET=<DOCKER_SOCKET> --env LOG_LEVEL=<LOG_LEVEL> -- npx -y containerization-assist-mcp
```
Replace <…> with your own values

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "containerization-assist": {
            "command": "npx",
            "args": [
                "-y",
                "containerization-assist-mcp"
            ],
            "env": {
                "DOCKER_SOCKET": "<DOCKER_SOCKET>",
                "LOG_LEVEL": "<LOG_LEVEL>"
            }
        }
    }
}
```
Replace <…> with your own values

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "containerization-assist": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "containerization-assist-mcp"
            ],
            "env": {
                "DOCKER_SOCKET": "<DOCKER_SOCKET>",
                "LOG_LEVEL": "<LOG_LEVEL>"
            }
        }
    }
}
```
Replace <…> with your own values

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e DOCKER_SOCKET=<DOCKER_SOCKET> -e LOG_LEVEL=<LOG_LEVEL> containerization-assist npx -y containerization-assist-mcp
```
Replace <…> with your own values

## When to use it
- write a Dockerfile for an unfamiliar stack without tracing dependencies by hand
- find vulnerabilities in a built image and get remediation guidance
- generate Kubernetes manifests and apply them to a cluster
- keep one set of build rules across dev, staging and prod with policies
- run repo analysis and builds from extension code without the MCP protocol

## Example prompts
- Analyze the repo at `./myapp` and tell me what stack it uses
- Build the image `myapp:v1` and scan it for vulnerabilities
- Generate Kubernetes manifests and deploy the app to the `staging` namespace

## Similar
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [Oh My Posh Validator](https://affpapa.org/en/nevibecode/mcp/oh-my-posh-validator.md) — MCP server · ★ 23643
- [Keploy](https://affpapa.org/en/nevibecode/mcp/keploy.md) — MCP server · ★ 18727
- [Coder](https://affpapa.org/en/nevibecode/mcp/coder.md) — MCP server · ★ 17160
- [mcp](https://affpapa.org/en/nevibecode/mcp/kubeshark-mcp.md) — MCP server · ★ 12109

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
