तुमने अपने agent को एक दर्जन MCP tools से जोड़ दिया और Monday का backlog उसे सौंप दिया। Slack, GitHub, payment API — पूरा पालतू चिड़ियाघर। ज़िंदगी automated लग रही है। फिर agent एक failed payment call retry करता है, और तुम्हारे customer को double charge लग जाता है।
MCP ने agent को कहीं नहीं बताया कि वो endpoint retry-safe नहीं है। कोई label नहीं, कोई flag नहीं। बस एक raw function और एक model जो वही कर रहा है जो models करते हैं — "helpful" बनना।
अब बात सुनो। MCP की spec में बिल्कुल वो safety fields हैं जो तुम्हें चाहिए। चार annotations — readOnlyHint, destructiveHint, idempotentHint, openWorldHint। चार booleans जो double-charge वाला scenario पूरी तरह रोक सकते थे। MCP team ने इन्हें 16 मार्च, 2026 को publish किया। और spec ने हर एक को "Hint" बुलाया।
Contract नहीं। Constraint नहीं। Hint। जैसे किसी भरी हुई बंदूक पर Post-it चिपका दो: "शायद लोगों पर मत ताको।"
छह हफ्ते बाद, industry ने अपना फैसला सुना दिया। Microsoft ने 2 अप्रैल को Agent Governance Toolkit ship किया — YAML-based policy enforcement, scratch से बनाया, MCP annotations का ज़ीरो reference। Anthropic ने 21 अप्रैल को Managed Agents permission policies launch किया — custom allowlists और scoping, annotation fields को पूरी तरह ignore करते हुए। Google ने अगले ही दिन 22 अप्रैल को Agent Gateway निकाला — वही pattern, वही scratch-से-बनाया policy engine। बीस दिन में तीन major platforms। किसी ने भी उस safety metadata को नहीं छुआ जो उसी protocol में पहले से मौजूद है जिस पर वो सब निर्भर हैं।
ये वही problem नहीं है जो platform-level permission dialogs के नाटकीय होने वाली है — वो हम cover कर चुके हैं। और ये unvalidated tool output वाला मामला भी नहीं — वो अलग छेद है। ये protocol layer के बारे में है — वो एक जगह जहाँ safety metadata canonical होना चाहिए — जो अपनी ही credibility को एक शब्द के चुनाव से तोड़ रही है।
Justin Spahr-Summers, MCP के co-creator, ने मार्च 2026 की spec review में GitHub पर वो बात बोल दी जो सब सोच रहे थे: "ये information अगर trust की जा सके तो बहुत useful होगी, लेकिन मुझे लगता है कि client इस flag का क्या करे जब पता हो कि ये trustable नहीं है।" Safety metadata के designer ने खुद publicly सवाल उठाया कि इसे कोई trust भी कर सकता है या नहीं। ये red flag नहीं है। ये red flag factory है।
Self-attested safety metadata बिना किसी verification के — ये safety feature नहीं है। ये suggestion box है। किसी untrusted MCP server से destructiveHint: false बिल्कुल उतना ही reliable है जितना tool से पूछना "भाई, तू dangerous है क्या?" और जवाब पर भरोसा कर लेना। Public registries में अब 17,000 से ज़्यादा MCP servers बैठे हैं। जिनके declared annotations की कोई independent verification हुई है: शून्य।
हर serious system ने ये बात दशकों पहले समझ ली थी। Unix file permissions के बारे में hint नहीं देता — kernel enforce करता है। OAuth scopes के बारे में hint नहीं देता — authorization server validate करता है। Docker container privileges के बारे में hint नहीं देता — runtime apply करता है। हर काम करने वाले security model में, safety claim करने वाली entity और constrain होने वाली entity अलग-अलग होती हैं। ये paranoia नहीं है। ये वो पहली चीज़ है जो production के पास जाने से पहले सिखाते हैं।
MCP annotations इस principle को design से ही तोड़ते हैं। Tool server खुद अपनी safety properties declare करता है, client उन्हें पढ़ता है, और बीच में कोई claim verify नहीं करता। MCP Blog ने ये सीधे मान लिया: "एक server claim कर सकता है readOnlyHint: true और फिर भी files delete कर सकता है।" Spec की अपनी documentation मानती है कि safety labels झूठ बोल सकते हैं और उन्हें पकड़ने का कोई mechanism नहीं है।
"Hint" शब्द ने बाकी का नुकसान पूरा कर दिया। जब तुम safety metadata को hint label करते हो, तो हर integrator को बता रहे हो: ये optional है, unreliable है, और तुम्हारी ज़िम्मेदारी नहीं है। उन्होंने सुन लिया। तीन platforms, तीन scratch-से-बनाए governance systems, existing protocol-level annotations का zero adoption — सब अप्रैल 2026 में। इसलिए नहीं कि metadata बेकार है, बल्कि इसलिए कि spec ने पहले से इसे decorative करार दे दिया था।
और अब वो हिस्सा जो कुछ न होने से भी बुरा है। कोई annotations नहीं मतलब तुम्हें पता है कि अंधेरे में उड़ रहे हो। "Hint" annotations मतलब तुम्हारे पास शायद safety data है — शायद सही, शायद बनावटी — और तुम्हें decide करना है कि trust करो या नहीं, बिना किसी verification tool के। झूठा भरोसा ईमानदार अज्ञानता से ज़्यादा खतरनाक है। कम से कम अज्ञानता तुम्हें सतर्क बनाती है।
तो अब तुम YAML policies हाथ से लिख रहे हो। Tool allowlists manually configure कर रहे हो। वही guardrails scratch से बना रहे हो जो annotations को provide करने थे, क्योंकि protocol की अपनी safety layer ने तुम्हें पहले से बोल दिया — इस पर depend मत करो। सबसे ज़्यादा मेहनत वाला safety model — इसलिए नहीं कि बेहतर metadata exist नहीं करता, बल्कि इसलिए कि किसी ने इसे "hint" बुलाने का फैसला किया।
Fix technical भी नहीं है। चारों fields सही designed हैं। Data model काम करता है। जो टूटा है वो एक शब्द है और उसके पीछे की philosophy। "Hint" को "declaration" में बदलो। एक verification endpoint जोड़ो — clients को declared properties को observed behavior के खिलाफ test करने दो। झूठ बोलना detectable बनाओ। पूरे agent stack का सबसे सस्ता safety upgrade spec में बैठा है, सही structure में, और पूरी तरह बेकार कर दिया गया एक naming decision ने जिसने 17,000 servers और तीन governance platforms को बोला — seriously मत लो।
किसी ने fire extinguisher बनाया, उस पर लिखा "पानी हो भी सकता है, नहीं भी," और अब हैरान है कि बिल्डिंग क्यों जल रही है।




