Choose a compose file
Development
docker-compose.yaml — for individuals running MCPJungle on a local machine. Uses the stdio image by default and runs in development mode with no authentication required.Enterprise
docker-compose.prod.yaml — for teams and organizations hosting MCPJungle on a remote server. Uses the standard minimal image, runs in enterprise mode, and includes Prometheus and pgAdmin.Development mode
docker-compose.yaml starts MCPJungle in development mode alongside a Postgres container. It uses the latest-stdio image by default, which bundles npx and uvx so you can register stdio-based MCP servers without any extra setup.
Start the server
mcpjungle-db (Postgres 17) and mcpjungle-server. The server waits for the database health check to pass before starting.Enterprise mode
docker-compose.prod.yaml starts MCPJungle in enterprise mode. It also starts a Prometheus container (port 9090) and a pgAdmin container (port 5050) for observability and database management.
Initialize the server
After the first boot, run See the production deployment guide for details on this step.
init-server from your client machine to create the admin user and store its access token:Choosing an image
MCPJungle publishes two Docker image variants:| Image tag | Base | Includes | Size |
|---|---|---|---|
latest | distroless/base | mcpjungle binary only | Minimal |
latest-stdio | uv (Debian) | mcpjungle + npx + uvx | Larger |
docker-compose.yamldefaults tolatest-stdio— suitable for local use with stdio-based MCP servers likefilesystem,time, andgithub.docker-compose.prod.yamldefaults tolatest— the minimal image recommended for production.
If your stdio servers rely on tools other than
npx or uvx, you need to build a custom Docker image that includes those dependencies alongside the mcpjungle binary.Run CLI commands inside a container
The standard image does not include a shell. Usedocker exec or kubectl exec to invoke the mcpjungle binary directly:
- Docker
- Kubernetes