|
| 1 | +# Copyright (c) 2026 Chris Ahrendt |
| 2 | +# SPDX-License-Identifier: MIT |
| 3 | +# |
| 4 | +# Copy to .env and fill in. |
| 5 | + |
| 6 | +# ── MCP server ──────────────────────────────────────────────────────────────── |
| 7 | +# Bearer token used by claude.ai to call the MCP server. Min 32 chars. |
| 8 | +# Generate with: python -c "import secrets; print(secrets.token_urlsafe(48))" |
| 9 | +MCP_API_KEY= |
| 10 | + |
| 11 | +# Bind address and port for the MCP server. |
| 12 | +MCP_HOST=0.0.0.0 |
| 13 | +MCP_PORT=8000 |
| 14 | + |
| 15 | +# Public URLs (only needed when behind a TLS reverse proxy). |
| 16 | +# MCP_SERVER_URL=https://mcp.example.com |
| 17 | +# MCP_ISSUER_URL=https://mcp.example.com |
| 18 | + |
| 19 | +# ── Couchbase cluster (single-cluster mode) ─────────────────────────────────── |
| 20 | +CB_ANALYTICS_HOST=localhost |
| 21 | +CB_ANALYTICS_USERNAME=Administrator |
| 22 | +CB_ANALYTICS_PASSWORD=password |
| 23 | +CB_ANALYTICS_CLUSTER_NAME=default |
| 24 | +CB_ANALYTICS_TLS=false |
| 25 | +CB_ANALYTICS_VERIFY_SSL=true |
| 26 | +CB_ANALYTICS_MGMT_PORT=8091 |
| 27 | +CB_ANALYTICS_ANALYTICS_PORT=8095 |
| 28 | +CB_ANALYTICS_TIMEOUT_SECONDS=60 |
| 29 | +CB_ANALYTICS_MAX_RETRIES=3 |
| 30 | + |
| 31 | +# Multi-cluster mode (overrides single-cluster vars if set). |
| 32 | +# CB_ANALYTICS_CLUSTERS_FILE=/app/config/clusters.json |
| 33 | + |
| 34 | +# ── Capella Management API (optional, enables capella_* tools) ──────────────── |
| 35 | +# CB_CAPELLA_API_KEY_SECRET=your-capella-api-key |
| 36 | +# CB_CAPELLA_BASE_URL=https://cloudapi.cloud.couchbase.com |
| 37 | + |
| 38 | +# ── GUI ─────────────────────────────────────────────────────────────────────── |
| 39 | +# Enable the admin/query GUI in the same process as the MCP server. |
| 40 | +GUI_ENABLED=true |
| 41 | +GUI_HOST=0.0.0.0 |
| 42 | +GUI_PORT=8080 |
| 43 | + |
| 44 | +# Login credentials for the GUI (used for admin/query access). |
| 45 | +GUI_USERNAME=admin |
| 46 | +GUI_PASSWORD=changeme |
| 47 | + |
| 48 | +# Secret used to sign GUI sessions. Generate with: |
| 49 | +# python -c "import secrets; print(secrets.token_urlsafe(48))" |
| 50 | +GUI_SESSION_SECRET= |
| 51 | + |
| 52 | +# ── Observability ───────────────────────────────────────────────────────────── |
| 53 | +LOG_LEVEL=INFO # DEBUG | INFO | WARNING | ERROR |
| 54 | +LOG_FORMAT=json # json | console |
| 55 | +LOG_FILE= # leave blank to log only to stdout |
| 56 | + |
| 57 | +AUDIT_LOG_FILE=./audit.log # Where to append audit records |
| 58 | +AUDIT_LOG_ENABLED=true |
| 59 | + |
| 60 | +# OpenTelemetry tracing |
| 61 | +OTEL_ENABLED=false |
| 62 | +# OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318 |
| 63 | +OTEL_SERVICE_NAME=cb-analytics-mcp |
| 64 | + |
| 65 | +# Prometheus metrics endpoint |
| 66 | +METRICS_ENABLED=true |
| 67 | +METRICS_PORT=9100 |
0 commit comments