pub mod auth_scenarios;
pub mod scenarios;
use std::process::ExitCode;
fn main() -> ExitCode {
let runtime = match tokio::runtime::Builder::new_current_thread()
.enable_all()
.build()
{
Ok(runtime) => runtime,
Err(error) => {
eprintln!("could not start a runtime: {error}");
return ExitCode::FAILURE;
}
};
let scenario = std::env::var("MCP_CONFORMANCE_SCENARIO").unwrap_or_default();
let Some(url) = std::env::args().nth(1) else {
eprintln!(
"usage: MCP_CONFORMANCE_SCENARIO=<name> conformance_reference_client <server-url>"
);
return ExitCode::FAILURE;
};
match runtime.block_on(scenarios::run(&scenario, &url)) {
Ok(()) => ExitCode::SUCCESS,
Err(error) => {
eprintln!("scenario `{scenario}` failed: {error}");
ExitCode::FAILURE
}
}
}