Open
Description
It's useful that IMcpClient exposes the protocol layer, but the extensions that represent the majority use should represent the most convenient, integrated, idiomatic APIs we expect developers to consume, and for the 1% case, they can use the protocol layer. I think we should:
- Remove the cursor-based extensions and just have the ones that provide the full set
- Change the IAsyncEnumerable-based helpers to asynchronously return lists. We'd added the enumerable ones because they logically map to what's being done, however a) typically consumption isn't doing some with partial results such that an enumerable provides any latency benefits, b) enumerables can be a bit harder to work with, and most importantly c) every iteration of one of these enumerables is going to round trip to the server.
- Change the returned instances to be the most useful objects, e.g. instead of returning a Tool, return an AIFunction; instead of returning a Prompt, return a ChatMessage (maybe, needs investigating); etc.
Metadata
Metadata
Assignees
Labels
No labels