I don't think it's so simple. The general idea would be to use those three functions, but the details are a bit tricky. For example, for tiles that do not intersect any polygons, one wants to show the whole tile. But I usually include a where clause in my queries for where the data intersects the tiles and find that that is faster than only having the cut out function in ST_AsMVTGeom.
Would you like to work on this together? It's not a huge project, but I think it needs a little careful work and I at least think it's a little bit interesting.