I want to know if the LCP starts counting time from when the page is requested or when the first byte is received by the user device?
I have a website where sometimes the LCP gets higher and think it's because server response time, the website already use CDN for static resources but some pages need to process large database queries.
The server is hosted in the United States, but 99% of visitors are from Brazil.
A Server location migration can solve this, or is it a waste of time?
It does start counting from the moment the user hits enter and initiates the page load.
If the server response is slow, then yes. TTFB is a factor in LCP, but it could also be slow because of Resource load time or Element render delay.
Here is a good guide on optimizing LCP.