Skip to content

Configuration

The server reads ./config.yaml by default (override with --config). Environment variables are interpolated at load time using ${VAR_NAME} syntax.

Full schema

vmanage:
  host: sandbox-sdwan-2.cisco.com   # required
  port: 443                         # default: 8443
  verify_ssl: false                 # default: false
  username: "${VMANAGE_USERNAME}"   # required (use env var)
  password: "${VMANAGE_PASSWORD}"   # required (use env var)
  use_jwt: false                    # default: true. Set to false for vManage < 20.18.1.

sdwan:
  specs_dir: ./specs                # default: ./specs
  active_version: "20.10"           # required — must match a folder in specs_dir
  tag_granularity: section          # default: "section". Options: "section" | "tag"

transport:
  mode: stdio                       # default: stdio. Options: stdio | sse | streamable-http
  host: 127.0.0.1                   # default. Bind address for HTTP transports.
  port: 8000                        # default. Bind port for HTTP transports.

Environment variables

Variable Used by
VMANAGE_USERNAME ${VMANAGE_USERNAME} in config.yaml
VMANAGE_PASSWORD ${VMANAGE_PASSWORD} in config.yaml

.env is auto-loaded if present (via python-dotenv).

Precedence

CLI flags override config.yaml. Anything missing from both falls back to the dataclass defaults shown above.