The provides_* (or the supports_* in here) are meant to ask what the provider has, not what the client has, so you should still use get_services in these. You can add another set of methods to see if it's also supported in the client. See that the comment says "Returns True if this particular provider has the MX service"