//! MCP 服务配置 use crate::ToolFilter; use std::collections::HashMap; /// MCP 服务配置 #[derive(Clone, Debug, serde::Serialize, serde::Deserialize)] pub struct McpServiceConfig { /// 服务名称 pub name: String, /// 启动命令 pub command: String, /// 命令参数 pub args: Option>, /// 环境变量(来自 MCP JSON 配置) pub env: Option>, /// 工具过滤配置 #[serde(skip_serializing_if = "Option::is_none")] pub tool_filter: Option, } impl McpServiceConfig { /// 创建新配置 pub fn new(name: String, command: String) -> Self { Self { name, command, args: None, env: None, tool_filter: None, } } /// 设置参数 pub fn with_args(mut self, args: Vec) -> Self { self.args = Some(args); self } /// 设置环境变量 pub fn with_env(mut self, env: HashMap) -> Self { self.env = Some(env); self } /// 设置工具过滤器 pub fn with_tool_filter(mut self, filter: ToolFilter) -> Self { self.tool_filter = Some(filter); self } }