use std::env;
use std::path::PathBuf;
#[cfg(feature = "docset")]
use reasonkit_mem::docset::DocsetMcpServer;
#[cfg(feature = "docset")]
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let data_dir = env::var("RKMEM_DATA_DIR")
.map(PathBuf::from)
.unwrap_or_else(|_| {
dirs::data_local_dir()
.unwrap_or_else(|| PathBuf::from("."))
.join("reasonkit")
.join("mem")
});
let allow_write = env::var("RKMEM_MCP_ALLOW_WRITE")
.map(|v| v == "1" || v.eq_ignore_ascii_case("true"))
.unwrap_or(false);
let allow_private_urls = env::var("RKMEM_ALLOW_PRIVATE_URLS")
.map(|v| v == "1" || v.eq_ignore_ascii_case("true"))
.unwrap_or(false);
eprintln!(
"ReasonKit Mem Docset MCP Server starting (data_dir={}, allow_write={}, allow_private_urls={})",
data_dir.display(),
allow_write,
allow_private_urls
);
let mut server = DocsetMcpServer::new(data_dir, allow_write, allow_private_urls);
server.run_stdio().await?;
Ok(())
}
#[cfg(not(feature = "docset"))]
fn main() {
eprintln!("Error: docset feature is not enabled.");
eprintln!("Run with: cargo run --bin rk-mem-docs-mcp --features docset");
std::process::exit(1);
}