Documentation Index
Fetch the complete documentation index at: https://docs.mcphub.app/llms.txt
Use this file to discover all available pages before exploring further.
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 |
DISABLE_WEB | false | Set to true to disable the bundled dashboard UI while keeping backend/API and MCP endpoints available |
TRUST_PROXY | auto | Express proxy trust setting for reverse-proxy deployments. Accepts false, true, a hop count such as 1 or 2, or named presets like loopback, linklocal, uniquelocal. Defaults to 1 when running inside Docker/Kubernetes and false otherwise. |
MCPHUB_SETTING_PATH | | Path to the MCPHub settings |
NODE_ENV | development | Application environment (development, production, test) |
PORT=3000
INIT_TIMEOUT=300000
BASE_PATH=/api
READONLY=true
DISABLE_WEB=true
TRUST_PROXY=1
MCPHUB_SETTING_PATH=/path/to/settings
NODE_ENV=production
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. |
ADMIN_PASSWORD=your-secure-admin-password
JWT Configuration
| Variable | Default | Description |
|---|
JWT_SECRET | - | Secret key for JWT token signing (required) |
JWT_SECRET=your-super-secret-key-change-this-in-production
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. |
# Limit truncation to 510 tokens to match a LocalAI batch_size=512 setup
EMBEDDING_MAX_TOKENS=510
Configuration Examples
Development Environment
# .env.development
NODE_ENV=development
PORT=3000
# Auth
JWT_SECRET=dev-secret-key
Production Environment
# .env.production
NODE_ENV=production
PORT=3000
# Security
JWT_SECRET=your-super-secure-production-secret
Docker Environment
# .env.docker
NODE_ENV=production
PORT=3000
# Security
JWT_SECRET_FILE=/run/secrets/jwt_secret
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:
BASE_URL=https://api.example.com
API_ENDPOINT=${BASE_URL}/v1
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