MCP dynamic tools not always available in Responses API

Hi,

I have created a sample dynamic tool MCP server. It starts with one tool available: ‘Greet’. After calling greet, additional tools become available: calculate, get_status, and followup.

When I use the responses API as shown below and ask, for example, “Greet Lukasz and calculate 10/2”, I see that the greet function is called, but calculate is not—it appears the calculate tool was not sent to the model.

I also see in my MCP server logs that OpenAI fetched the updated tool list after receiving the response from Greet.

Is this a bug in MCP support within the responses API?

ResponseAPI request:

{
    “model”: “gpt-5-chat-global”,
    “tools”: [
        {
            “type”: “mcp”,
            “server_label”: “DynamicServerMCP”,
            “server_url”: “<MCP Url>”,
            “require_approval”: “never”
        }
    ],
    “input”: [
        {
            “type”: “message”,
            “role”: “user”,
            “content”: [
                {
                    “type”: “input_text”,
                    “text”: “Greet Lukasz and calculate 10/2”
                }
            ]
        }
    ],
    “stream”: true
}

Within a conversation, Responses avoids making multiple list-tools call to an MCP server, so this behavior is expected (though puzzled about the 2nd call your server is seeing).

If you want every Responses call in a conversation to make list-tools calls, you would need to pass in the past items (not use previous_response_id) and drop the mcp_list_tools items.

2 Likes