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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions