MCP DB Wizard

आधिकारिक

Oracle के लिए एक MCP सर्वर जो आपको नौकरी से नहीं निकलवाएगा। यह MCP सर्वर SQL प्रॉम्प्ट उजागर नहीं करता, और आपको Oracle में लॉग इन करने का तरीका नहीं बता सकता। केवल चयनित ऑब्जेक्ट और SQL स्टेटमेंट ही उपयोग योग्य हैं।

DB Wizard MCP के साथ आप क्या कर सकते हैं?

  • प्राथमिक कुंजी द्वारा एक पंक्ति प्राप्त करें — किसी विशिष्ट गतिविधि लॉग प्रविष्टि के लिए अनुरोध करें और इसे synuser_activity_log_get_by_pk के माध्यम से JSON ऑब्जेक्ट के रूप में वापस प्राप्त करें।
  • गतिविधि लॉग में सम्मिलित करें — सहायक से एक नया लॉग रिकॉर्ड जोड़ने को कहें, जिसमें उसी क्यूरेटेड तालिका से अद्यतन और हटाने के संचालन उपलब्ध हों, synuser_activity_log_insert के माध्यम से।
  • PL/SQL रूटीन को कॉल करें — व्यावसायिक प्रक्रिया चलाने के लिए synuser_js_admin_getadmintoolinfo को आमंत्रित करें और रिकॉर्ड, संग्रह और सभी OUT पैरामीटर प्राप्त करें।
  • अगला अनुक्रम मान प्राप्त करें — synuser_job_id_nextval से अगला ID अनुरोध करें, बिना किसी अन्य अनुक्रम डेटा को उजागर किए।
  • केवल पूर्व-अनुमोदित SQL चलाएँ — आपके द्वारा चुने गए एक परीक्षणित, टाइप किए गए SQL स्टेटमेंट को निष्पादित करें, जिसमें तर्क बाइंड मान के रूप में हों और कोई तदर्थ क्वेरी संरचना न हो।

दस्तावेज़

एक MCP सर्वर Oracle के लिए जो आपको नौकरी से नहीं निकलवाएगा

कॉन्फ़िगरेशन ही पूरा सुरक्षा मॉडल है

एजेंट के लिए सुलभ

  • synuser_activity_log_get_by_pk तालिका — प्राथमिक कुंजी द्वारा एक पंक्ति, JSON ऑब्जेक्ट के रूप में
  • synuser_activity_log_insert तालिका — _update और _delete के साथ, उसी चयन से
  • synuser_js_admin_getadmintoolinfo PL/SQL रूटीन — रिकॉर्ड, संग्रह और हर OUT पैरामीटर
  • synuser_job_id_nextval अनुक्रम — अगला मान, और कुछ नहीं

सुलभ नहीं, संरचना द्वारा

  • कॉलर से SQL टेक्स्ट — तर्क बाइंड मान हैं
  • DDL — create, alter, drop
  • कोई भी ऑब्जेक्ट जिसे आपने चुना नहीं
  • कोई भी स्कीमा जिसे कॉन्फ़िगरेशन नामित नहीं करता
  • Oracle पासवर्ड — यह पर्यावरण में रहता है

एक एजेंट जो SQL लिख सकता है, वह DROP TABLE लिख सकता है। एक एजेंट जिसके पास check_flight_availability नामक टूल है, वह उड़ान पर उपलब्धता जांच सकता है, क्योंकि उसके सामने बस इतना ही कोड है।

क्यूरेशन कोड बनने से पहले होता है

न्यूनतम विशेषाधिकार का दावा करना आसान है और सत्यापित करना कठिन। यहाँ कॉन्फ़िगरेशन तय करता है कि क्या उत्सर्जित होता है: जिस ऑब्जेक्ट को किसी ने चुना नहीं, उसके लिए कोई टूल, कोई विधि और कोई क्लास नहीं है। यह बाइनरी से अनुपस्थित है, न कि चल रही प्रक्रिया द्वारा संरक्षित, इसलिए कोई प्रॉम्प्ट उस तक नहीं पहुँच सकता।

एक MCP सर्वर जिसमें run-sql टूल नहीं है, क्या बदलता है

आपके व्यावसायिक नियम पहले से ही PL/SQL में हैं

दशकों का सत्यापन, संदर्भात्मक तर्क और ऑडिट व्यवहार पैकेजों के अंदर रहता है। MCPDBWizard उन रूटीनों को वैसे ही कॉल करता है जैसे वे हैं — रिकॉर्ड, संग्रह, ref कर्सर, और हर OUT पैरामीटर लौटाया जाता है — बजाय एक भाषा मॉडल से SELECT में नियमों को फिर से आविष्कार करने के लिए कहने के।

जब आपका PL/SQL टूल बन जाता है तो एजेंट क्या देखता है

हर कॉल एक नामित टूल है, क्वेरी नहीं

अनुरोध synuser_activity_log_get_by_pk(entry_id) के रूप में एक सख्त स्कीमा के विरुद्ध आते हैं — एक गलत वर्तनी वाला तर्क डेटाबेस को छूने से पहले अस्वीकार कर दिया जाता है। लॉग करना, दर-सीमित करना, बाद में समीक्षा करना और ऑडिटर को समझाना कहीं अधिक आसान है।

क्यूरेटेड MCP टूल और एक SQL प्रॉम्प्ट, साथ-साथ

दो दर्शक, दो रिकॉर्ड

प्रॉक्सी लिखता है कि किसने किस टूल को कॉल किया और क्या अनुमति दी गई; प्रत्येक सर्वर लिखता है कि टूल ने क्या किया और यह कैसे समाप्त हुआ। तर्क नाम हमेशा; मान केवल तभी जब आपने उसे चालू किया, क्योंकि एक मॉडल ने उन्हें चुना।

एक MCP सर्वर के लॉग कहाँ जाने चाहिए

Oracle 12c से 26ai

तब से जोड़े गए प्रकारों सहित: मूल JSON, BOOLEAN और VECTOR, और JSON-संबंधात्मक द्वैत दृश्यों पर दस्तावेज़ CRUD। जो कुछ भी ईमानदारी से JSON पार नहीं कर सकता — SDO_GEOMETRY, BFILE — पूरी तरह से छोड़ दिया जाता है, और लॉग बताता है कि कौन सा और क्यों।

खाते, टोकन और एक अनुदान मैट्रिक्स

कई खाते, कई कॉन्फ़िगरेशन, प्रति अनुदान एक टिक। एक ही स्कीमा पर अलग-अलग टूल की आवश्यकता वाली दो टीमें दो कॉन्फ़िगरेशन हैं, एक कॉन्फ़िगरेशन और एक नियम नहीं — जो पहले पैनल में गारंटी को बरकरार रखता है।

एक MCP सर्वर के लिए भूमिका-आधारित पहुँच

Oracle के अपने मार्गों के विरुद्ध तौल रहे हैं? Oracle के MCP सर्वर का एक विकल्प पढ़ें, SQLcl MCP सर्वर विकल्प जब एड-हॉक SQL को खारिज कर दिया गया हो, या उस प्रश्न से शुरू करें जो अधिकांश लोग वास्तव में पूछते हैं: क्या मैं एक AI एजेंट को अपने उत्पादन डेटाबेस को क्वेरी करने दे सकता हूँ?

Design time: the Design pages read Oracle's data dictionary, the selection is saved as a config file with no password, and Java is generated and compiled for the selected objects only. Run time: an MCP client calls the proxy on port 8080 with a bearer token; the proxy checks the token, the grant and the rate limit, then forwards to the generated MCP server, which binds the arguments and calls Oracle. The proxy and the server both write to the audit trail.

कॉन्फ़िगरेशन तय करता है कि क्या उत्पन्न होता है; प्रॉक्सी तय करता है कि इसे कौन कॉल कर सकता है।

  1. 01

    ऑब्जेक्ट चुनें

    डिज़ाइन पृष्ठों को Oracle से कनेक्ट करें और उन PL/SQL पैकेजों को टिक करें जिन्हें आप उजागर करने को तैयार हैं, साथ ही कोई भी SQL स्टेटमेंट जो आपने स्वयं लिखे और परीक्षण किए हैं, साथ ही उन तालिकाओं और अनुक्रमों को जिन्हें आप सीधे सुलभ बनाना चाहते हैं। वह चयन एक कॉन्फ़िगरेशन फ़ाइल के रूप में सहेजा जाता है — गुण या JSON, संस्करण-योग्य, और कोई पासवर्ड नहीं रखता। The Design Procedures tab listing PL/SQL packages and procedures with tick boxes पहले PL/SQL, क्योंकि यही बिंदु है: उन पैकेजों और प्रक्रियाओं को टिक करें जिन्हें आप उजागर करने को तैयार हैं, और प्रत्येक एक टूल बन जाता है जिसके पैरामीटर टाइप किए गए हैं। The Design SQL Statements tab, editing a named .sql file with typed bind parameters फिर आपका अपना SQL — वे स्टेटमेंट जो आपने लिखे और परीक्षण किए, इनलाइन टाइप किए गए बाइंड पैरामीटर के साथ। एजेंट इन्हें चलाता है; यह अपना खुद का रचना नहीं करता। The Design Tables tab, with each table ticked and separate MCP read, create, update and delete boxes अंत में तालिकाएँ, प्रति तालिका के बजाय प्रति ऑपरेशन क्यूरेट की गईं — एक नई चुनी गई तालिका केवल-पढ़ने के लिए है, और create, update और delete आपके टिक करने के लिए हैं।
  2. 02

    उत्पन्न करें, संकलित करें, चलाएँ

    रनटाइम पृष्ठ उन सटीक ऑब्जेक्ट्स के लिए Java उत्सर्जित करता है, इसे संकलित करता है, और इसे लूपबैक पर अपने स्वयं के सर्वर के रूप में लॉन्च करता है। जो कुछ भी आपने चुना नहीं, उसके लिए कोई टूल, कोई विधि और कोई क्लास नहीं है — यह बाइनरी से अनुपस्थित है, न कि केवल अस्वीकृत।
    docker run -d --name mcpdbwizard \
      -p 8080:8080 \
      -e MCPDBWIZARD_ORACLE_HOST=db.example.com \
      -e MCPDBWIZARD_ORACLE_PORT=1521 \
      -e MCPDBWIZARD_ORACLE_SID=/PDB1 \
      -e MCPDBWIZARD_ORACLE_USER=appuser \
      -e DB_PASS_FILE=/run/secrets/oracle \
      -v mcpdbwizard-demo:/data \
      ghcr.io/srmadscience/mcpdbwizard:2.0.32
    
  3. 03

    अपने MCP क्लाइंट को प्रॉक्सी पर इंगित करें

    एजेंट 8080 पर, Streamable HTTP पर, उनके खाते को जारी किए गए टोकन के साथ कनेक्ट होते हैं। प्रॉक्सी एकमात्र घटक है जो जानता है कि कौन कॉल कर रहा है — यह खाता, अनुदान और दर सीमा की जाँच करता है, फिर आगे भेजता है।
    {
      "mcpServers": {
        "payroll": {
          "url": "http://localhost:8080/mcp/alice/payroll",
          "headers": {
            "Authorization": "Bearer <id>.<secret>"
          }
        }
      }
    }
    

क्विकस्टार्ट में पूरा मार्ग है, जिसमें टोकन जारी करना और कॉन्फ़िगरेशन अनुदान देना शामिल है।