Requirements
Platform host
Section titled “Platform host”| Item | Requirement |
|---|---|
| Operating system | Linux. For a test on one computer, Docker Desktop on macOS or Windows (see Install locally). |
| Docker | Docker Engine 26 or newer with Compose v2.23 or newer (the bundle mounts volume subpaths). Check with docker --version and docker compose version. |
| Memory | 8 GiB. Default limits: gateway 2 GiB, Keycloak 2 GiB, broker 1 GiB, portal 1 GiB (see Configure). |
| Disk | 30 GB, the size we test on. The images take about 1.5 GB after loading. An offline install needs about 1 GB more for the zip and as much again while it is unpacked. Docker does not rotate container logs unless you configure it, so leave room for them and for the databases. |
| CPU | 4 cores, the size we test on. |
| Images | Access to ghcr.io/aiwcorpo, Docker Hub and quay.io, or your own registry, or the offline packages. |
| Clock | NTP on every host. A clock skew makes tokens and OTP codes fail. |
Server hosts
Section titled “Server hosts”An MCP server runs on any host that has Docker Engine with Compose v2.20 or newer and 1 GiB of memory. We test server hosts with 1-2 cores and 10 GB of disk; each server image is about 190 MB. A server can run on the platform host too. See Install an MCP server.
The platform needs one name, for example mcp.corp.test, that points at the platform host. The same name serves the portal
(/), the gateway (/mcp) and the identity provider (/auth). The name must be lower case.
Every server host must resolve that name to the platform host, because a server fetches the gateway’s public keys from
https://<platform>/.well-known/mcp-jwks.json.
Certificates
Section titled “Certificates”File in certs/ |
Content | Required |
|---|---|---|
tls.crt |
The certificate chain for the platform name. The certificate must name the domain. | yes |
tls.key |
The private key of that certificate. | yes |
company-ca.crt |
The CA certificate or certificates that signed tls.crt. |
only when the CA is not a public one |
Everything else (the internal CA, certificates between components, passwords, keys) is generated on the first start and kept in Docker volumes. MCP servers need no certificate from the platform.
Ports and network paths
Section titled “Ports and network paths”Only nginx publishes ports on the platform host.
| From | To | Port | Purpose |
|---|---|---|---|
| Users, AI clients | Platform host | 443 (80 redirects to https) | Portal, /mcp, /auth |
| MCP server host | Platform host | 443 | /.well-known/mcp-jwks.json, the gateway’s public keys |
| Platform host (gateway) | MCP server host | 8443 by default | Manifest, policy data, tool calls |
| Platform host (broker) | Systems behind it (GitLab, Jira…) | 443 | Token checks and OAuth |
| MCP server host | Its backend system | 443 | The system’s API |
Open port 8443 on a server host to the platform host only. Nothing else crosses between the hosts: there is no client certificate and no token handed out by hand.
To use other ports for https or http, see MCP_HTTPS_PORT, MCP_HTTP_PORT and MCP_PUBLIC_ORIGIN in
Configure.
