use std::collections::HashMap;
use serde::Deserialize;
#[derive(Debug, Clone, Deserialize)]
#[serde(untagged)]
pub enum McpServerConfig {
Command {
command: String,
#[serde(default)]
args: Vec<String>,
#[serde(default)]
env: HashMap<String, String>,
#[serde(default)]
allow_external_paths: bool,
},
Url {
url: String,
#[serde(default)]
headers: HashMap<String, String>,
#[serde(default)]
allow_external_paths: bool,
},
}
impl McpServerConfig {
pub fn allow_external_paths(&self) -> bool {
match self {
McpServerConfig::Command {
allow_external_paths,
..
}
| McpServerConfig::Url {
allow_external_paths,
..
} => *allow_external_paths,
}
}
}