I added an Omni light source, and I get a white spot on the surface, the rest is still black.
I tried a world environment which made it the same colour as the environment. I've tried add_uv but it doesn't seem to make any difference.
func createMesh(size):
var st = SurfaceTool.new()
st.begin(Mesh.PRIMITIVE_TRIANGLES)
st.add_color(Color(1, 0, 0))
st.add_normal(Vector3( 0, 0, 1))
st.add_uv(Vector2(0, 0))
st.add_vertex(Vector3(-size, -size, 0))
st.add_uv(Vector2(1, 1))
st.add_vertex(Vector3( size, size, 0))
st.add_uv(Vector2(1, 0))
st.add_vertex(Vector3( size, -size, 0))
st.add_uv(Vector2(0, 0))
st.add_vertex(Vector3(-size, -size, 0))
st.add_uv(Vector2(0, 1))
st.add_vertex(Vector3(-size, size, 0))
st.add_uv(Vector2(1, 1))
st.add_vertex(Vector3( size, size, 0))
var mesh = st.commit()
meshInstance.set_mesh(mesh)