Docs / Quick Start
Install mcpgate
One command. Self-hosted. No .env file needed.
curl -fsSL https://mcpgate.de/install.sh | bash
Reviewable shell script. Runs entirely on your infrastructure. No data sent externally.
Checks Docker, downloads Compose setup to
~/.mcpgate, starts the stackClaude, Codex, Gemini, or ChatGPT — from the dashboard
Requirements
- Docker and Docker Compose v2
- A Google or Microsoft account (for initial login)
- A Linux host (amd64 or arm64); we recommend 2 vCPU and 4 GB RAM. Hardware, volumes and network: Self-hosting
Manual Docker install
If you prefer to review and run the setup yourself, create a new directory first:
mkdir mcpgate && cd mcpgate
Save the following as docker-compose.yml:
# mcpgate — Zero-Config Setup
#
# Just run: docker compose up -d
# Then open: http://localhost:8642
#
# The setup wizard guides you through everything.
# Secrets are auto-generated on first start.
# Configuration is persisted in the gateway-data volume.
#
# For advanced configuration, create a .env file (see .env.example).
services:
mcpgate:
image: mcpgate/mcpgate:latest
ports:
# Only this machine reaches the port. Put a TLS reverse proxy in front of it.
- "127.0.0.1:8642:3001"
env_file:
- path: .env
required: false
environment:
- BASE_URL=${BASE_URL:-http://localhost:8642}
- REDIS_URL=redis://:${REDIS_PASSWORD:-mcpgate-default-pw}@redis:6379/0
depends_on:
redis:
condition: service_healthy
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-sf", "http://localhost:3001/health"]
interval: 10s
timeout: 5s
retries: 3
start_period: 15s
volumes:
- gateway-data:/app/data
networks:
- default
- ner
redis:
image: redis:8-alpine
command: redis-server --requirepass ${REDIS_PASSWORD:-mcpgate-default-pw} --appendonly yes --maxmemory 512mb --maxmemory-policy noeviction
volumes:
- redis-data:/data
healthcheck:
test: ["CMD", "redis-cli", "-a", "${REDIS_PASSWORD:-mcpgate-default-pw}", "ping"]
interval: 5s
retries: 3
restart: unless-stopped
# Optional NER container for person names: docker compose --profile ner up -d
# Then in .env: NER_SERVICE_URL=http://172.31.250.2:8765/
# It has no authentication: publish no port.
ner:
image: mcpgate/ner:v2.0.3584
profiles: ["ner"]
restart: unless-stopped
networks:
ner:
ipv4_address: 172.31.250.2
deploy:
resources:
limits:
cpus: "3"
memory: 1536M
healthcheck:
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8765/health', timeout=3)"]
interval: 30s
timeout: 5s
retries: 3
start_period: 30s
networks:
# Change the subnet and NER_SERVICE_URL if it collides with one of your networks.
ner:
ipam:
config:
- subnet: 172.31.250.0/29
volumes:
gateway-data:
redis-data:
Start the stack
docker compose up -d
That's it. Secrets are auto-generated on first start. Configuration is persisted automatically.
Open the setup wizard
Open localhost:8642 in your browser. The wizard walks you through:
- Login — Sign in with Google or Microsoft (no OIDC setup needed)
- Branding — Company name, logo, and primary color
- Team — Admin emails and company domain
- Services — Connect Jira, Slack, GitLab, Grafana, and more
Connect your AI client
After setup, connect your preferred AI client from the dashboard.
claude mcp add mcpgate https://your-gateway-url/mcp -s user -t http
For company-wide setup: Admin Settings → Connectors → add https://your-gateway-url/mcp
Verify
curl http://localhost:8642/health
# returns JSON with status and version
Updates
docker compose pull
docker compose up -d
Alternative: git clone
If you prefer to start from the repository (includes .env.example and documentation):
git clone https://gitlab.com/mcpgate/mcpgate.git
cd mcpgate
docker compose up -d
Advanced: .env configuration
For users who prefer file-based configuration:
cp .env.example .env
# Edit .env with your values
docker compose up -d
Environment variables take priority over wizard configuration. See Configuration Reference for all options.