REST has issues tough.

How do you send a big read only query? A POST? A GET hoping nothings logs it or swallows half of it?

How do you deal with delayed answers? Things that most HTTP middleware will timeout long before the result is achieved?

REST has issues if you limit yourself to think of the “resources” as your domain entities.

If you have a long running search, the resource is the search. Create a search. Fetch search results. Delete the search when you’re done.

Similarly, if you have a sufficiently complex command, the resource is the command itself. Maybe it requires async work, and you can later fetch the command results.

Anecdotally, this seems to be too big of a leap in mental model for beginners, mostly because all of the REST learning path does is teach you how to use it in CRUD domains.

I think you provide good and accurate information. However, what you described sounds like a workaround to me.

The read-only QUERY method can send much bigger requests than GET.

For delayed answers, MCP offers no improvement, because remote MCP servers use an HTTP transport anyway, and local ones don't involve middleware you can't control. Besides, that's well-trodden ground. SSE, trailers, gRPC streaming, websockets, simple polling, etc. We don't need another protocol.