MCPDBWizard

Documentation  ·  Getting started

Launching on Docker

This page is an outline. What is here is accurate, but it is not yet the whole story — each section ends with a note on what is still to be written. For anything it does not answer, DEPLOYMENT.md and USING-MCP.md in the repository are the complete references.

The container holds the web console and every MCP server it generates. One image, one port to publish, one volume to keep.

The minimum

docker run -d --name mcpdbwizard \
  -p 8080:8080 \
  -v mcpdbwizard-data:/data \
  mcpdbwizard-web

Add the Oracle settings from Connecting to Oracle — the console will tell you plainly if they are missing.

Why only 8080 is published

Generated servers bind 8090–8109 on loopback and are meant to be reached through the proxy on 8080, which is the only component that knows who is calling. Publishing them directly bypasses the accounts, the access grid and the per-caller limits.

If you do it anyway, the server refuses to start unless it was generated with bearer tokens or OAuth: exposure is the act that puts it on a network, while authentication is opt-in.

The /data volume

Configs, accounts, access grants, each runtime’s workspace and (if you enable it) the audit spool all live here. Keep it. Replacing the image is then routine; losing the volume is losing your curation.

Set a memory limit

Without a cgroup limit, the container’s memory metric is a percentage of the whole host — Docker does not hide the host’s RAM from a container. A limit creates real cgroup accounting, and the metric’s basis label flips from host to cgroup.

    deploy:
      resources:
        limits:
          memory: 4g

The image already sets JAVA_TOOL_OPTIONS=-XX:MaxRAMPercentage=75. Overriding that variable replaces it, so keep the heap setting if you add anything to it.

To write. A worked docker-compose.yml; Kubernetes notes; the published image name and tag policy, once there is a registry to name; upgrade and rollback steps.