Skip to content
gentic.news — AI News Intelligence Platform
Connecting to the Living Graph…

Listen to today's AI briefing

Daily podcast — 5 min, AI-narrated summary of top stories

Silhouetted robot hand typing on a laptop keyboard with glowing green code on screen and a large red error warning…
Open SourceScore: 81

MCP Agents Log 'Success: True' While Tasks Go Nowhere — Protocol Bug

MCP returns null results inside HTTP 200 responses, causing agents to log success while tasks never run. Vouqis proxy catches this with structured audit logs.

·11h ago·3 min read··18 views·AI-Generated·Report error
Share:
Source: dev.tovia devto_mcp, hn_claude_codeCorroborated
Why do MCP agents log success when tasks never run?

MCP's JSON-RPC over HTTP allows null results inside 200 responses, which agents treat as success. Three failure patterns—null propagation, retry masking, and schema drift—cause silent task drops. Vouqis, a proxy, validates responses and logs structured audit events.

TL;DR

MCP returns null results inside HTTP 200 responses. · Agents treat status codes as truth, discard body. · Vouqis proxy catches silent failures with audit logs.

MCP returns null results inside HTTP 200 responses, and agents treat status codes as truth. A tools/call with null result propagates silently, logging success while the task never executed According to Your MCP Agent is Logging.

Key facts

  • MCP returns null results inside HTTP 200 responses.
  • Three failure patterns: null propagation, retry masking, schema drift.
  • Vouqis proxy writes structured audit logs as NDJSON.
  • Null result causes agent to log success while task never runs.
  • 54% of 39,762 MCP servers have zero community adoption.

MCP is built on JSON-RPC 2.0 over HTTP. The error surface splits across two layers: HTTP carries transport status, JSON-RPC carries application status. They do not have to agree, and often they do not. A well-behaved MCP error includes a JSON-RPC error object; a silent failure returns {"result": null} with HTTP 200. Most agent frameworks check res.ok or the status code and move on, discarding the null body entirely.

Key Takeaways

  • MCP returns null results inside HTTP 200 responses, causing agents to log success while tasks never run.
  • Vouqis proxy catches this with structured audit logs.

Three failure patterns worth knowing

Building AI Agents with Model Context Protocol (MCP) Usi…

1. Null result propagation — A tools/call returns {"result": null} with HTTP 200. The agent logs the call as complete. The downstream system never receives the expected payload. This is the most common pattern and the hardest to catch because every layer reports success.

2. Retry masking — The agent retries a timed-out tools/call. The upstream MCP server sits behind a deduplication layer that executes the mutation once and acknowledges subsequent requests silently. The agent sees success on attempt four. Your audit log shows six calls. The task ran once but the agent has no idea which attempt was real.

3. Content schema drift — MCP's tools/call result schema requires a content array where each item has a type field. Servers written quickly omit type. The consuming agent deserializes the array, tries to route by type, finds undefined, and either silently drops the item or throws an uncaught exception swallowed by an outer try-catch. The agent logs success. The data was there. The schema was wrong.

Vouqis: a proxy that validates responses

How Agent Cards & Tasks Transform Multi-Agent Development in Agent-to ...

Vouqis sits between your agent and your MCP server. Every request and response passes through it. It validates both sides and writes a structured audit log as NDJSON with timestamp, method, tool name, latency, attempt number, and reason. The agent points at http://127.0.0.1:4444 instead of the MCP server directly. When a null result arrives, the proxy blocks it and logs: "decision": "block", "reason": "tools/call result is null or missing". That is the event you would have wanted at 10:04 AM instead of finding out from a customer complaint at 10:37 AM.

The project is at vouqis.tech. The source is on GitHub.

What to watch

Watch for Anthropic to address this in the MCP specification — either by mandating non-null results or adding a required status field. Also watch whether LangGraph and other agent frameworks add built-in null-checking for MCP tools/call responses.


Source: dev.to


Sources cited in this article

  1. Your MCP Agent
Source: gentic.news · · author= · citation.json

AI-assisted reporting. Generated by gentic.news from 1 verified source, fact-checked against the Living Graph of 4,300+ entities. Edited by Ala SMITH.

Following this story?

Get a weekly digest with AI predictions, trends, and analysis — free.

AI Analysis

This is a classic protocol-level footgun. MCP inherits JSON-RPC's dual-layer error surface (HTTP + application), and agent frameworks optimize for the happy path. The null result pattern is particularly insidious because every layer — HTTP, JSON-RPC, agent framework — reports success. Vouqis is a pragmatic band-aid, but the real fix belongs in the spec: either require a non-null result or add a required application-level status field. Retry masking is another structural problem: deduplication layers are common in production MCP deployments, and the protocol provides no mechanism to correlate retries with actual executions. Schema drift in multi-agent workflows is a third-order effect of MCP's flexibility — servers omit optional fields, and agents silently fail. These three patterns together suggest that MCP's production readiness is overrated. The 54% of 39,762 MCP servers with zero community adoption [per our June 14 report] may reflect not just discovery problems but reliability concerns.

Mentioned in this article

Enjoyed this article?
Share:

AI Toolslive

Five one-click lenses on this article. Cached for 24h.

Pick a tool above to generate an instant lens on this article.

Related Articles

From the lab

The framework underneath this story

Every article on this site sits on top of one engine and one framework — both built by the lab.

More in Open Source

View all