diff --git a/src/strands_tools/use_aws.py b/src/strands_tools/use_aws.py index 7b87bb26..f0cbf2cb 100644 --- a/src/strands_tools/use_aws.py +++ b/src/strands_tools/use_aws.py @@ -213,7 +213,6 @@ def get_available_operations(service_name: str) -> List[str]: "region", "service_name", "operation_name", - "parameters", "label", ], } @@ -280,7 +279,7 @@ def use_aws(tool: ToolUse, **kwargs: Any) -> ToolResult: service_name = tool_input["service_name"] operation_name = tool_input["operation_name"] - parameters = tool_input["parameters"] + parameters = tool_input.get("parameters", {}) region = tool_input.get("region", aws_region) label = tool_input.get("label", "AWS Operation Details") diff --git a/tests/test_use_aws.py b/tests/test_use_aws.py index 8e300301..4fd02a93 100644 --- a/tests/test_use_aws.py +++ b/tests/test_use_aws.py @@ -100,6 +100,24 @@ def test_use_aws_direct_success(mock_boto3_client, mock_available_services, mock assert "test-request-id" in result["content"][0]["text"] +def test_use_aws_without_parameters(mock_boto3_client, mock_available_services, mock_available_operations): + """Test use_aws when parameters is not provided in the input.""" + tool_use = { + "toolUseId": "test-tool-use-id", + "input": { + "service_name": "s3", + "operation_name": "list_buckets", + "region": "us-west-2", + "label": "List S3 Buckets", + }, + } + + result = use_aws.use_aws(tool=tool_use) + + assert result["toolUseId"] == "test-tool-use-id" + assert result["status"] == "success" + + def test_use_aws_invalid_service(mock_available_services, mock_available_operations): """Test use_aws with an invalid service name.""" tool_use = {