Skip to content

Discovery of UTCP Manuals #52

@Fannon

Description

@Fannon

Hi there!

Just looking through the spec, I really like the idea of how it's designed compared to MCP (or complementary).

I have some questions / suggestions about the discovery of UTCP manuals though:

Just calling /utcp is I think not a very scalable approach, because:

  • One server can have any number of APIs, also MCP Remote APIs. They might all have different auth mechanisms. So if you start creating UTCP manuals, I assume you have to to it for each existing API. In my company (SAP), some applications may even have hundreds or thousands of APIs, so putting everything into one metadata JSON file would not scale in any way.
  • Consider returning a "config" document here, which tells you that UTCP discovery is supported and where to find the individual UTCP manuals. Then you have a more scalable, flexible discovery approach.
  • Register a well-known URI location, as this is the RFC standard way to do this, e.g. .well-known/utcp.json or .well-known/universal-tool-calling-protocol.json
  • Generally, have you considered returning more than one auth? In practice one API can have any number of auth middlewares and support multiple auth strategies at the same time. Between server and client there is a "strategy pattern": The server implemented auth, so he lists the auth strategies it provides. The client choses one of the auth strategies on its own preferences.
  • Consider registering or at least stating the media type for the UTCP manual, then you could reuse the very minimal RFC9727 discovery by giving guidance how to use it.

For examples, see:

I'm also a specification author for https://open-resource-discovery.github.io/specification/, which is about decentralized metadata discovery - protocol independent. It's like RFC9727, but more extensive / enterprisy and going beyond just API discovery. I'm considering adding UTCP as one type of metadata supported. If you're interested we could get in touch on this.

Best,
Simon

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions