mcp-confluence 1.1.0

MCP server for Confluence integration - create, update, search, and manage Confluence pages
mod client;
mod config;
mod formatters;
mod macros;
mod server;
mod types;

use rmcp::{ServiceExt, transport::stdio};

#[tokio::main]
async fn main() {
    let _ = dotenvy::dotenv();

    tracing_subscriber::fmt()
        .with_env_filter(
            tracing_subscriber::EnvFilter::from_default_env()
                .add_directive(tracing::Level::INFO.into()),
        )
        .with_writer(std::io::stderr)
        .with_ansi(false)
        .init();

    let config = match config::Config::from_env() {
        Ok(c) => c,
        Err(e) => {
            eprintln!("Configuration error: {e}");
            eprintln!("Please set the required environment variables (CONFLUENCE_HOST, CONFLUENCE_API_TOKEN).");
            std::process::exit(1);
        }
    };

    let client = client::ConfluenceClient::new(config);
    let server = server::ConfluenceServer::new(client);

    eprintln!("Confluence MCP Server running on stdio");

    let service = server.serve(stdio()).await.unwrap_or_else(|e| {
        eprintln!("Failed to start MCP service: {e}");
        std::process::exit(1);
    });

    service.waiting().await.unwrap_or_else(|e| {
        eprintln!("MCP service error: {e}");
        std::process::exit(1);
    });
}