Files
qiming/qiming-mcp-proxy/mcp-common/src/config.rs
2026-06-01 13:03:20 +08:00

52 lines
1.2 KiB
Rust

//! 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<Vec<String>>,
/// 环境变量(来自 MCP JSON 配置)
pub env: Option<HashMap<String, String>>,
/// 工具过滤配置
#[serde(skip_serializing_if = "Option::is_none")]
pub tool_filter: Option<ToolFilter>,
}
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<String>) -> Self {
self.args = Some(args);
self
}
/// 设置环境变量
pub fn with_env(mut self, env: HashMap<String, String>) -> Self {
self.env = Some(env);
self
}
/// 设置工具过滤器
pub fn with_tool_filter(mut self, filter: ToolFilter) -> Self {
self.tool_filter = Some(filter);
self
}
}