Realtime API - MCP server sends 10 tools but API receives 0

I’m integrating a custom MCP server with OpenAI’s Realtime API via WebSocket. The server successfully responds to tools/list with 10 tools, but the Realtime API reports 0 tools received.

The MCP server works perfectly in:

  • :white_check_mark: Playground (responds to tool queries correctly)
  • :white_check_mark: MCP Inspector (all 10 tools visible)
  • :cross_mark: Realtime API WebSocket (receives 0 tools)

Setup: - Server: https://hmo-ai-assist-dev-mcp-api.bitcotapps.com/sse

  • Transport: SSE (Server-Sent Events)
  • Protocol: MCP with protocol version 2025-06-18
  • Framework: FastMCP (Python)

Server Logs (successful response):

2025-11-30 03:11:09 - Processing request of type ListToolsRequest 2025-11-30 03:11:09 - Response sent 2025-11-30 03:11:09 - Sending message via SSE: { "jsonrpc":"2.0", "id":1, "result":{ "tools":\[ {"name":"fetch_user_id_details",...}, {"name":"fetch_patient_appointments",...}, {"name":"fetch_practitioner_appointments",...}, {"name":"fetch_patient_symptoms",...}, {"name":"fetch_patient_medical_history",...}, {"name":"email_user",...}, {"name":"generate_health_summary",...}, {"name":"generate_insurance_details_response",...}, {"name":"send_referral",...}, {"name":"fetch_practitioners",...} \] } }

Client Logs (Realtime API WebSocket):
:blue_circle: mcp_list_tools.in_progress :hourglass_not_done: Fetching tools from MCP server…

:blue_circle: mcp_list_tools.completed :white_check_mark: Success: 0 tools found

Session Configuration:

{
    "type": "session.update",
    "session": {
        "tools": [{
            "type": "mcp",
            "server_url": "https://hmo-ai-assist-dev-mcp-api.bitcotapps.com/sse",
            "server_label": "custom_mcp_server",
            "require_approval": "never"
        }]
    }
}

Server Response Capabilities:

{
  "protocolVersion": "2025-06-18",
  "capabilities": {
    "experimental": {},
    "prompts": {"listChanged": false},
    "resources": {"subscribe": false, "listChanged": false},
    "tools": {"listChanged": false}
  },
  "serverInfo": {
    "name": "admin-tools-mcp-server",
    "version": "1.21.1"
  }
}

Question:
Why does the Realtime API WebSocket connection receive 0 tools when the server clearly sends 10? Is there a protocol version incompatibility between Realtime API and MCP SSE transport? Do I need different capability flags for Realtime API vs Playground/Responses API?

Any insights would be appreciated!