"""
Example Lambda Function: Calculator Tool
This Lambda function can be wrapped as an MCP tool via the gateway
"""
import json
import logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def lambda_handler(event, context):
"""
Calculator Lambda function
Expected input:
{
"operation": "add", # add, subtract, multiply, divide
"a": 10,
"b": 5
}
Returns:
{
"operation": "add",
"a": 10,
"b": 5,
"result": 15
}
"""
try:
# Parse input
if isinstance(event, str):
event = json.loads(event)
operation = event.get('operation', 'add').lower()
a = float(event.get('a', 0))
b = float(event.get('b', 0))
logger.info(f"Calculator operation: {operation}({a}, {b})")
# Perform calculation
operations = {
'add': lambda x, y: x + y,
'subtract': lambda x, y: x - y,
'multiply': lambda x, y: x * y,
'divide': lambda x, y: x / y if y != 0 else None
}
if operation not in operations:
raise ValueError(f"Unknown operation: {operation}")
result = operations[operation](a, b)
if result is None:
raise ValueError("Division by zero")
return {
'statusCode': 200,
'body': json.dumps({
'operation': operation,
'a': a,
'b': b,
'result': result
})
}
except Exception as e:
logger.error(f"Error in calculator: {e}")
return {
'statusCode': 500,
'body': json.dumps({
'error': str(e)
})
}