# Przykład To jest przykład w Rust dla serwera MCP Tak wygląda część kalkulatora: ```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() } } } ``` ## Instalacja Uruchom następujące polecenie: ```bash cargo build ``` ## Uruchomienie ```bash cargo run ``` **Zastrzeżenie**: Ten dokument został przetłumaczony za pomocą usługi tłumaczenia AI [Co-op Translator](https://github.com/Azure/co-op-translator). Chociaż dokładamy wszelkich starań, aby tłumaczenie było precyzyjne, prosimy pamiętać, że automatyczne tłumaczenia mogą zawierać błędy lub nieścisłości. Oryginalny dokument w jego rodzimym języku powinien być uznawany za wiarygodne źródło. W przypadku informacji o kluczowym znaczeniu zaleca się skorzystanie z profesjonalnego tłumaczenia przez człowieka. Nie ponosimy odpowiedzialności za jakiekolwiek nieporozumienia lub błędne interpretacje wynikające z użycia tego tłumaczenia.