rust-mcp-extra 0.3.3

A companion crate to rust-mcp-sdk offering extra implementations of core traits like SessionStore and EventStore, enabling integration with various database backends and third-party platforms such as AWS Lambda for serverless and cloud-native MCP applications.
Documentation
use rust_mcp_sdk::{
    mcp_icon,
    schema::{
        Implementation, InitializeResult, ServerCapabilities, ServerCapabilitiesTools,
        LATEST_PROTOCOL_VERSION,
    },
};
use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};

pub fn create_server_info(server_name: &str) -> InitializeResult {
    InitializeResult {
        server_info: Implementation {
            name: server_name.to_string(),
            version: "0.1.0".to_string(),
            title: Some(server_name.to_string()),
            description: Some(server_name.to_string()),
            icons: vec![
                mcp_icon!(
                    src = "https://raw.githubusercontent.com/rust-mcp-stack/rust-mcp-sdk/main/assets/rust-mcp-icon.png",
                    mime_type = "image/png",
                    sizes = ["128x128"],
                    theme = "dark"
                )
            ],
            website_url: Some("https://github.com/rust-mcp-stack/rust-mcp-sdk".to_string()),
        },
        capabilities: ServerCapabilities {
            tools: Some(ServerCapabilitiesTools { list_changed: None }),
            ..Default::default()
        },
        meta: None,
        instructions: None,
        protocol_version: LATEST_PROTOCOL_VERSION.to_string(),
    }
}

pub fn enable_tracing() {
    tracing_subscriber::registry()
        .with(
            tracing_subscriber::EnvFilter::try_from_default_env().unwrap_or_else(|_| "info".into()),
        )
        .with(tracing_subscriber::fmt::layer())
        .init();
}