# Eksempel Dette er et Rust-eksempel for en MCP-server Her er, hvordan lommeregnerdelen ser ud: ```rust #[derive(Debug, serde::Deserialize, schemars::JsonSchema)] pub struct CalculatorRequest { pub a: f64, pub b: f64, } #[tool_router] impl Calculator { #[tool(description = "Adds a and b")] async fn add( &self, Parameters(CalculatorRequest { a, b }): Parameters, ) -> String { (a + b).to_string() } #[tool(description = "Subtracts b from a")] async fn subtract( &self, Parameters(CalculatorRequest { a, b }): Parameters, ) -> String { (a - b).to_string() } #[tool(description = "Multiply a with b")] async fn multiply( &self, Parameters(CalculatorRequest { a, b }): Parameters, ) -> String { (a * b).to_string() } #[tool(description = "Divides a by b")] async fn divide( &self, Parameters(CalculatorRequest { a, b }): Parameters, ) -> String { if b == 0.0 { "Error: Division by zero".to_string() } else { (a / b).to_string() } } } ``` ## Installation Kør følgende kommando: ```bash cargo build ``` ## Kør ```bash cargo run ``` **Ansvarsfraskrivelse**: Dette dokument er blevet oversat ved hjælp af AI-oversættelsestjenesten [Co-op Translator](https://github.com/Azure/co-op-translator). Selvom vi bestræber os på nøjagtighed, skal du være opmærksom på, at automatiserede oversættelser kan indeholde fejl eller unøjagtigheder. Det originale dokument på dets oprindelige sprog bør betragtes som den autoritative kilde. For kritisk information anbefales professionel menneskelig oversættelse. Vi påtager os intet ansvar for misforståelser eller fejltolkninger, der måtte opstå som følge af brugen af denne oversættelse.