Retired US Army lieutenant general Michael Flynn said the Trump administration was taking a stand over the test “that put American lives at risk”.
Earlier, Iranian defence minister Hossein Dehghan confirmed reports that Tehran launched a medium-range ballistic missile on Sunday, but said the test did not violate a UN Security Council resolution that bans Iran from developing missiles that can carry nuclear warheads.
However, Mr Flynn said Tehran had defied the resolution and hit out at Iran’s “destabilising behaviour across the Middle East”.
He said: “President Trump has severely criticised the various agreements reached between Iran and the Obama Administration, as well as the United Nations, as being weak and ineffective.
“Instead of being thankful to the United States for these agreements, Iran is now feeling emboldened.”
Despite announcing Mr Trump had put Iran “on notice”, Mr Flynn did not outline what action the US would take.
On Monday, a US official said the test missile exploded after travelling 630 miles.
The following day, Iranian foreign minister Mohammad Javad Zarif said he hoped Iran’s defence programme would not be used by Mr Trump “as a pretext to create new tensions”.
The row comes amid a 90-day US ban on visas for migrants or visitors from Iran, as well as six other Muslim-majority countries.
Tehran has said it will take “proportionate legal, consular and political action” over the executive order, while Iranian president Hassan Rouhani warned Mr Trump “will cost the US a lot until he learns what is happening in the world”.
He said: “(Mr Trump) is new to politics. He has been in a different world. It’s a totally new environment to him.”
In January, President Trump announced plans to develop a “state-of-the-art” missile defence system to protect the US against attacks from Iran and North Korea.