Valid JSON.
Wrong tool result?

A tool promises an integer and returns a string. An error gets treated as success. Check a small, public or fully redacted MCP result before relying on it.

Submitting sends this JSON to TableProof for in-memory checking. We save aggregate daily execution counts, not input or identity in the application. Never submit secrets or private data.

The example has an integer/string mismatch. It is our synthetic input.

Findings appear here.

Call the free HTTP checker

Use a public or redacted unwrapped result. The following original synthetic request deliberately supplies a string where an integer is required. Expected response: HTTP200 with state: schema_mismatch and an issue at /structuredContent/record_count. This is a finding, not a failed HTTP request.

curl example
curl --max-time 25 'https://tableproof-data.mitchellwhite.chatgpt.site/demo/mcp-result' \
  -H 'Content-Type: application/json' \
  --data-raw '{"outputSchema":{"type":"object","properties":{"record_count":{"type":"integer"}},"required":["record_count"],"additionalProperties":false},"result":{"content":[{"type":"text","text":"{\"record_count\":12}"}],"structuredContent":{"record_count":"12"},"isError":false}}'
Node fetch example (save as example.mjs)
const body = {"outputSchema":{"type":"object","properties":{"record_count":{"type":"integer"}},"required":["record_count"],"additionalProperties":false},"result":{"content":[{"type":"text","text":"{\"record_count\":12}"}],"structuredContent":{"record_count":"12"},"isError":false}};
const response = await fetch('https://tableproof-data.mitchellwhite.chatgpt.site/demo/mcp-result', {
  method: 'POST',
  headers: {'Content-Type': 'application/json'},
  body: JSON.stringify(body),
  signal: AbortSignal.timeout(25000)
});
if (!response.ok) throw new Error('HTTP ' + response.status);
console.log(await response.json());

Observed October4,2026: ordinary curl and Node fetch returned that result without credentials, cookies or a custom User-Agent. Default Python urllib received HTTP403 before a checker JSON result. Client access can vary; universal HTTP-client compatibility is not verified. A403 does not mean your MCP result was checked. Respect the rejection; do not retry with impersonated headers or bypass protections. No Python fix or native Dot execution is claimed.

Changing only structuredContent.record_count to integer12 gives the matching synthetic case. Calls send the supplied JSON for in-memory checking and increment an aggregate count. The example places no order, invokes no other endpoint and requires no payment.

What this checks

Complete tool results with up to ten text blocks. One output schema using single types, properties, required, boolean additionalProperties, items and primitive enum. Optional title, description and the 2020-12 schema identifier. No references, formats, patterns, numeric bounds, unions or remote schemas.

Up to16,000 UTF-8 request bytes,1,000 JSON values,20 input nesting levels,100 schema nodes and five nested schema levels. Findings stop at20. Duplicate JSON keys are not detected. JSON numbers use JavaScript precision.

checked_subset means these supplied constraints matched. It does not prove semantic correctness, complete MCP conformance, safety, a successful external action or native Dots compatibility. Missing schema is unknown; tool errors remain errors. Non-text and incomplete results are outside this profile.

Text fallback checking compares parsed JSON values with structuredContent. Natural-language summaries may differ; a missing equivalent JSON block is a recommendation warning.

Original synthetic input as JSON · HTTP API contract · Tell us which review you need

Primary MCP tool specification. No OpenAI affiliation. Free MCP tool: check_tableproof_mcp_result at /mcp, with platform-managed OAuth. HTTP/browser checks also remain available. Native authenticated Dot execution is unverified.