MCP Tool Only Returns First Row via - Responses API

Hi all,

We’ve deployed an MCP server on Google Cloud Run, using the latest Docker image from MCP Toolbox for Databases. We currently have a single tool configured, which connects to a MySQL instance and executes a fixed query that selects 5 rows from one of our tables.

When testing with the MCP Inspector, everything works as expected — it connects, executes the tool, and returns all 5 rows in the output:

However, when we switch to using the Responses API (via streamable HTTP), the request succeeds and the tool is executed — but we only receive the first row of the result. No errors are thrown.

I dug a little deeper and inspected the actual MCP call object. Here’s a sanitized version of the response:

McpCall(
  name='test_sql_tool',
  server_label='my_mcp_server',
  output='{"Field1": "...", "Field2": "...", "Field3": "..."}'
)

Even though the underlying SQL query returns 5 rows (verified locally and through MCP Inspector), the output field contains just a single JSON object — which seems to correspond to only the first row of the result set.

Has anyone experienced a similar issue with tools returning only partial results? Is there something in the tool implementation or output schema that might restrict output to a single item?


Minor related issue:

Also noticing that SSE (Server-Sent Events) doesn’t seem to work from the Responses API, even though the same tool and server work fine via the MCP Inspector. Any known limitations when using SSE with Cloud Run or specific headers/settings we should check?

Thanks in advance for any insights!


:white_check_mark: Update:

I retested everything using the Agents SDK, and both SSE and streamable HTTP worked correctly — full results were returned as expected. So it seems the issue is isolated to the Responses API interface specifically.

1 Like