use std::process::ExitCode;
use paigasus_helikon_mcp::McpAgentServer;
use crate::cli::McpServeArgs;
use crate::registry::AgentRegistry;
pub async fn serve(args: McpServeArgs) -> anyhow::Result<ExitCode> {
let registry = AgentRegistry::load(&args.agents)?;
let agent = registry.build_agent(&args.agent)?;
let server = McpAgentServer::with_default_ctx(agent).name(format!("helikon-{}", args.agent));
match args.http {
Some(addr) => server.serve_streamable_http(&addr).await?,
None => server.serve_stdio().await?,
}
Ok(ExitCode::SUCCESS)
}