# =================================== # MCP Hub — Environment Configuration # =================================== # # MINIMUM TO START: Just set MASTER_API_KEY and one site below. # 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 # ============================================ # WORDPRESS SITES # ============================================ # Pattern: WORDPRESS_{SITE_ID}_{CONFIG_KEY} # Add as many sites as you want (SITE1, SITE2, SITE3, ...) # # How to create a WordPress Application Password: # 1. Log into WordPress admin → Users → Your Profile # 2. Scroll to "Application Passwords" section # 3. Enter name "MCP Hub" → click "Add New" # 4. Copy the generated password (format: xxxx xxxx xxxx xxxx) WORDPRESS_SITE1_URL=https://your-site.com WORDPRESS_SITE1_USERNAME=admin WORDPRESS_SITE1_APP_PASSWORD=xxxx xxxx xxxx xxxx WORDPRESS_SITE1_ALIAS=mysite # Optional: Docker container name for WP-CLI tools (cache flush, transients, etc.) # Find your container name with: docker ps --filter name=wordpress # This lets MCP Hub run wp-cli commands inside your WordPress container. # WORDPRESS_SITE1_CONTAINER=wordpress-container-name # Second site example (uncomment to use): # WORDPRESS_SITE2_URL=https://another-site.com # WORDPRESS_SITE2_USERNAME=admin # WORDPRESS_SITE2_APP_PASSWORD=yyyy yyyy yyyy yyyy # WORDPRESS_SITE2_ALIAS=blog # ============================================ # WORDPRESS ADVANCED (database, bulk, system) # ============================================ # Pattern: WORDPRESS_ADVANCED_{SITE_ID}_{CONFIG_KEY} # Provides database operations, bulk operations, and system management. # REQUIRES Docker socket AND container name — all tools use WP-CLI. # # Uses the same credentials as WordPress, but the CONTAINER key is REQUIRED. # WORDPRESS_ADVANCED_SITE1_URL=https://your-site.com # WORDPRESS_ADVANCED_SITE1_USERNAME=admin # WORDPRESS_ADVANCED_SITE1_APP_PASSWORD=xxxx xxxx xxxx xxxx # WORDPRESS_ADVANCED_SITE1_CONTAINER=wordpress-container-name # WORDPRESS_ADVANCED_SITE1_ALIAS=mysite-advanced # ============================================ # WOOCOMMERCE STORES # ============================================ # Pattern: WOOCOMMERCE_{STORE_ID}_{CONFIG_KEY} # WooCommerce is a separate plugin — uses Consumer Key/Secret, not App Passwords. # # Create keys: WooCommerce → Settings → Advanced → REST API → Add Key # WOOCOMMERCE_STORE1_URL=https://your-store.com # WOOCOMMERCE_STORE1_CONSUMER_KEY=ck_xxxxx # WOOCOMMERCE_STORE1_CONSUMER_SECRET=cs_xxxxx # WOOCOMMERCE_STORE1_ALIAS=mystore # ============================================ # OTHER PLUGINS (uncomment to use) # ============================================ # All plugins auto-discover their environment variables at startup. # Pattern: {PLUGIN_TYPE}_{INSTANCE_ID}_{CONFIG_KEY} # --- Gitea --- # GITEA_REPO1_URL=https://git.example.com # GITEA_REPO1_TOKEN=your_gitea_token # GITEA_REPO1_ALIAS=mygitea # --- n8n --- # N8N_INSTANCE1_URL=https://n8n.example.com # N8N_INSTANCE1_API_KEY=your_n8n_api_key # N8N_INSTANCE1_ALIAS=myn8n # --- Supabase --- # SUPABASE_PROJECT1_URL=https://xxxxx.supabase.co # SUPABASE_PROJECT1_API_KEY=your_supabase_api_key # SUPABASE_PROJECT1_SERVICE_ROLE=your_service_role_key # SUPABASE_PROJECT1_ALIAS=mysupabase # --- OpenPanel --- # OPENPANEL_INSTANCE1_URL=https://openpanel.example.com # OPENPANEL_INSTANCE1_CLIENT_ID=your_client_id # OPENPANEL_INSTANCE1_CLIENT_SECRET=your_client_secret # OPENPANEL_INSTANCE1_ALIAS=myopenpanel # --- Appwrite --- # APPWRITE_PROJECT1_URL=https://appwrite.example.com # APPWRITE_PROJECT1_API_KEY=your_appwrite_api_key # APPWRITE_PROJECT1_PROJECT_ID=your_project_id # APPWRITE_PROJECT1_ALIAS=myappwrite # --- Directus --- # DIRECTUS_INSTANCE1_URL=https://directus.example.com # DIRECTUS_INSTANCE1_TOKEN=your_directus_token # DIRECTUS_INSTANCE1_ALIAS=mydirectus # ============================================ # 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 # ============================================ # ADVANCED (optional — defaults are fine) # ============================================ # Logging LOG_LEVEL=INFO # Rate limits (per client) # RATE_LIMIT_PER_MINUTE=60 # RATE_LIMIT_PER_HOUR=1000 # RATE_LIMIT_PER_DAY=10000