Documentation · Getting started
Docker parameters
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.
Two kinds of setting, and why it matters
This trips people up, so it is worth stating plainly.
Generation-time flags live in the config and decide what code is emitted. Changing one means
regenerating. Examples: MCP_SERVER, MCP_HTTP_TOKEN, MCP_HTTPS, PROMETHEUS_SERVER,
DAO_POOL, TARGET_JVM.
Runtime environment variables are read when the server starts and change how it behaves.
Setting a runtime variable does nothing if the server was generated without the matching flag — the code to read it was never written. That is the single commonest “I changed it and nothing happened”.
The console
| Variable | Meaning |
|---|---|
MCPDBWIZARD_ORACLE_HOST / _PORT / _SID | Where. A leading / on the SID selects the service-name form. |
MCPDBWIZARD_ORACLE_USER | The account to connect as. Recorded upper-cased, because that is how Oracle stores owners. |
MCPDBWIZARD_ORACLE_OTHER_USER | Optional second schema to list as well as your own. Empty for none. |
MCPDBWIZARD_ORACLE_USER_OBJECTS | false lists only the other schema. Ignored unless a second schema is named. |
DB_PASS / DB_PASS_FILE | The password, and the only Oracle secret. Set exactly one. |
MCPDBWIZARD_CONFIG_DIR | Where configs, accounts and workspaces live. /data in the container. |
MCPDBWIZARD_RUNTIME_METRICS_PORT_RANGE | Scrape ports for the generated servers, one each. Empty means no metrics port. |
ADMIN_USERNAME | The console’s first admin account. Defaults to admin. This account cannot be deleted or demoted. |
ADMIN_INITIAL_PASSWORD | Optional. Sets the first admin’s initial password instead of one being generated. You are still made to change it at first sign-in. Only read when the account is first created; setting it later does nothing. |
There is no default password. If you do not set ADMIN_INITIAL_PASSWORD, the container generates
one on first start and writes it to initial-admin-password in the config directory. The sign-in
page names the path, and the file is deleted as soon as you choose your own password.
docker exec mcpdbwizard cat /data/initial-admin-password
Generated servers
| Variable | Meaning |
|---|---|
MCP_HTTP_TOKEN | The bearer secret. The config flag of the same name emits the check. |
MCP_METRICS_PORT / MCP_METRICS_HOST | Prometheus listener. Unset means no listener. From 2.0.10 the console sets the bind address for servers it launches; set MCP_METRICS_HOST to override. |
MCP_RATE_LIMIT / MCP_RATE_BURST | Calls per second, and the burst allowance. Off by default. |
MCP_MAX_REQUEST_BYTES | Refuse an over-large request with 413. Off by default. |
DAO_QUERY_TIMEOUT_SECONDS | Cap on any one statement. The control that actually protects the database. |
DAO_POOL_* | Pool sizing — see Connection pooling. |
MCP_AUDIT_* | The audit trail — see Setting up auditing. |
MCPDBWIZARD_LOG_BACKEND | Overrides the generated DAO_LOG_TYPE at startup. |
A mistyped value stops start-up rather than leaving a server silently unlimited, unaudited or unmetered. That is deliberate in every case where believing a control was on would be worse than a failure to boot.
To write. The full table with defaults and units; which are read by the console versus a generated server versus both; a worked example per deployment shape.