MCP Client (OpenAI Bridge) not triggering list_resources or rendering Output Templates

I am developing an MCP-based SSE server for ChatGPT, and I am facing an issue where the Output Template (Widget) is not being discovered or rendered, despite the server correctly implementing the MCP spec.

Technical Details:

  • MCP Server Type: SSE (deployed on Google Cloud Run)

  • Protocol Issues:

    1. Upon connection, the OpenAI Bridge sends initialize and list_tools, but completely skips list_resources, even though resources capability is explicitly declared in the server’s initialize response.

    2. The CallToolResult includes an EmbeddedResource with mimeType: "text/html+skybridge" (and also tried text/html), but the ChatGPT UI does not trigger the Resource Fetch.

  • Server Implementation:

    • annotations includes openai/outputTemplate with a ui:// scheme.

    • _meta in CallToolResult also contains the correct template mapping.

    • MIME types tested: text/html+skybridge, text/html.

What I’ve checked:

  • Verified that the server’s initialize response includes "resources": {} in capabilities.

  • Verified that WIDGET_TEMPLATE_URI matches exactly across list_resources, annotations, and EmbeddedResource.

  • Server logs show ListToolsRequest is processed successfully, but the client never attempts to call list_resources.

  1. MIME Type Requirement: “Is text/html+skybridge still the required MIME type for Output Templates, or has it changed?”
  2. Discovery Trigger: “What specific field in the initialize or list_tools response triggers the OpenAI Bridge to call list_resources?”
  3. Canvas vs Widget: “Does enabling openai/canvas metadata suppress the openai/outputTemplate rendering?”
  4. SSE Specifics: “Are there any known issues with SSE-based MCP servers failing to load resources in the ChatGPT web client?”