use anyhow::Result;
use rmcp::{ServiceExt, transport::stdio};
use crate::service::RudofMcpService;
pub async fn run_mcp_stdio() -> Result<()> {
tracing::debug!("Initializing MCP stdio server");
let server = RudofMcpService::new();
tracing::debug!("RudofMcpService created");
let service = server.serve(stdio()).await.map_err(|e| {
tracing::error!("Failed to initialize stdio transport: {}", e);
e
})?;
tracing::info!("MCP stdio server ready, waiting for messages on stdin");
service.waiting().await.map_err(|e| {
tracing::error!("MCP stdio server error: {}", e);
e
})?;
tracing::debug!("MCP stdio server shutdown complete");
Ok(())
}