# Example configuration file for nomad-mcp-pack # # Place this file in one of the following locations: # - ./config.yaml (current directory) # - ~/.nomad-mcp-pack/config.yaml (home directory) # # Configuration hierarchy (highest to lowest precedence): # 1. Command-line flags # 2. Environment variables (NOMAD_MCP_PACK_*) # 3. Configuration file (this file) # 4. Default values # # Environment variables use underscores and NOMAD_MCP_PACK_ prefix: # - registry_url -> NOMAD_MCP_PACK_REGISTRY_URL # - watch.poll_interval -> NOMAD_MCP_PACK_WATCH_POLL_INTERVAL # ============================================================================= # GLOBAL CONFIGURATION # ============================================================================= # MCP Registry URL (default: https://registry.modelcontextprotocol.io/) registry_url: https://registry.modelcontextprotocol.io/ # Default output directory for generated packs (default: ./packs) output_dir: ./packs # Output type (default: packdir) # - packdir: Generate packs as directories # - archive: Generate packs as ZIP archives output_type: packdir # Log level (default: info) # Valid values: debug, info, warn, error log_level: info # Environment mode (default: prod) # - dev: Human-readable text logging with source location # - prod: Machine-readable JSON logging env: prod # Dry run mode - show what would be done without making changes (default: false) dry_run: false # Force overwrite existing pack directories/archives (default: false) force_overwrite: false # Allow generation of packs for deprecated servers (default: false) allow_deprecated: false # Suppress user-facing output - errors still shown (default: false) # When enabled, only errors and warnings are displayed silent: false # ============================================================================= # GENERATE COMMAND CONFIGURATION # ============================================================================= generate: # Default package type when generating from servers with multiple packages (default: oci) # Valid values: npm, pypi, oci, nuget package_type: oci # Default transport type when generating from servers with multiple transports (default: http) # Valid values: stdio, http, sse transport_type: http # ============================================================================= # SERVER COMMAND CONFIGURATION # ============================================================================= server: # Server address to bind to (default: :8080) addr: :8080 # Read timeout in seconds (default: 10) read_timeout: 10 # Write timeout in seconds (default: 10) write_timeout: 10 # ============================================================================= # WATCH COMMAND CONFIGURATION # ============================================================================= watch: # Poll interval in seconds - minimum 30 seconds (default: 300) poll_interval: 300 # Filter by server names (default: empty = all servers) # NOTE: Wildcards are NOT supported - use exact server names # Examples: # - ["io.github.containers/kubernetes-mcp-server"] - only this specific server # - ["ai.waystation/gmail", "com.make/mcp-server"] - multiple specific servers filter_server_names: [] # Filter by package types (default: all supported types) # Valid values: npm, pypi, oci, nuget filter_package_types: - npm - pypi - oci - nuget # Filter by transport types (default: all supported types) # Valid values: stdio, http, sse filter_transport_types: - stdio - http - sse # State file to persist watch state between runs (default: ./watch.json) state_file: ./watch.json # Maximum concurrent pack generations (default: 5, minimum: 1) max_concurrent: 5 # Enable Terminal UI mode for interactive interface (default: false) # When enabled, shows progress and statistics in a terminal UI enable_tui: false # ============================================================================= # EXAMPLE CONFIGURATIONS # ============================================================================= # Example 1: Development setup with verbose logging # env: dev # log_level: debug # output_dir: ./dev-packs # force_overwrite: true # Example 2: Production watch setup for specific servers # watch: # poll_interval: 600 # 10 minutes # filter_server_names: # - "io.github.containers/kubernetes-mcp-server" # - "ai.waystation/gmail" # - "com.make/mcp-server" # filter_package_types: ["oci"] # filter_transport_types: ["http", "sse"] # max_concurrent: 10 # enable_tui: true # Example 3: Continuous integration setup # env: prod # log_level: info # output_type: archive # allow_deprecated: false # dry_run: false # silent: true # Suppress user output for CI/CD environments # Example 4: Silent development setup # silent: true # Only show errors and warnings # env: dev # log_level: debug # Debug logs still shown in stderr