> That allows already for self discovery etc.
The problem is usually not with listing the APIs. Almost all services have OpenAPI specs, and you can (often too) complain about lack of documentation.
Orchestrating these APIs is the annoying "fuzzy" challenge. Imagine you have a VM service, and you provide a set of APIs. Someone comes asking "How do I create a copy of a VM we have in the US region to EU region but with half the CPU/RAM?"
You might point to your OpenAPI spec and say you can:
var s1 = takeSnapshot(vm1);
var s2 = copySnapshot(s1, 'EU');
var vm2 = createVmFromSnapShopt(s2, sizeOverride).
Ok... but is there a makeACopyOfVmWithHalfCPUAndHalfMemoryInEurope(vm1) API? I don't want to copy that code. In 3 months it'll break because `vm1` is of a type that can't be snapshoted and you'll tell me that I should check `vm1.snapshotable`, or that the new size is invalid in the new region because I should be calling `isSizeAvailable()`
If this were an MCP, then it would either orchestrate these APIs "correctly" for me checking as corner cases as possible as (presumably from examples it saw on github). When it misses, it's "oh well, even AI couldn't get it. We can all blame AI everybody" As oppose to when a Human misses and someone is like "how amateurish is the implementation that you're not checking if the vm is `snapshotable` or not?