If you are building Model Context Protocol (MCP) servers, stop trusting your auto-generated schema descriptions. Developer minia2a discovered that a single, meaningless sentence was being injected 3,814 times into their tool catalog, bloating every session's payload by 137.5 KB. This wasn't a human writing bad documentation; it was a code path filling empty slots with noise that looked like content.

The Anatomy of a Wasteful Payload

The issue surfaced during a routine tools/list call on the minia2a.uk MCP server. The response, weighing in at 357,167 bytes, contained 1,714 tools and 3,815 parameter slots. While the tool count is high, the real problem was in the inputSchema.properties. For 3,814 of those parameters, the description field contained a variation of the same string: " to process". For example, a parameter named board was described as "board to process", and state as "state to process". These descriptions added zero semantic value but consumed significant bandwidth.

Why Automated Filler Fails

The root cause was a schema generation step that required a description key to be present for validity. Since the source file was a simple map of service IDs to parameter names without explicit documentation, the gateway auto-populated the missing field using the name itself. This created a "counterfactual" payload size of 486.3 KB when including the filler. The author notes that this defect is invisible to standard tests because description is optional in JSON Schema, and shape checks only verify that the key exists and is a string, not that it contains unique information.

The Fix Is Deletion, Not Generation

The solution wasn't to write better descriptions, but to remove the filler entirely. The author argues that if you don't have meaningful text derived from the parameter's actual purpose, you should emit no description at all. A generator that only sees the field name cannot produce text a reader couldn't derive from the name alone. By deleting the auto-generated strings, the payload dropped significantly, proving that the original 137.5 KB was pure noise.

Check Your Own Catalog

Developers can run a simple Python script against any MCP server speaking streamable HTTP to audit their own tools. The script calculates how many parameters restate their own names and estimates the byte cost of that redundancy. On the pre-fix catalog, this audit reported 100% of parameters as restated, costing 137.5 KB. On the fixed catalog, it reports 0% and 0.0 KB, confirming that the semantic content of the parameters remains unchanged while the transmission overhead is eliminated.

Key Takeaways

  • Auto-generated description fields in MCP schemas can bloat payloads by over 100 KB if they merely restate parameter names.
  • Standard JSON Schema validation does not catch "filler" descriptions because the field is optional and only type-checked.
  • The most efficient fix for low-quality auto-generated descriptions is often deletion, not rewriting.
  • Payload size matters in MCP because tools/list is fetched at the start of every session, impacting latency and cost.

The Bottom Line

Filler descriptions are a hidden tax on every MCP session; if a generator cannot derive semantic value beyond the parameter name, the best engineering choice is to omit the field entirely rather than pay for noise.