Quick Start
Pull and run the server in under a minute:- Docker
- Podman
Available Images
Images are published to GitHub Container Registry on each release:| Architecture | Image Tag | Platform |
|---|---|---|
| x86-64 | ghcr.io/ibm/ibmi-mcp-server:amd64-v0.3.1 | Standard servers, cloud VMs |
| ARM 64-bit | ghcr.io/ibm/ibmi-mcp-server:arm64-v0.3.1 | Apple Silicon, ARM cloud instances |
| Power (LE) | ghcr.io/ibm/ibmi-mcp-server:ppc64le-v0.3.1 | IBM Power Systems |
Using an Environment File
For easier management, store your configuration in a.env file:
- Docker
- Podman
Mounting Custom SQL Tools
To use your own YAML tool configurations, mount them into the container:- Docker
- Podman
The
:ro flag mounts the directory as read-only inside the container, which is a security best practice.Docker Compose
For a more complete setup, use Docker Compose to run the MCP server alongside supporting services.Standalone Server
Create adocker-compose.yml:
- Docker
- Podman
With MCP Context Forge Gateway
The repository includes a full-stack Docker Compose configuration with MCP Context Forge — a gateway that provides tool federation, authentication, rate limiting, and an admin UI.| Service | Port | Description |
|---|---|---|
| MCP Context Forge | 4444 | Gateway with admin UI, tool federation, auth |
| IBM i MCP Server | 3010 | SQL tools MCP server |
| PostgreSQL | — | Gateway metadata storage (internal) |
| Redis | 6379 | Session cache |
| pgAdmin | 5050 | Database admin UI |
| Redis Insight | 5540 | Cache admin UI |
The MCP Context Forge Gateway image must be built locally before starting the stack. See the MCP Context Forge docs for build instructions.
Container Management
Viewing Logs
- Docker
- Podman
Stopping and Removing
- Docker
- Podman
Health Checks
The server exposes a health endpoint at/healthz:
Building from Source
If you need to build the image locally instead of pulling from GHCR:- deps — Installs production Node.js dependencies
- builder — Installs all dependencies and compiles TypeScript
- runner — Final minimal image with only production deps and compiled output
The image runs as a non-root user (
appuser) for security. Port 3010 is exposed by default.Troubleshooting
Container won't start
Container won't start
Check the container logs for error details:Common causes:
- Missing or incorrect
DB2i_*environment variables - Mapepire not running on the IBM i system
- Network connectivity issues to IBM i host
Cannot connect to IBM i from container
Cannot connect to IBM i from container
Verify the container can reach your IBM i system:If using Docker Desktop on macOS/Windows, ensure the IBM i host is reachable from within the VM.
Port conflicts
Port conflicts
If port 3010 is already in use, map to a different host port:
Permission denied on mounted volumes
Permission denied on mounted volumes
The container runs as a non-root user. Ensure mounted files are readable:On SELinux-enabled systems (RHEL/Fedora), add the
:z flag: