Environment Variables
MCPHub uses environment variables for configuration. This guide covers all available variables and their usage.Core Application Settings
Server Configuration
| Variable | Default | Description |
|---|---|---|
PORT | 3000 | Port number for the HTTP server |
INIT_TIMEOUT | 300000 | Initial timeout for the application |
BASE_PATH | '' | The base path of the application |
READONLY | false | Set to true to enable readonly mode |
MCPHUB_SETTING_PATH | Path to the MCPHub settings | |
NODE_ENV | development | Application environment (development, production, test) |
Authentication & Security
Admin Password
| Variable | Default | Description |
|---|---|---|
ADMIN_PASSWORD | (random) | Password for the default admin user. If not set, a cryptographically random 24-character password is generated on first launch and printed to the server logs. |
JWT Configuration
| Variable | Default | Description |
|---|---|---|
JWT_SECRET | - | Secret key for JWT token signing (required) |
Smart Routing & Embeddings
Embedding Configuration
| Variable | Type | Default | Description |
|---|---|---|---|
SMART_ROUTING_ENABLED | boolean | false | Enable the smart routing feature |
EMBEDDING_MODEL | string | text-embedding-3-small | Embedding model name used for vector search |
AZURE_OPENAI_EMBEDDING_MODEL | string | text-embedding-3-small | The actual OpenAI model name deployed in Azure (e.g. text-embedding-3-small). Azure deployment names are arbitrary identifiers, so this field tells MCPHub which OpenAI model is behind the deployment, enabling correct token-limit enforcement and tokenizer selection. Only used when SMART_ROUTING_EMBEDDING_PROVIDER=azure_openai. |
EMBEDDING_MAX_TOKENS | number | By model | Maximum tokens for text truncation before generating embeddings. Overrides the per-model default. Useful to match the batch_size of a local inference server (e.g. LocalAI, LM Studio). When unset, the limit is resolved automatically: text-embedding-* → 8191, bge-m3 → 8192, gemini-embedding-001 → 2048, other BGE models → 512, unknown models → 512. |
Configuration Examples
Development Environment
Production Environment
Docker Environment
Environment Variable Loading
MCPHub loads environment variables in the following order:- System environment variables
.env.local(ignored by git).env.{NODE_ENV}(e.g.,.env.production).env
Using dotenv-expand
MCPHub supports variable expansion:Security Best Practices
- Never commit secrets to version control
- Use strong, unique secrets for production
- Rotate secrets regularly
- Use environment-specific files
- Validate all environment variables at startup
- Use Docker secrets for container deployments