FrootAI MCP for Docker
One container image for local stdio, remote HTTP, CI, and cloud operation.
Run the same FrootAI MCP process without installing Node.js on the host. Choose a disposable client-launched container or an operated HTTP service with explicit health and auth boundaries.
ghcr.io/frootai/frootai-mcp
$ docker run --rm -p 3000:3000 \
ghcr.io/frootai/frootai-mcp:latest http
transport HTTP
port 3000
health /healthz
readiness /readyz
✓ FrootAI MCP readyChoose the transport
Disposable stdio or operated HTTP
The image is the same. The lifecycle, client configuration, and security responsibility are not.
Stdio
A local MCP client launches the container and communicates over standard input/output.
docker run -i --rm ghcr.io/frootai/frootai-mcp:latestHTTP
Run a long-lived remote MCP process for shared clients, Container Apps, or Kubernetes.
docker run --rm -p 3000:3000 ghcr.io/frootai/frootai-mcp:latest httpConnect a client
Launch locally or point to a service
{ "servers": { "frootai-docker": { "type": "stdio", "command": "docker", "args": ["run", "-i", "--rm", "ghcr.io/frootai/frootai-mcp:latest"] } }}{ "servers": { "frootai": { "type": "http", "url": "https://your-frootai-host.example/mcp" } }}Deployment map
Four useful container boundaries
Local agent
VS Code, Claude, or Cursor launches one disposable stdio container.
CI isolation
Pin the image and run deterministic validation or MCP tasks inside a clean runtime.
Remote service
Expose HTTP behind your own TLS, ingress, and authentication boundary.
Cloud runtime
Use readiness and liveness probes with Container Apps or Kubernetes orchestration.
Operate the service
Health, readiness, and authentication are visible
HTTP mode is an operated service. Probe it, secure it, and keep its configuration outside the image.
Liveness
GET /healthzProcess status, version, uptime, and engine state.
Readiness
GET /readyzModules loaded, active sessions, and cache state.
API key mode
FAI_AUTH_MODE=apikeyUse a secret provider or environment file for keys.
Production-minded start
Pull, inspect, pin, then run
docker pull ghcr.io/frootai/frootai-mcp:latestdocker image inspect ghcr.io/frootai/frootai-mcp:latest
# After review, pin an approved release tagdocker run -i --rm ghcr.io/frootai/frootai-mcp:<version>docker run --rm -p 3000:3000 --env-file .env.frootai ghcr.io/frootai/frootai-mcp:<version> http
curl --fail http://localhost:3000/healthzcurl --fail http://localhost:3000/readyzRuntime boundary
Repeatable does not mean responsibility-free
Pin before production
Replace `latest` with a reviewed release tag for reproducible environments.
Keep stdin open
The `-i` flag is required when a local MCP client uses stdio mode.
Own remote security
HTTP mode still needs your TLS, ingress, network policy, and API-key handling.
Keep secrets outside config
Pass authentication through a secret store or environment file, not committed client JSON.
Network remains explicit
The image runs locally after pull; attached and upstream services retain their own network requirements.