Stu Mason · Folkestone, Kent
One entryOpened issue· StuMason/coolify-mcp· TypeScript

Issue #277 opened: Database की env vars by default plaintext में return हो रही हैं

समस्या क्या है

env_vars tool की अपनी description में लिखा है कि secret values by default mask होकर आती हैं (यानी *** के रूप में), ताकि वो गलती से MCP client को leak न हो जाएँ — और अगर plaintext value चाहिए तो caller को explicitly reveal=true भेजना पड़ता है। ये बात application और service के लिए तो सही है, लेकिन database के लिए नहीं

जब आप किसी database की environment variables list करते हैं, तो values सीधे plaintext में आ जाती हैं, बिना कुछ माँगे। और सबसे बड़ी बात — यहाँ reveal का कोई असर ही नहीं होता: true भेजो, false भेजो, या कुछ न भेजो, नतीजा एक ही रहता है। इस case में वो flag बस ignore हो जाता है।

कैसे reproduce करें

  1. MCP server को किसी ऐसे Coolify instance से connect करें जिसमें कम से कम एक database हो और उसमें कुछ sensitive env vars set हों (password, connection string, वगैरह)।
  2. env_vars tool को database resource और list action के साथ call करें, और reveal को set न करें (यानी documented default behaviour पर भरोसा करें)।
  3. यही चीज़ एक application और एक service पर भी करके compare करें।

Expected behaviour

तीनों resource types वैसे ही behave करें जैसा tool की description वादा करती है: by default values *** से masked, और असली values सिर्फ़ तब जब explicitly reveal=true भेजा जाए।

Actual behaviour

  • Application की list → masked. ✅
  • Service की list → masked. ✅
  • Database की list → by default secrets plaintext में आ जाते हैं, और reveal का कोई असर नहीं। ❌

ये क्यों मायने रखता है

Database की env vars इस server के छूने वाले सबसे sensitive data में से हैं — उनमें अक्सर DB credentials और connection strings होती हैं। पूरी masking layer का मकसद ही यही है कि ऐसी values गलती से किसी LLM client के हाथ न लग जाएँ। अभी database वाला रास्ता इस पूरे safeguard के आर-पार निकल जाता है, और चूँकि flag ignore हो रहा है, यहाँ masking माँगने का कोई तरीका ही नहीं बचता। ऊपर से ये tool की अपनी documented default behaviour के भी खिलाफ़ है — जो person documentation पर भरोसा कर रहा है, वो गुमराह हो रहा है।