The question assumes a competition that does not exist. API is not just REST, and it has not been for a long time. REST, hypermedia, GraphQL, gRPC, event-driven — and now MCP — are tools in a diverse toolbox, each suited to different problems.
Here is how I would actually decide. Use resource-oriented HTTP for anything broadly consumed, publicly exposed, or long-lived: it is the most accessible, most cacheable, most tooled, and most governable option, and it should be your default. Use gRPC for internal high-performance service-to-service work where you own both ends. Use GraphQL where the data is genuinely graph-shaped and consumers need flexible assembly. Use event-driven where consumers need to react to things happening rather than ask repeatedly whether anything has happened. Use MCP where the consumer is an agent.
The mistake is not picking the “wrong” one. The mistake is picking several by accident, over years, and then governing only the HTTP ones — so the event-driven estate grows up with no discovery, no contracts, no lifecycle discipline, and no idea who consumes what.
Choose deliberately, document the choice, and hold every protocol to the same standard: a machine-readable contract, a named owner, a security model, a versioning policy, and a place in the catalog.