# =================================== # MCP Hub — Environment Configuration # =================================== # # MINIMUM TO START: Set MASTER_API_KEY, then add sites via the web dashboard. # Full docs: https://github.com/airano-ir/mcphub/blob/main/docs/getting-started.md # # After editing, run: # docker compose up -d # curl http://localhost:8000/health # verify server # open http://localhost:8000/dashboard # web dashboard # =================================== # ============================================ # REQUIRED # ============================================ # Master API key for authentication (also used to log into the dashboard) # Generate with: python -c "import secrets; print(secrets.token_urlsafe(32))" MASTER_API_KEY=your-secure-key-here # Encryption key for user credentials (REQUIRED for Live Platform / Track E) # Generate with: python -c "import os, base64; print(base64.b64encode(os.urandom(32)).decode())" ENCRYPTION_KEY= # Dashboard session secret (REQUIRED for production) # Generate with: python -c "import secrets; print(secrets.token_hex(32))" DASHBOARD_SESSION_SECRET= # ============================================ # PLUGIN VISIBILITY (Track F.1) # ============================================ # Comma-separated list of plugins visible to public (OAuth) users. # Admin users always see all plugins regardless of this setting. # Default (if not set): wordpress,woocommerce,supabase,openpanel,gitea # ENABLED_PLUGINS=wordpress,woocommerce,supabase,openpanel,gitea # ============================================ # ADMIN SYSTEM (Track F.4) # ============================================ # Comma-separated list of emails that get admin role on OAuth login. # These users see the full admin dashboard (projects, API keys, health, etc.) # If not set, OAuth users only get the standard user dashboard. # ADMIN_EMAILS=admin@example.com,boss@company.com # Disable Master Key login to the web dashboard (default: false). # When true, only OAuth users (with admin email) can access admin dashboard. # Master Key still works for MCP endpoints — only dashboard login is affected. # DISABLE_MASTER_KEY_LOGIN=false # ============================================ # SITES # ============================================ # Sites are managed via the web dashboard (DB-based). # After starting the server, open the dashboard to add sites: # http://localhost:8000/dashboard # # Supported plugins: WordPress, WooCommerce, Supabase, OpenPanel, # Gitea, n8n, Appwrite, Directus, WordPress Advanced # ============================================ # OAUTH (optional — for ChatGPT/Claude auto-registration) # ============================================ # Only needed if you want ChatGPT or Claude to auto-register via OAuth. # For local testing with API key auth, you can skip these. # OAUTH_JWT_SECRET_KEY=your-jwt-secret # OAUTH_BASE_URL=https://your-public-domain.com # ============================================ # OAUTH SOCIAL LOGIN (optional — for user registration) # ============================================ # Enable GitHub and/or Google login for the Live Platform. # Create OAuth apps: # GitHub: https://github.com/settings/developers → New OAuth App # - Callback URL: https://your-domain.com/auth/callback/github # Google: https://console.cloud.google.com/apis/credentials → Create OAuth Client # - Callback URL: https://your-domain.com/auth/callback/google # GITHUB_CLIENT_ID= # GITHUB_CLIENT_SECRET= # GOOGLE_CLIENT_ID= # GOOGLE_CLIENT_SECRET= # PUBLIC_URL=https://mcp.example.com # SESSION_EXPIRY_HOURS=168 # === SITE MANAGEMENT (E.3) === # MAX_SITES_PER_USER=10 # USER_RATE_LIMIT_PER_MIN=30 # USER_RATE_LIMIT_PER_HR=500 # ============================================ # ADVANCED (optional — defaults are fine) # ============================================ # Logging LOG_LEVEL=INFO # Database path (default: data/mcphub.db) # DATABASE_PATH=/app/data/mcphub.db # Rate limits (per client) # RATE_LIMIT_PER_MINUTE=60 # RATE_LIMIT_PER_HOUR=1000 # RATE_LIMIT_PER_DAY=10000