mcp_runner/config/mod.rs
1//! Configuration module for MCP Runner.
2//!
3//! This module handles parsing, validation, and access to configuration
4//! settings for MCP servers. It supports loading configurations from files
5//! or strings in JSON format.
6//!
7//! # Examples
8//!
9//! Loading a configuration from a file:
10//!
11//! ```no_run
12//! use mcp_runner::config::Config;
13//!
14//! let config = Config::from_file("config.json").unwrap();
15//! println!("Loaded configuration with {} servers", config.mcp_servers.len());
16//! ```
17//!
18//! Creating a configuration programmatically:
19//! ```
20//! use mcp_runner::{McpRunner, config::{Config, ServerConfig}};
21//! use std::collections::HashMap;
22//!
23//! let mut servers = HashMap::new();
24//!
25//! let server_config = ServerConfig {
26//! command: "uvx".to_string(),
27//! args: vec!["mcp-server-fetch".to_string()],
28//! env: HashMap::new(),
29//! };
30//!
31//! servers.insert("fetch".to_string(), server_config);
32//! // sse_proxy is optional, so we can use None
33//! let config = Config {
34//! mcp_servers: servers,
35//! sse_proxy: None,
36//! };
37//! let runner = McpRunner::new(config);
38//! ```
39mod parser;
40pub mod validator;
41
42pub use parser::{AuthConfig, BearerAuthConfig, Config, SSEProxyConfig, ServerConfig};
43pub use parser::{DEFAULT_ADDRESS, DEFAULT_PORT, DEFAULT_WORKERS}; // Export the constants
44pub use validator::validate_config;