#![allow(clippy::multiple_crate_versions)]
use tracing_subscriber::EnvFilter;
use stygian_mcp::aggregator::McpAggregator;
fn maybe_print_version_and_exit() -> bool {
match std::env::args().nth(1).as_deref() {
Some("--version" | "-V") => {
println!("stygian-mcp {}", env!("CARGO_PKG_VERSION"));
true
}
_ => false,
}
}
#[tokio::main]
async fn main() -> anyhow::Result<()> {
if maybe_print_version_and_exit() {
return Ok(());
}
tracing_subscriber::fmt()
.with_env_filter(
EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("info")),
)
.with_writer(std::io::stderr)
.init();
let aggregator = McpAggregator::try_new()
.await
.map_err(|e| anyhow::anyhow!("failed to start stygian-mcp aggregator: {e}"))?;
aggregator
.run()
.await
.map_err(|e| anyhow::anyhow!("stygian-mcp aggregator exited with error: {e}"))
}