pmcp 2.2.0

High-quality Rust SDK for Model Context Protocol (MCP) with full TypeScript SDK compatibility
Documentation
//! Test the Currency Server manually
//!
//! This demonstrates what the currency server does by showing the MCP protocol
//! messages it expects and the responses it provides.

use serde_json::json;

fn main() {
    println!("🏦 EU Currency MCP Server - What It Does");
    println!("=========================================\n");

    println!("The currency server is an MCP (Model Context Protocol) server that provides");
    println!("4 powerful tools for currency analysis. Here's what each tool does:\n");

    // Tool 1: get_rates
    println!("💱 TOOL 1: get_rates");
    println!("--------------------");
    println!("Purpose: Get current exchange rates for a base currency");
    println!("Input example:");
    println!(
        "{}",
        serde_json::to_string_pretty(&json!({
            "base": "EUR",
            "symbols": "USD,GBP,CHF"
        }))
        .unwrap()
    );
    println!("\nOutput: Current exchange rates with timestamp");
    println!("Example: EUR → USD: 1.0847, EUR → GBP: 0.8312, etc.\n");

    // Tool 2: analyze_trend
    println!("📈 TOOL 2: analyze_trend");
    println!("------------------------");
    println!("Purpose: Comprehensive currency trend analysis with predictions");
    println!("Input example:");
    println!(
        "{}",
        serde_json::to_string_pretty(&json!({
            "base": "EUR",
            "target": "USD",
            "days": 30,
            "predict_days": 7
        }))
        .unwrap()
    );
    println!("\nOutput: Detailed analysis including:");
    println!("• Current rate and trend direction (↗️ Rising/↘️ Falling/→ Stable)");
    println!("• ASCII sparkline visualization: ▁▂▃▄▅▆▇█▇▆▅▄▃▂");
    println!("• 7-day and 14-day moving averages");
    println!("• Linear regression predictions for next 1-30 days");
    println!("• Statistical analysis (volatility, range, data points)\n");

    // Tool 3: list_currencies
    println!("📋 TOOL 3: list_currencies");
    println!("--------------------------");
    println!("Purpose: List all supported currency codes");
    println!("Input: {{}} (no parameters needed)");
    println!("Output: EUR, USD, GBP, CHF, JPY, CAD, AUD, SEK, NOK, DKK, PLN, CZK, HUF, BGN, RON\n");

    // Tool 4: get_historical
    println!("📅 TOOL 4: get_historical");
    println!("-------------------------");
    println!("Purpose: Get historical exchange rates for a period");
    println!("Input example:");
    println!(
        "{}",
        serde_json::to_string_pretty(&json!({
            "base": "USD",
            "days": 30,
            "symbols": "EUR,GBP"
        }))
        .unwrap()
    );
    println!("\nOutput: Historical rates for each day in the specified period\n");

    println!("🔧 HOW TO USE THE SERVER:");
    println!("=========================");
    println!("1. The server runs as an MCP server (JSON-RPC over stdin/stdout)");
    println!("2. It's designed to be used by MCP-compatible clients like:");
    println!("   • Claude Desktop with MCP integration");
    println!("   • Custom MCP clients");
    println!("   • AI assistants that support MCP protocol");
    println!("3. When you run 'cargo run --example currency_server', it starts");
    println!("   listening for MCP protocol messages on stdin");
    println!("4. The server provides rich, formatted analysis reports with:");
    println!("   • Real-time exchange rates");
    println!("   • Historical trend analysis");
    println!("   • Statistical predictions");
    println!("   • Visual sparkline charts");
    println!("   • Moving averages and volatility metrics\n");

    println!("💡 EXAMPLE ANALYSIS OUTPUT:");
    println!("===========================");
    println!(
        r#"Currency Trend Analysis: EUR → USD
==========================================

📊 Current Rate: 1.0847
📈 Trend: ↗️ Rising  
📅 Analysis Period: 30 days

📉 Rate Visualization:
▂▃▄▅▆▇█▇▆▅▄▃▂▁▂▃▄▅▆▇█▇▆▅▄▃▂▃▄▅▆▇

📋 Moving Averages:
• 7-day MA: 1.0834
• 14-day MA: 1.0821

🔮 Predictions (next 7 days):
Day 1: 1.0851
Day 2: 1.0855  
Day 3: 1.0859
Day 4: 1.0863
Day 5: 1.0867
Day 6: 1.0871
Day 7: 1.0875

💡 Analysis:
• Total data points: 30
• Rate range: 1.0801 - 1.0893  
• Volatility: 0.8465%"#
    );

    println!("\n\n🚀 INTEGRATION:");
    println!("===============");
    println!("This server demonstrates advanced MCP capabilities and can be:");
    println!("• Integrated with AI assistants for financial analysis");
    println!("• Used in trading applications for trend analysis");
    println!("• Extended with real API integration (Frankfurter, Alpha Vantage)");
    println!("• Deployed as part of larger financial analysis pipelines");

    println!("\n✨ The server showcases the power of the PMCP Rust SDK for building");
    println!("   sophisticated financial analysis tools with the MCP protocol!");
}