# LLM Fusion MCP - Universal Tool Orchestrator Configuration # Configuration for providers, MCP servers, and HTTP API settings # ============================================================================= # LLM PROVIDER CONFIGURATION # ============================================================================= providers: openai: api_key: "${OPENAI_API_KEY}" base_url: "https://api.openai.com/v1" models: - "gpt-4o" - "gpt-4o-mini" - "o3-high" - "o3-low" interface: "openai" default_model: "gpt-4o-mini" gemini: api_key: "${GOOGLE_API_KEY}" base_url: "https://generativelanguage.googleapis.com/v1beta/openai/" models: - "gemini-2.5-flash" - "gemini-2.5-pro" - "gemini-2.0-flash" interface: "openai" default_model: "gemini-2.5-flash" anthropic: api_key: "${ANTHROPIC_API_KEY}" models: - "claude-3.5-sonnet-20241022" - "claude-3.5-haiku-20241022" interface: "native" default_model: "claude-3.5-sonnet-20241022" grok: api_key: "${XAI_API_KEY}" base_url: "https://api.x.ai/v1" models: - "grok-3" - "grok-vision-beta" interface: "native" default_model: "grok-3" # Default provider for requests that don't specify one default_provider: "gemini" # ============================================================================= # MCP SERVER CONFIGURATION # ============================================================================= mcp_servers: # Local STDIO MCP servers filesystem: type: "stdio" command: ["uvx", "mcp-server-filesystem"] args: ["/home/rpm"] namespace: "fs" auto_start: true restart_on_failure: true timeout: 30 git: type: "stdio" command: ["npx", "@modelcontextprotocol/server-git"] namespace: "git" auto_start: true working_directory: "." environment: GIT_EDITOR: "nano" memory: type: "stdio" command: ["npx", "@modelcontextprotocol/server-memory"] namespace: "memory" auto_start: true # Remote HTTP MCP servers (examples) weather: type: "http" url: "https://weather-mcp.example.com" namespace: "weather" headers: Authorization: "Bearer ${WEATHER_API_KEY}" timeout: 15 database: type: "http" url: "https://db-mcp.internal.example.com" namespace: "db" auth: type: "bearer" token: "${DB_MCP_TOKEN}" # MCP server connection settings mcp_settings: max_concurrent_connections: 10 connection_timeout: 30 heartbeat_interval: 60 auto_reconnect: true max_reconnect_attempts: 3 # ============================================================================= # HTTP API SERVER CONFIGURATION # ============================================================================= http_server: host: "0.0.0.0" port: 8000 cors_origins: ["*"] cors_methods: ["GET", "POST", "PUT", "DELETE", "OPTIONS"] cors_headers: ["*"] # Authentication (set to false for development) auth_required: false api_keys: [] # Rate limiting rate_limit: enabled: true requests_per_minute: 100 burst_limit: 20 # Request/Response limits max_request_size: 50 # MB request_timeout: 300 # seconds # Development settings reload: true debug: true # ============================================================================= # PERFORMANCE CONFIGURATION # ============================================================================= performance: # Connection pooling connection_pool_size: 20 max_connections_per_provider: 10 # Caching cache: enabled: true provider_models_ttl: 300 # 5 minutes tool_results_ttl: 60 # 1 minute max_cache_size: 1000 # entries # Concurrency limits max_concurrent_requests: 50 max_concurrent_tools: 20 # Timeouts provider_timeout: 120 tool_timeout: 300 # ============================================================================= # LOGGING CONFIGURATION # ============================================================================= logging: level: "${LOG_LEVEL:INFO}" format: "%(asctime)s - %(name)s - %(levelname)s - %(message)s" # Log files file_logging: enabled: true path: "logs/" max_size: "10MB" backup_count: 5 # Request logging access_log: true error_log: true # Provider-specific logging provider_logs: enabled: true include_request_body: false include_response_body: false # ============================================================================= # MONITORING & HEALTH CHECKS # ============================================================================= monitoring: health_check_interval: 30 metrics_enabled: true # Provider health monitoring provider_health: check_interval: 60 failure_threshold: 3 recovery_threshold: 2 # MCP server health monitoring mcp_health: check_interval: 30 ping_timeout: 5 restart_failed_servers: true