pub mod cloud_tools;
pub mod database_tools;
pub mod enterprise_tools;
pub mod error;
pub mod server;
pub use error::McpError;
pub use server::RedisCtlMcp;
pub async fn serve_stdio(
profile: Option<&str>,
read_only: bool,
database_url: Option<&str>,
) -> anyhow::Result<()> {
use rmcp::{ServiceExt, transport::stdio};
use tracing::info;
info!(
profile = profile,
read_only = read_only,
database_url = database_url.map(|_| "[redacted]"),
"Starting MCP server"
);
let server = RedisCtlMcp::new(profile, read_only, database_url)?;
let service = server.serve(stdio()).await?;
service.waiting().await?;
Ok(())
}