rmcp-display 0.2.0

Cross-platform MCP server for display/monitor information
Documentation
//! rmcp-display: Cross-platform MCP server for display information
//!
//! Run with: `rmcp-display` (serves on stdio)

use rmcp::ServiceExt;
use rmcp_display::DisplayServer;
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt, EnvFilter};

#[tokio::main]
async fn main() -> anyhow::Result<()> {
    // Initialize tracing (to stderr so it doesn't interfere with stdio transport)
    tracing_subscriber::registry()
        .with(EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("info")))
        .with(tracing_subscriber::fmt::layer().with_writer(std::io::stderr))
        .init();

    tracing::info!("Starting rmcp-display server");

    // Create server and serve on stdio
    let server = DisplayServer::new();
    let service = server.serve(rmcp::transport::stdio()).await?;

    // Wait for shutdown
    service.waiting().await?;

    tracing::info!("rmcp-display server stopped");
    Ok(())
}