import gradio as gr def calculator(num1: float, num2: float, operation: str) -> str: """ Perform basic arithmetic operations: - add: num1 + num2 - subtract: num1 - num2 - multiply: num1 * num2 - divide: num1 / num2 (with zero-check) Args: num1: first number num2: second number operation: one of "add", "subtract", "multiply", "divide" Returns: The result as a float, or an error message string. """ if operation == "add": return str(num1 + num2) elif operation == "subtract": return str(num1 - num2) elif operation == "multiply": return str(num1 * num2) elif operation == "divide": if num2 == 0: return "Error: Division by zero" return str(num1 / num2) else: return f"Error: Unknown operation '{operation}'" demo = gr.Interface( fn=calculator, inputs=[ gr.Number(value=0.0, label="First Number"), gr.Number(value=0.0, label="Second Number"), gr.Dropdown(["add", "subtract", "multiply", "divide"], label="Operation"), ], outputs=gr.Textbox(label="Result"), title="🧮 Simple Calculator", description="Enter two numbers and choose an operation." ) if __name__ == "__main__": demo.launch(mcp_server=True)