Skip to content

[Bug]: Python server's discovery profile advertises transports it does not serve (mcp, a2a, embedded) #133

Description

@vishkaty

What happens

At current main, the Python Flower Shop's /.well-known/ucp profile advertises four transports for dev.ucp.shopping, but only REST is actually served:

advertised transport endpoint in profile observed behavior
rest / ✅ works
mcp /mcp tools/call returns -32000 "tools/call is not yet implemented on this sample's MCP endpoint; use the REST transport…"
a2a /.well-known/agent-card.json HTTP 404
embedded null endpoint is literally None in the profile

Verified by booting the server from main and probing each advertised endpoint.

Why this matters

Agents select a transport from the discovery profile — that's the point of discovery. A profile that advertises transports the server doesn't serve sends conformant agents into dead ends (e.g. an MCP-first agent picks /mcp and can never check out). It also makes the sample a misleading reference for the discovery contract itself: implementers copy this profile shape. (Related signal: #101's author was specifically trying to build against the MCP transport.)

Possible resolutions (maintainers' call)

  1. Trim the profile to what's served (smallest change): advertise rest only until other transports are implemented — the profile becomes truthful today.
  2. Implement the advertised transports (most valuable): tools/call for MCP would unlock MCP-transport conformance testing; happy to help here if useful.
  3. Some combination (e.g. trim a2a/embedded, finish mcp).

Happy to send a PR for whichever direction you prefer.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions