Skip to content

Configuration Schema Reference

Complete schema reference for MCP Standards Server configuration.

Configuration File Format

The configuration file uses YAML format and is typically located at: - Linux/macOS: ~/.mcp-standards/config.yaml - Windows: %APPDATA%\mcp-standards\config.yaml

Schema Overview

# Root configuration schema
server:          # Server configuration
standards:       # Standards management
validation:      # Validation settings
logging:         # Logging configuration
performance:     # Performance tuning
monitoring:      # Monitoring settings
security:        # Security configuration
integrations:    # External integrations

Server Configuration

server

HTTP server settings for the MCP server.

server:
  host: string           # Server bind address
  port: integer          # Server port number
  enable_cors: boolean   # Enable CORS headers
  cors_origins: [string] # Allowed CORS origins
  workers: integer       # Number of worker processes
  timeout: integer       # Request timeout (seconds)
  max_request_size: string # Maximum request size (e.g., "10MB")

Default values:

server:
  host: "0.0.0.0"
  port: 8080
  enable_cors: true
  cors_origins: ["*"]
  workers: 1
  timeout: 30
  max_request_size: "10MB"

Validation rules: - host: Valid IP address or hostname - port: Integer between 1-65535 - workers: Positive integer - timeout: Positive integer

Standards Configuration

standards

Standards repository and caching settings.

standards:
  repository_url: string     # Git repository URL
  branch: string            # Git branch to use
  local_directory: string   # Local standards path
  sync_interval: integer    # Auto-sync interval (seconds)
  auto_sync: boolean        # Enable automatic syncing
  cache_directory: string   # Cache directory path
  cache_ttl: integer        # Cache TTL (seconds)
  max_cache_size: string    # Maximum cache size
  exclude_patterns: [string] # Exclusion patterns

Default values:

standards:
  repository_url: "https://github.com/williamzujkowski/standards"
  branch: "main"
  local_directory: null
  sync_interval: 3600
  auto_sync: true
  cache_directory: "~/.mcp-standards/cache"
  cache_ttl: 3600
  max_cache_size: "1GB"
  exclude_patterns: []

standards.redis

Redis cache configuration (optional).

standards:
  redis:
    enabled: boolean    # Enable Redis caching
    host: string       # Redis server host
    port: integer      # Redis server port
    db: integer        # Redis database number
    password: string   # Redis password
    ssl: boolean       # Use SSL connection
    timeout: integer   # Connection timeout

Default values:

standards:
  redis:
    enabled: false
    host: "localhost"
    port: 6379
    db: 0
    password: null
    ssl: false
    timeout: 5

Validation Configuration

validation

Code validation behavior settings.

validation:
  auto_fix: boolean          # Enable automatic fixes
  severity_level: string     # Minimum severity (error|warning|info)
  output_format: string      # Default output format
  max_file_size: string      # Maximum file size to validate
  exclude_patterns: [string] # Files to exclude
  include_patterns: [string] # Files to include
  parallel_jobs: integer     # Number of parallel validation jobs
  timeout_per_file: integer  # Timeout per file (seconds)

Default values:

validation:
  auto_fix: false
  severity_level: "warning"
  output_format: "text"
  max_file_size: "10MB"
  exclude_patterns:
    - "**/node_modules/**"
    - "**/*.min.js"
    - "**/dist/**"
    - "**/build/**"
  include_patterns: []
  parallel_jobs: 4
  timeout_per_file: 30

validation.languages

Language-specific validation settings.

validation:
  languages:
    python:
      enabled: boolean
      standards: [string]  # Default standards for Python
      file_extensions: [string]
      max_line_length: integer
    javascript:
      enabled: boolean
      standards: [string]
      file_extensions: [string]
      node_modules_path: string
    typescript:
      enabled: boolean
      standards: [string]
      file_extensions: [string]
      tsconfig_path: string
    go:
      enabled: boolean
      standards: [string]
      file_extensions: [string]
      go_mod_path: string
    rust:
      enabled: boolean
      standards: [string]
      file_extensions: [string]
      cargo_toml_path: string

Logging Configuration

logging

Logging behavior and output settings.

logging:
  level: string              # Log level (DEBUG|INFO|WARNING|ERROR)
  file: string               # Log file path
  max_file_size: string      # Maximum log file size
  backup_count: integer      # Number of backup files
  format: string             # Log format string
  date_format: string        # Date format string
  enable_colors: boolean     # Enable colored output
  log_requests: boolean      # Log HTTP requests
  log_validation_details: boolean # Log detailed validation info

Default values:

logging:
  level: "INFO"
  file: "~/.mcp-standards/mcp-server.log"
  max_file_size: "10MB"
  backup_count: 5
  format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
  date_format: "%Y-%m-%d %H:%M:%S"
  enable_colors: true
  log_requests: false
  log_validation_details: false

Performance Configuration

performance

Performance tuning settings.

performance:
  max_workers: integer       # Maximum worker threads
  batch_size: integer        # Batch processing size
  memory_limit: string       # Memory limit per process
  cpu_limit: float          # CPU limit (0.0-1.0)
  gc_threshold: float       # Garbage collection threshold
  enable_profiling: boolean # Enable performance profiling
  profile_output: string    # Profiling output directory

Default values:

performance:
  max_workers: 4
  batch_size: 100
  memory_limit: "1GB"
  cpu_limit: 0.8
  gc_threshold: 0.7
  enable_profiling: false
  profile_output: "~/.mcp-standards/profiles"

Monitoring Configuration

monitoring

Monitoring and metrics settings.

monitoring:
  enabled: boolean          # Enable monitoring
  metrics_port: integer     # Prometheus metrics port
  metrics_path: string      # Metrics endpoint path
  health_check_enabled: boolean # Enable health checks
  health_check_port: integer    # Health check port
  health_check_path: string     # Health check endpoint
  telemetry_enabled: boolean    # Enable telemetry collection
  telemetry_endpoint: string    # Telemetry endpoint URL

Default values:

monitoring:
  enabled: false
  metrics_port: 9090
  metrics_path: "/metrics"
  health_check_enabled: true
  health_check_port: 8080
  health_check_path: "/health"
  telemetry_enabled: false
  telemetry_endpoint: null

Security Configuration

security

Security and authentication settings.

security:
  authentication:
    enabled: boolean        # Enable authentication
    method: string         # Auth method (api_key|jwt|oauth)
    api_key: string        # API key for authentication
    jwt_secret: string     # JWT signing secret
    token_expiry: integer  # Token expiry time (seconds)
  authorization:
    enabled: boolean       # Enable authorization
    roles: object         # Role definitions
  rate_limiting:
    enabled: boolean       # Enable rate limiting
    requests_per_minute: integer # Request limit per minute
    burst_size: integer    # Burst size allowance
  ssl:
    enabled: boolean       # Enable SSL/TLS
    cert_file: string     # SSL certificate file
    key_file: string      # SSL private key file
    ca_file: string       # CA certificate file

Default values:

security:
  authentication:
    enabled: false
    method: "api_key"
    api_key: null
    jwt_secret: null
    token_expiry: 86400
  authorization:
    enabled: false
    roles: {}
  rate_limiting:
    enabled: false
    requests_per_minute: 100
    burst_size: 20
  ssl:
    enabled: false
    cert_file: null
    key_file: null
    ca_file: null

Integration Configuration

integrations

External service integrations.

integrations:
  github:
    enabled: boolean       # Enable GitHub integration
    token: string         # GitHub personal access token
    organization: string  # GitHub organization
    webhook_secret: string # Webhook secret
  slack:
    enabled: boolean      # Enable Slack integration
    webhook_url: string   # Slack webhook URL
    channel: string       # Default Slack channel
  email:
    enabled: boolean      # Enable email notifications
    smtp_host: string     # SMTP server host
    smtp_port: integer    # SMTP server port
    username: string      # SMTP username
    password: string      # SMTP password
    from_address: string  # From email address

Environment Variable Overrides

Any configuration value can be overridden using environment variables with the prefix MCP_:

# Server configuration
MCP_SERVER_HOST=127.0.0.1
MCP_SERVER_PORT=8081

# Standards configuration
MCP_STANDARDS_REPOSITORY_URL=https://github.com/custom/standards
MCP_STANDARDS_CACHE_DIRECTORY=/custom/cache

# Validation configuration
MCP_VALIDATION_AUTO_FIX=true
MCP_VALIDATION_SEVERITY_LEVEL=error

# Nested values use double underscores
MCP_STANDARDS__REDIS__ENABLED=true
MCP_STANDARDS__REDIS__HOST=redis.example.com

Validation Rules

Data Types

  • string: Text values, support environment variable substitution
  • integer: Whole numbers
  • float: Decimal numbers
  • boolean: true/false values
  • array: List of values
  • object: Nested configuration

Size Formats

Size values support human-readable formats: - 1024 (bytes) - 1KB, 1MB, 1GB, 1TB - 1K, 1M, 1G, 1T (binary)

Time Formats

Time values support various formats: - 30 (seconds) - 30s (seconds) - 5m (minutes) - 1h (hours) - 1d (days)

Path Expansion

Paths support tilde expansion: - ~/ expands to user home directory - $HOME/ expands to home directory - Environment variables: $CACHE_DIR/path

Configuration Validation

Validate configuration file:

# Validate current configuration
mcp-standards config validate

# Validate specific file
mcp-standards config validate --config custom-config.yaml

# Show validation errors in detail
mcp-standards config validate --verbose

Example Configurations

Development Environment

server:
  host: "127.0.0.1"
  port: 8080
  enable_cors: true

standards:
  auto_sync: true
  sync_interval: 300  # 5 minutes

validation:
  auto_fix: true
  severity_level: "info"

logging:
  level: "DEBUG"
  log_validation_details: true

performance:
  enable_profiling: true

Production Environment

server:
  host: "0.0.0.0"
  port: 80
  workers: 4
  enable_cors: false

standards:
  sync_interval: 3600  # 1 hour
  redis:
    enabled: true
    host: "redis.internal"

validation:
  auto_fix: false
  severity_level: "error"
  parallel_jobs: 8

logging:
  level: "INFO"
  log_requests: true

security:
  authentication:
    enabled: true
    method: "api_key"
  rate_limiting:
    enabled: true
    requests_per_minute: 1000

monitoring:
  enabled: true
  telemetry_enabled: true

CI/CD Environment

server:
  host: "0.0.0.0"
  port: 8080
  timeout: 60

standards:
  auto_sync: false  # Use pre-synced standards
  cache_directory: "/tmp/mcp-cache"

validation:
  auto_fix: false
  output_format: "sarif"
  parallel_jobs: 2
  timeout_per_file: 10

logging:
  level: "WARNING"
  file: "/dev/stdout"

performance:
  memory_limit: "512MB"
  cpu_limit: 0.5

For more configuration examples and troubleshooting, see the Configuration Guide.