Configuration

mcpgate works out of the box with zero configuration. Use .env and YAML files for advanced setups.

Configuration priority

mcpgate loads configuration from multiple sources. Higher priority overrides lower:

  1. Environment variables / .env — Highest priority. Manual configuration.
  2. /data/gateway.env — Written by the setup wizard. Persists across restarts.
  3. Auto-generated defaults — Secrets generated on first start if not provided.

Core settings

VariableDescriptionRequired
BASE_URLPublic URL where mcpgate is accessibleWizard or env
ADMIN_USERSComma-separated admin email addressesWizard or env
COMPANY_DOMAINSAllowed email domains (e.g. @yourcompany.com)No (derived from admin email)
DEFAULT_TIMEZONEIANA timezone (default: Europe/Berlin)No

Security

VariableDescriptionAuto-generated?
ENCRYPTION_KEYAES-256 key for token encryption (base64)Yes
JWT_SECRETSecret for signing session tokensYes
REDIS_PASSWORDRedis authentication passwordSet in docker-compose.yaml

Auto-generated secrets are persisted in /data/gateway.env so they survive container restarts.

SSO / OIDC

Configure your identity provider for team sign-in. Works with any OIDC-compliant provider.

VariableDescription
OIDC_ISSUER_URLProvider's issuer URL (auto-discovers endpoints)
OIDC_CLIENT_IDOAuth client ID from your IdP
OIDC_CLIENT_SECRETOAuth client secret

Provider examples:

# Google
OIDC_ISSUER_URL=https://accounts.google.com

# Microsoft
OIDC_ISSUER_URL=https://login.microsoftonline.com/YOUR_TENANT_ID/v2.0

# Okta
OIDC_ISSUER_URL=https://your-domain.okta.com

Redirect URI: {BASE_URL}/auth/callback

Without OIDC, mcpgate uses broker login (Google/Microsoft via mcpgate.de) — no setup needed.

Branding

White-label the dashboard with your company identity. Configurable via setup wizard or environment variables.

VariableDescription
BRAND_NAMECompany name shown in header
BRAND_COLORPrimary accent color (hex)
BRAND_LOGO_URLLogo URL (relative or absolute)
BRAND_FAVICON_URLFavicon URL

Service credentials

Each service requires its own credentials. Configure via the setup wizard or .env. See .env.example in the repository for the complete reference with setup instructions per service.

Service categories

CategoryAuth typeExamples
Gateway servicesAPI key / token (shared)Grafana, Sentry, Jenkins, Home Assistant, Joan
OAuth servicesOAuth Client ID/Secret (users connect individually)Jira, Notion, Figma, GitLab, Slack
Google ecosystemGoogle OAuth + SSOGoogle Workspace, Grafana (SSO), Metabase (SSO)

YAML extensions

Services are defined in YAML files under modules/. Each file describes actions, auth, and metadata:

service: my_service
extends: false
meta:
  display_name: My Service
  description: What this service does
  icon: /static/images/service-icons/my-service.svg
  brand_color: "#4285f4"
  category: gateway
  setup_fields:
    - env: MY_SERVICE_API_KEY
      label: API Key
      type: password
base_url: https://api.myservice.com/v1
auth:
  type: header
  env_var: MY_SERVICE_API_KEY
  header_name: Authorization
  header_template: "Bearer TOKEN"

actions:
  list_items:
    endpoint: /items
    method: GET
    mode: read
    response:
      transform: items

Place custom extensions in modules/custom/ — they are auto-discovered on startup.

Access control

Configure in config/access_control.yaml:

domains:
  - yourcompany.com
  - subsidiary.com

guests:
  - external.partner@example.com

blocked_services:
  external.partner@example.com:
    - google_workspace
    - slack

Hot-reloadable: curl -X POST http://localhost:8642/admin/reload

Hook configuration

See Hooks for policy and enrichment hook configuration in config/tool_hooks.yaml.