use crate::cli::args::ServerArgs;
use crate::error::{AgitError, Result};
use crate::mcp::McpServer;
pub fn execute(args: ServerArgs) -> Result<()> {
let cwd = std::env::current_dir()?;
let agit_dir = cwd.join(".agit");
if !agit_dir.exists() {
return Err(AgitError::NotInitialized);
}
if args.verbose {
eprintln!("Starting AGIT MCP server...");
eprintln!("Project: {}", cwd.display());
eprintln!("Listening on stdio for JSON-RPC requests...");
}
if args.verbose {
use tracing_subscriber::EnvFilter;
tracing_subscriber::fmt()
.with_env_filter(
EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("agit=debug")),
)
.with_writer(std::io::stderr)
.init();
}
let server = McpServer::new(cwd, args.verbose);
server.run()?;
Ok(())
}