Skip to main content

mcp_streamable_proxy/
config.rs

1//! Configuration types for Streamable HTTP proxy
2
3use serde::{Deserialize, Serialize};
4
5/// Streamable HTTP server configuration
6#[derive(Debug, Clone, Serialize, Deserialize)]
7pub struct StreamableConfig {
8    /// Bind address for the HTTP server
9    #[serde(default = "default_bind_addr")]
10    pub bind_addr: String,
11
12    /// Enable stateful mode (session management)
13    #[serde(default = "default_stateful_mode")]
14    pub stateful_mode: bool,
15
16    /// Quiet mode (suppress startup messages)
17    #[serde(default)]
18    pub quiet: bool,
19}
20
21impl Default for StreamableConfig {
22    fn default() -> Self {
23        Self {
24            bind_addr: default_bind_addr(),
25            stateful_mode: default_stateful_mode(),
26            quiet: false,
27        }
28    }
29}
30
31fn default_bind_addr() -> String {
32    "127.0.0.1:3000".to_string()
33}
34
35fn default_stateful_mode() -> bool {
36    true // Enable stateful mode by default for this module
37}