You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
hdx-eval reports unparseable MCP responses as successful evidence #3526
queryTileWithEvidence in packages/hdx-eval/src/hyperdx/api.ts calls an MCP
tool and parses the textual result as JSON. When the MCP response is a
transport success with isError: false but its text is not valid JSON, the catch branch returns { success: true, hasData: true } instead of reporting
a parse failure. The eval framework therefore treats unparseable content as
valid evidence.
If the MCP content cannot be parsed as JSON, the call reports failure (for
example { success: false, error: ... }), so grading never treats the raw
text as data.
Actual behavior
A transport-successful response whose content.text is not JSON returns:
The catch conflates "the MCP server returned non-JSON text" with "the tool
returned data", and discards the parse error.
Impact
The eval harness can record fabricated or malformed tool output as successful
evidence and grade an agent against it, producing false positives in
benchmark results.
Parse failures are invisible to callers, so a misbehaving MCP server looks
healthy and the raw text is never surfaced as an error.
Suggested fix
Return a failure result from the catch branch and keep the parse error:
I would like to take this issue. I will keep the fix focused on returning a failure result when queryTileWithEvidence receives non-JSON MCP text, add a regression test for the parse-error path, and run the relevant hdx-eval checks before opening a PR.
Activity
brandon-pereira commentedon Nov 3, 2026
@soarkit thanks for flagging, please feel free to open a PR to fix this and I can review it.
jiangyuer018 commentedon Nov 3, 2026
I would like to take this issue. I will keep the fix focused on returning a failure result when queryTileWithEvidence receives non-JSON MCP text, add a regression test for the parse-error path, and run the relevant hdx-eval checks before opening a PR.
brandon-pereira commentedon Nov 3, 2026
Sounds great, thanks @jiangyuer018
fix(hdx-eval): reject invalid MCP evidence content (ClickHouse#3532)