Description
Tool calls through ContextForge virtual servers (Streamable HTTP transport) fail with "Output validation error: outputSchema defined but no structured output returned" when the upstream MCP server returns both content and structuredContent. This appears to be a regression or incomplete fix of #1406.
Affected Version
v1.0.0-RC2 (deployed on Cloud Run)
Steps to Reproduce
-
Register a Google BigQuery MCP gateway:
- URL:
https://bigquery.googleapis.com/mcp
- Transport: STREAMABLEHTTP
- Auth: OAuth client_credentials (via GCP token proxy)
-
BigQuery MCP tools define outputSchema (large JSON Schema for table/dataset metadata)
-
Call any tool through a ContextForge virtual server:
{
"jsonrpc": "2.0", "id": 2,
"method": "tools/call",
"params": {
"name": "google-bigquery-list-dataset-ids",
"arguments": {"projectId": "my-project"}
}
}
-
Response:
{
"jsonrpc": "2.0", "id": 2,
"result": {
"content": [{"type": "text", "text": "Output validation error: outputSchema defined but no structured output returned"}],
"isError": true
}
}
Expected Behavior
The tool call should succeed, passing through the upstream response including structuredContent.
Direct Call Works
Calling the same tool directly on https://bigquery.googleapis.com/mcp (bypassing ContextForge) returns correctly:
{
"result": {
"content": [{"text": "{}", "type": "text"}],
"structuredContent": {}
}
}
The upstream server IS returning structuredContent, but ContextForge strips it before validation, then fails the validation check.
Also Affects
- Google Cloud Run MCP (
https://run.googleapis.com/mcp) — all 5 tools define outputSchema
- Likely any upstream MCP server that defines
outputSchema on its tools
Relation to #1406
#1406 fixed streamablehttp_transport.py's call_tool to return structured content (merged via PR #1412, released in BETA-1). The error message is slightly different:
This suggests either a regression in RC2, or a second validation checkpoint that wasn't covered by the original fix.
Environment
- ContextForge v1.0.0-RC2 on Google Cloud Run
- Upstream: Google BigQuery MCP (
bigquery.googleapis.com/mcp) and Google Cloud Run MCP (run.googleapis.com/mcp)
- Transport: Streamable HTTP
- Virtual server with tools from multiple gateways
Description
Tool calls through ContextForge virtual servers (Streamable HTTP transport) fail with
"Output validation error: outputSchema defined but no structured output returned"when the upstream MCP server returns bothcontentandstructuredContent. This appears to be a regression or incomplete fix of #1406.Affected Version
v1.0.0-RC2 (deployed on Cloud Run)
Steps to Reproduce
Register a Google BigQuery MCP gateway:
https://bigquery.googleapis.com/mcpBigQuery MCP tools define
outputSchema(large JSON Schema for table/dataset metadata)Call any tool through a ContextForge virtual server:
{ "jsonrpc": "2.0", "id": 2, "method": "tools/call", "params": { "name": "google-bigquery-list-dataset-ids", "arguments": {"projectId": "my-project"} } }Response:
{ "jsonrpc": "2.0", "id": 2, "result": { "content": [{"type": "text", "text": "Output validation error: outputSchema defined but no structured output returned"}], "isError": true } }Expected Behavior
The tool call should succeed, passing through the upstream response including
structuredContent.Direct Call Works
Calling the same tool directly on
https://bigquery.googleapis.com/mcp(bypassing ContextForge) returns correctly:{ "result": { "content": [{"text": "{}", "type": "text"}], "structuredContent": {} } }The upstream server IS returning
structuredContent, but ContextForge strips it before validation, then fails the validation check.Also Affects
https://run.googleapis.com/mcp) — all 5 tools defineoutputSchemaoutputSchemaon its toolsRelation to #1406
#1406 fixed
streamablehttp_transport.py'scall_toolto return structured content (merged via PR #1412, released in BETA-1). The error message is slightly different:"Output validation error: outputSchema defined but no structured output returned""Tool has an output schema but did not return structured content"This suggests either a regression in RC2, or a second validation checkpoint that wasn't covered by the original fix.
Environment
bigquery.googleapis.com/mcp) and Google Cloud Run MCP (run.googleapis.com/mcp)