delinea-mcp

आधिकारिक

Delinea Secret Server और Platform APIs के लिए आधिकारिक Delinea MCP सर्वर

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

  • सीक्रेट खोजें और प्राप्त करेंsearch और fetch का उपयोग करके सीक्रेट खोजें और उनका विवरण प्राप्त करें, जिसमें ऑब्जेक्ट प्रकार search_objects और fetch_objects कॉन्फ़िग द्वारा सीमित होते हैं।
  • मान उजागर किए बिना सीक्रेट प्रबंधित करेंcreate_secret_with_generated_password और update_secret_generated_password के माध्यम से सर्वर-साइड पासवर्ड बनाएं या रोटेट करें, जिससे सीक्रेट मान मॉडल संदर्भ से बाहर रहें।
  • SQL रिपोर्ट चलाएंrun_report के साथ एड-हॉक क्वेरी निष्पादित करें या ai_generate_and_run_report (Azure OpenAI आवश्यक) का उपयोग करके विवरण से SQL उत्पन्न करें।
  • एक्सेस अनुरोध और इनबॉक्स संभालेंhandle_access_request के साथ लंबित अनुरोधों को स्वीकृत या अस्वीकृत करें, get_pending_access_requests के माध्यम से उन्हें सूचीबद्ध करें, और get_inbox_messages और mark_inbox_messages_read के साथ इनबॉक्स संदेश प्रबंधित करें।
  • उपयोगकर्ता, समूह और भूमिकाएँ प्रशासित करेंuser_management, group_management, role_management, और संबंधित सदस्यता टूल जैसे user_role_management और group_role_management के माध्यम से सीक्रेट सर्वर इकाइयाँ प्रबंधित करें।
  • सेवा स्वास्थ्य जाँचें — सेवा संचालित है यह सत्यापित करने के लिए health_check के साथ सीक्रेट सर्वर स्थिति एंडपॉइंट क्वेरी करें।

दस्तावेज़

DelineaMCP

Delinea Secret Server और Platform API के लिए MCP सर्वर

License


समाचार

  • 11 अगस्त 2026 — MCP प्रोटोकॉल v2 (spec revision 2026-07-28, streamable HTTP) और प्रायोगिक StrongDM API समर्थन यहाँ हैं — देखें release notes
  • 11 अगस्त 2026 — हम "LLM को कोई सीक्रेट दिखाई न दे" वाले vault use case के मूल प्रदाता हैं — copycats से सावधान रहें ;)

विशेषताएँ

  • Secret Server के खिलाफ स्वचालित प्रमाणीकरण
  • फ़ोल्डर, सीक्रेट, उपयोगकर्ता, समूह और भूमिकाओं के प्रबंधन के लिए व्यापक Secret Server टूल सेट। इसमें इनबॉक्स और एक्सेस रिक्वेस्ट हेल्पर्स तथा कोडिंग एजेंट उपयोगिताएँ शामिल हैं।
  • नियंत्रित AI इंटरैक्शन के लिए ChatGPT संगतता उपकरण (search और fetch)।
  • वैकल्पिक Delinea Platform उपयोगकर्ता प्रबंधन उपकरण
  • वैकल्पिक प्रायोगिक StrongDM (SDM) उपकरण — एक्सेस अनुदान, एनटाइटलमेंट ऑडिट, उपयोगकर्ता/भूमिका जीवनचक्र, स्वास्थ्य और गतिविधि रिपोर्ट (देखें docs/strongdm.md; इंस्टॉल करें pip install "delinea-mcp[strongdm]")
  • Streamable HTTP (/mcp), लीगेसी Server-Sent Events (/mcp/sse) और STDIO ट्रांसपोर्ट
  • MCP विनिर्देश के अनुसार डायनामिक क्लाइंट पंजीकरण के साथ OAuth 2.0
  • सुरक्षित कनेक्शन के लिए TLS समर्थन
  • तैयार-से-चलाने योग्य Docker इमेज और डेवलपमेंट सर्वर एंट्री पॉइंट
  • ChatGPT, Claude Desktop, रिमोट Claude कनेक्टर, VSCode Copilot और openwebui के साथ परीक्षण किया गया

स्थापना

[!NOTE]

यह प्रोजेक्ट uv (https://github.com/astral-sh/uv) का उपयोग करता है, लेकिन यदि आप इसके बिना कमांड चलाना पसंद करते हैं, तो आप pip और venv कमांड सामान्य रूप से चला सकते हैं यदि वांछित हो।

  • Uv इंस्टॉल करें
  • प्रोजेक्ट प्रारंभ करें: uv pip sync requirements.txt
  • uv run server.py --config config.json का उपयोग करें

कॉन्फ़िगरेशन

पासवर्ड जैसे सीक्रेट पर्यावरण चरों से आते रहते हैं। अपने शेल वातावरण में DELINEA_PASSWORD प्रदान करें। वैकल्पिक सुविधाएँ अतिरिक्त चरों पर निर्भर करती हैं जैसे AZURE_OPENAI_KEY या PLATFORM_SERVICE_PASSWORD

गैर-सीक्रेट पैरामीटर config.json में होते हैं:

{
  "delinea_username": "<username>",
  "delinea_base_url": "https://your-secret-server/SecretServer",
  "platform_hostname": "<tenant>.secureplatform.io",
  "platform_service_account": "<service_account>",
  "platform_tenant_id": "<tenant_id>",
  "azure_openai_endpoint": "https://example.openai.azure.com/",
  "azure_openai_deployment": "<deployment_name>",
  "auth_mode": "none",
  "transport_mode": "stdio",
  "chatgpt_disable_scope_checks": false,
  "port": 8000,
  "debug": false,
  "external_hostname": null,
  "ssl_keyfile": null,
  "ssl_certfile": null,
  "registration_psk": null,
  "jwt_key_path": ".cache/jwt.json",
  "oauth_db_path": ".cache/oauth.db",
  "enabled_tools": []
}

Secret Server Cloud के लिए बस क्लाउड URL का उपयोग करें बिना /SecretServer के। HTTPS सक्षम करने के लिए ssl_keyfile और ssl_certfile निर्दिष्ट करें। Let's Encrypt के लिए, privkey.pem और fullchain.pem फ़ाइलों का उपयोग करें।

कॉन्फ़िगरेशन फ़ाइल निम्नलिखित कुंजियों का समर्थन करती है:

  • delinea_username - Secret Server उपयोगकर्ता नाम। आप जो कार्य करना चाहते हैं उन्हें करने की अनुमति वाला एक प्रोग्रामेटिक उपयोगकर्ता होना चाहिए।
  • delinea_base_url - आपके Secret Server इंस्टेंस का आधार URL।
  • platform_hostname - Platform टेनेंट होस्टनाम (Platform उपकरणों को सक्षम करता है)।
  • platform_service_account - Platform API के साथ प्रयुक्त सेवा खाता।
  • platform_tenant_id - Platform API अनुरोधों के लिए टेनेंट ID।
  • strongdm_api_host - StrongDM नियंत्रण विमान (डिफ़ॉल्ट app.strongdm.com:443; UK/EU संस्करण उपलब्ध)। क्रेडेंशियल SDM_API_ACCESS_KEY / SDM_API_SECRET_KEY env vars से आते हैं; देखें docs/strongdm.md
  • azure_openai_endpoint - Azure OpenAI एंडपॉइंट। केवल यदि आप स्वचालित रिपोर्ट निर्माण चाहते हैं तो (अधिकांश एजेंट अपनी रिपोर्ट SQL उत्पन्न कर सकते हैं, इसलिए जब तक आवश्यक न हो सक्षम न करें)।
  • azure_openai_deployment - Azure OpenAI के लिए तैनाती का नाम।
  • auth_mode - प्रमाणीकरण मोड (none या oauth)। OAuth स्पष्ट रूप से stdio ट्रांसपोर्ट के साथ काम नहीं करता।
  • transport_mode - कमांड लाइन के लिए stdio या HTTP के लिए ssesse मोड में सर्वर /mcp पर streamable HTTP एंडपॉइंट (वर्तमान MCP ट्रांसपोर्ट, प्रोटोकॉल संशोधन 2024-11-05 से 2026-07-28 तक) और /mcp/sse + /messages/ पर लीगेसी HTTP+SSE एंडपॉइंट दोनों प्रदर्शित करता है।
  • streamable_http_stateless - डिफ़ॉल्ट true; सर्वर-साइड सत्रों के बिना /mcp चलाएँ (रिमोट कनेक्टर्स के लिए अनुशंसित)। स्टैंडअलोन GET स्ट्रीम के साथ सत्र-आधारित संचालन सक्षम करने के लिए false सेट करें।
  • streamable_http_json_response - डिफ़ॉल्ट true; /mcp पर SSE-फ्रेम वाले उत्तरों के बजाय सादे JSON के साथ उत्तर दें।
  • chatgpt_disable_scope_checks - ChatGPT अनुरोधों पर दायरा सत्यापन छोड़ें। केवल यदि आपको ChatGPT से कनेक्शन समस्याएँ आती हैं तो सक्षम करें।
  • port - sse मोड में HTTP सर्वर के लिए पोर्ट।
  • debug - विस्तृत लॉगिंग सक्षम करें।
  • external_hostname - OAuth टोकन ऑडियंस बनाते समय उपयोग किया जाने वाला होस्टनाम। HTTP(S) उपसर्ग या पोर्ट न जोड़ें।
  • ssl_keyfile - HTTPS के लिए SSL कुंजी का पथ। (जैसे privkey.pem)
  • ssl_certfile - HTTPS के लिए SSL प्रमाणपत्र का पथ। (जैसे fullchain.pem)
  • registration_psk - OAuth क्लाइंट पंजीकृत करने के लिए आवश्यक पूर्व-साझा कुंजी। OAuth कनेक्शन अनुमोदित करने के लिए आपको यह सीक्रेट अपने ब्राउज़र में टाइप करना होगा।
  • jwt_key_path - OAuth टोकन के लिए उपयोग किए जाने वाले RSA कुंजी जोड़े का स्थान। डिफ़ॉल्ट .cache/jwt.json। यदि मौजूद नहीं है तो स्वतः उत्पन्न होता है।
  • oauth_db_path - OAuth डेटाबेस फ़ाइल का पथ। डिफ़ॉल्ट .cache/oauth.db। यदि मौजूद नहीं है तो स्वतः उत्पन्न होता है।
  • enabled_tools - पंजीकृत करने के लिए टूल नामों की सूची। एक खाली सूची सभी उपकरणों को सक्षम करती है। प्रति उपयोग मामले या कार्य के अनुसार चुनिंदा रूप से उपकरणों को सक्षम करने की अत्यधिक अनुशंसा की जाती है। कुछ उदाहरणों के लिए docs/ फ़ोल्डर देखें।
  • search_objects - search टूल के लिए अनुमत ऑब्जेक्ट प्रकार। डिफ़ॉल्ट ["secret"] लेकिन user, folder, group और role शामिल कर सकते हैं।
  • fetch_objects - fetch टूल के लिए अनुमत ऑब्जेक्ट प्रकार। डिफ़ॉल्ट ["secret"] लेकिन search_objects के समान मान शामिल कर सकते हैं।

सर्वर चलाना

डेवलपमेंट मोड में सर्वर को स्थानीय रूप से शुरू करें:

python server.py

स्टार्टअप पर सर्वर एक बियरर टोकन का अनुरोध करता है और बाद के API अनुरोधों के लिए इसे संग्रहीत करता है। यह प्रोजेक्ट Secret Server API के साथ और अधिक एकीकृत करने के लिए विस्तारित किया जाएगा।

MCP उपकरण

सर्वर Secret Server, Delinea Platform पहचान निर्देशिका, और (वैकल्पिक रूप से) StrongDM के लिए MCP उपकरण प्रदान करता है। प्रत्येक उपकरण tools/list के माध्यम से व्यवहार एनोटेशन (read-only/destructive संकेत) प्रकाशित करता है।

ChatGPT / deep-research संगतता

  • search(query) - एकीकृत खोज जो {id, title, url} परिणाम लौटाती है; ऑब्जेक्ट प्रकार search_objects कॉन्फ़िग कुंजी द्वारा सीमित हैं (डिफ़ॉल्ट: केवल सीक्रेट)।
  • fetch(id) - search द्वारा सतह पर लाया गया एक ऑब्जेक्ट पुनर्प्राप्त करें; fetch_objects द्वारा सीमित।

Secret Server

  • run_report(sql_query, report_name=None) - एक अस्थायी रिपोर्ट बनाएँ और निष्पादित करें।
  • ai_generate_and_run_report(description) - Azure OpenAI का उपयोग करके SQL उत्पन्न करें और चलाएँ। Azure OpenAI चरों की आवश्यकता है।
  • list_example_reports() - नमूना प्रश्नों और तालिका जानकारी की सूची।
  • get_secret(id, summary=False) - एक सीक्रेट या सारांश विवरण पुनर्प्राप्त करें।
  • get_folder(id) - फ़ोल्डर मेटाडेटा और बच्चों को प्राप्त करें।
  • search_secrets(query, lookup=False) - सीक्रेट खोजें या देखें।
  • search_folders(query, lookup=False) - फ़ोल्डर खोजें या देखें।
  • get_secret_environment_variable(secret_id, environment) - निर्दिष्ट शेल में सीक्रेट क्रेडेंशियल प्राप्त करने के लिए एक स्क्रिप्ट आउटपुट करें।
  • check_secret_template(template_id) - सीक्रेट टेम्पलेट विवरण प्राप्त करें।
  • check_secret_template_field(template_id, field_id) - जाँचें कि क्या किसी टेम्पलेट में एक फ़ील्ड है।
  • get_secret_template_field(field_id) - ID द्वारा किसी विशिष्ट सीक्रेट टेम्पलेट फ़ील्ड के बारे में विवरण पुनर्प्राप्त करें।
  • handle_access_request(request_id, status, response_comment, start_date=None, expiration_date=None) - एक एक्सेस अनुरोध को अनुमोदित या अस्वीकार करें।
  • get_pending_access_requests() - लंबित एक्सेस अनुरोधों की सूची बनाएँ।
  • get_inbox_messages(read_status_filter=None, take=20, skip=0) - इनबॉक्स संदेश पुनर्प्राप्त करें।
  • mark_inbox_messages_read(message_ids, read=True) - संदेशों को पढ़े या अपठित के रूप में चिह्नित करें।
  • create_secret_with_generated_password(name, secret_template_id, password_field_id, items, folder_id=None, site_id=None, comment=None) - एक सीक्रेट बनाएँ जिसका पासवर्ड सर्वर-साइड उत्पन्न होता है; केवल सैनिटाइज़ किया गया मेटाडेटा लौटाया जाता है, मान कभी मॉडल तक नहीं पहुँचता।
  • update_secret_generated_password(secret_id, field_slug, password_field_id, comment=None) - मान सतह पर लाए बिना सर्वर-साइड सीक्रेट का पासवर्ड घुमाएँ।
  • update_secret_fields(secret_id, field_updates, comment=None, allow_password_fields=False) - read-template → गैर-पासवर्ड फ़ील्ड बदलें → verify प्रवाह; स्पष्ट रूप से अनुमति न देने पर पासवर्ड-चिह्नित फ़ील्ड को मना करता है।
  • set_secret_field_environment_variable(secret_id, field_slug, environment, source="stdin", comment=None) - एक शेल स्क्रिप्ट (bash/powershell/cmd) उत्सर्जित करें जो मान को स्थानीय रूप से पढ़ता है और उसे सीक्रेट फ़ील्ड में डालता है, ताकि मान पूरी तरह से मॉडल को बायपास कर दे।
  • bulk_user_response(user_ids, scenario, comment, confirm=False) - विचारशील इंसिडेंट कॉम्बिनेटर बल्क-उपयोगकर्ता ऑपरेशन API पर। परिदृश्य: compromise, offboard, unlock, reenable, force_logout; आवश्यकता है confirm=True प्लस एक गैर-खाली ऑडिट टिप्पणी, और अपुष्ट होने पर पूर्वावलोकन।
  • role_management(action, role_id=None, data=None, params=None) - भूमिकाएँ प्रबंधित करें। action list, get, create या update हो सकता है। भूमिकाओं को सूचीबद्ध करते समय params के साथ वैकल्पिक क्वेरी पैरामीटर पास करें। उदाहरण: role_management("update", role_id=3, data={"name": "New Role"})
  • user_role_management(action, user_id, role_ids=None) - किसी उपयोगकर्ता से भूमिकाएँ असाइन या हटाएँ। action get, add या remove है और role_ids जोड़/हटाने के संचालन के लिए भूमिका पहचानकर्ताओं की एक सूची है।
  • group_management(action, group_id=None, data=None, params=None) - समूहों को संभालें। action get, list, create या delete हो सकता है। get/delete के लिए group_id प्रदान करें और समूह बनाते समय data
  • folder_management(action, folder_id=None, data=None, params=None) - फ़ोल्डर प्रबंधित करें। action get, list, create, update या delete हो सकता है। get, update या delete के लिए folder_id प्रदान करें और फ़ोल्डर बनाते या अपडेट करते समय data आपूर्ति करें।
  • user_group_management(action, user_id, group_ids=None) - किसी उपयोगकर्ता के लिए समूह सदस्यता प्रबंधित करें। action get, add या remove है। सदस्यता जोड़ते या हटाते समय group_ids की एक सूची आपूर्ति करें।
  • group_role_management(action, group_id, role_ids=None) - समूह पर भूमिकाएँ नियंत्रित करें। list, add या remove क्रियाओं का उपयोग करें। जोड़ते या हटाते समय role_ids प्रदान करें।
  • health_check() - Secret Server स्वास्थ्य जाँच एंडपॉइंट को क्वेरी करें और वर्तमान सेवा स्थिति लौटाएँ।

Delinea Platform उपयोगकर्ता और भूमिकाएँ

v1.0.0 से विहित उपयोगकर्ता उपकरण Delinea Platform पहचान निर्देशिका को लक्षित करते हैं (आवश्यकता है platform_hostname + PLATFORM_SERVICE_* क्रेडेंशियल; उनके बिना उपकरण विफल होने के बजाय मार्गदर्शन लौटाते हैं):

  • user_management(action, user_id=None, data=None, username=None) - Platform उपयोगकर्ता CRUD। action get, create, update, delete या search स्वीकार करता है।
  • search_users(query) - Platform उपयोगकर्ता निर्देशिका खोजें।
  • platform_role_management(action, role_id=None, data=None, page_size=100, query="%") - Platform भूमिका CRUD (list, get, create, update, delete); भूमिका परिवर्तन खोज-संचालित होते हैं और उन टेनेंट्स पर मार्गदर्शन लौटाते हैं जिनका API दायरा उन्हें उजागर नहीं करता है।
  • platform_user_role_management(action, role_id, user_principals=None) - list, add या remove किसी Platform भूमिका पर उपयोगकर्ता।
  • platform_user_management(...) - user_management का पदावनत उपनाम।

Secret Server स्थानीय उपयोगकर्ता (लेगेसी)

केवल SS-तैनाती के लिए Platform कॉन्फ़िगर किए बिना:

  • secretserver_local_user_management(action, user_id=None, data=None, skip=0, take=20, is_exporting=False) - pre-v1.0.0 Secret Server उपयोगकर्ता संचालन: get, create, update, delete, list_sessions, reset_2fa, reset_password, lock_out। उदाहरण: secretserver_local_user_management("reset_password", user_id=42, data={"newPassword": "Pa$$w0rd"})
  • search_secretserver_local_users(query) - Secret Server के स्थानीय उपयोगकर्ता स्टोर खोजें।

StrongDM उपकरण (वैकल्पिक, प्रायोगिक)

प्रायोगिक: StrongDM बैकएंड को अभी तक एक जीवित SDM संगठन के खिलाफ सत्यापित नहीं किया गया है (केवल SDK सतह के खिलाफ यूनिट-परीक्षण)। कच्चे किनारों की उम्मीद करें और मुद्दों की रिपोर्ट करें। strongdm अतिरिक्त के माध्यम से स्थापित; पूर्ण गाइड के लिए docs/strongdm.md देखें। sdm_search, sdm_audit_access, sdm_grant_access (समय-बाधित just-in-time या स्थायी अनुदान), sdm_revoke_access, sdm_user_management (onboard/offboard प्रवाह), sdm_role_management, sdm_resource_health, sdm_access_requests, sdm_activity_report, sdm_network_status। विनाशकारी क्रियाएँ ऑडिट टिप्पणियों के साथ पुष्टि-गेटेड हैं; अस्पष्ट नाम मिलान बिना परिवर्तन के उम्मीदवार लौटाते हैं।

प्रमाणित करने के लिए ऊपर वर्णित सर्वर कॉन्फ़िगरेशन चरों का उपयोग करें। Azure OpenAI चरों के अनुपस्थित होने पर AI उपकरण स्वचालित रूप से अक्षम हो जाता है। केवल config.json में सूचीबद्ध उपकरण नाम पंजीकृत होंगे। एक खाली सूची हर उपकरण को सक्षम करती है।

उपयोग के मामले

दस्तावेज़ सर्वर से उपकरणों को जोड़ने के लिए कई वर्कफ़्लो कवर करता है:

डॉकर त्वरित आरंभ

स्थानीय रूप से Python निर्भरताएँ स्थापित किए बिना MCP सर्वर चलाने के लिए एक Dockerfile प्रदान किया गया है।

  1. इमेज बनाएँ:
docker build -t dev.local/delinea-mcp:latest .
  1. सर्वर चलाएँ (अपने क्रेडेंशियल पर्यावरण चर के माध्यम से पास करें):
docker run --rm -p 8000:8000 \
  -e DELINEA_PASSWORD=<password> \
  -e PLATFORM_SERVICE_PASSWORD=<password> \
  -e DELINEA_DEBUG=1 \
  -e AZURE_OPENAI_KEY=<your-key-or-appropriate-token> \
  -v $(pwd)/config.json:/app/config.json:ro \
  -v mcp-data:/app/data \
  dev.local/delinea-mcp:latest

config.json को ऊपर दिखाए अनुसार अपने उपयोगकर्ता नामों और URL से भरें।

कंटेनर oauth.db और jwt.json को /app/data में संग्रहीत करता है। एक वॉल्यूम माउंट करें (ऊपर mcp-data के रूप में दिखाया गया है) ताकि ये फ़ाइलें और कोई भी HTTPS प्रमाणपत्र रनों के बीच बने रहें।

कनेक्शन त्रुटियों से बचने के लिए <https://your-secret-server/SecretServer> को अपने Secret Server इंस्टेंस के आधार URL से बदलें।

सर्वर डिफ़ॉल्ट रूप से python server.py का उपयोग करके पोर्ट 8000 पर शुरू होगा। डिफ़ॉल्ट को ओवरराइड करने के लिए config.json में port विकल्प सेट करें। सभी आने वाले HTTP अनुरोधों को लॉग करने के लिए debug: true सक्षम करें।

उदाहरण स्क्रिप्ट्स

manual_secret_request.py स्क्रिप्ट दिखाती है कि किसी विशिष्ट सीक्रेट ID के लिए OAuth टोकन कैसे प्राप्त करें:

python scripts/manual_secret_request.py <Secret_ID>

स्क्रिप्ट चलाने से पहले सीक्रेट के लिए पर्यावरण चर SECRET_USERNAME_<id> और SECRET_PASSWORD_<id> सेट करें। वैकल्पिक रूप से डिफ़ॉल्ट https://localhost/SecretServer को ओवरराइड करने के लिए DELINEA_BASE_URL सेट करें।

परीक्षण चलाना

कवरेज के साथ यूनिट परीक्षण चलाएँ (CI न्यूनतम 70% लागू करता है):

pip install -r requirements.txt
coverage run -m pytest -q
coverage report --omit "tests/*"

लाइव परीक्षण

कुछ एकीकरण परीक्षणों के लिए मान्य क्रेडेंशियल आवश्यक हैं। सूट चलाने से पहले निम्नलिखित पर्यावरण चर और वैकल्पिक LIVE_SECRET_ID सेट करें:

export DELINEA_PASSWORD=<password>
# Optional secret used by tests/test_live.py
export LIVE_SECRET_ID=<id>
export SECRET_USERNAME_<id>=<secret_username>
export SECRET_PASSWORD_<id>=<secret_password>

जब ये चर मौजूद होते हैं, तो लाइव परीक्षण वास्तविक API अनुरोध करेंगे।

उत्पादन परिनियोजन

निर्भरताएँ requirements.txt में पिन की गई हैं और रिलीज़ Semantic Versioning का उपयोग करके टैग की जाती हैं। टैग किए गए कमिट से Docker इमेज बनाएँ और इसे अपने उत्पादन वातावरण में परिनियोजित करें, आवश्यक पर्यावरण चर (DELINEA_USERNAME, DELINEA_PASSWORD, वैकल्पिक रूप से DELINEA_BASE_URL) पास करते हुए। वैकल्पिक सुविधाएँ अतिरिक्त चर पर निर्भर करती हैं:

  • PLATFORM_SERVICE_PASSWORD के साथ PLATFORM_HOSTNAME, PLATFORM_SERVICE_ACCOUNT, और PLATFORM_TENANT_ID उपयोगकर्ता प्रबंधन उपकरणों को सक्षम करता है।
  • AZURE_OPENAI_KEY के साथ AZURE_OPENAI_ENDPOINT और AZURE_OPENAI_DEPLOYMENT AI रिपोर्ट निर्माण सहायक को सक्षम करते हैं।
  • SDM_API_ACCESS_KEY और SDM_API_SECRET_KEY प्रयोगात्मक StrongDM उपकरणों को सक्षम करते हैं (इसके लिए strongdm अतिरिक्त की आवश्यकता होती है; docs/strongdm.md देखें)।

OAuth या SSE परिवहन के साथ चलाते समय आपको registration_psk प्रदान करने और external_hostname या HTTPS प्रमाणपत्र फ़ाइलें कॉन्फ़िगर करने की आवश्यकता हो सकती है।

रिपॉजिटरी संरचना

  • delinea_mcp/ - MCP उपकरणों वाला पैकेज: tools.py (Secret Server), user_platform_tools.py (Delinea Platform), secretserver_users.py (SS-स्थानीय उपयोगकर्ता), strongdm_tools.py (StrongDM, वैकल्पिक), साथ ही transports/ (SSE + स्ट्रीमेबल HTTP) और auth/ (एम्बेडेड OAuth प्राधिकरण सर्वर)।
  • server.py - पतला प्रवेश बिंदु जो MCP सर्वर के साथ सब कुछ पंजीकृत करता है।
  • docs/ - परियोजना दस्तावेज़ीकरण और उत्पन्न delinea-secret-server-openapi-spec.json
  • scripts/ - सहायक उदाहरण जिनमें manual_secret_request.py शामिल है।

सुरक्षा संबंधी विचार

एम्बेडेड OAuth प्राधिकरण सर्वर विकास, परीक्षण और छोटे परिनियोजन के लिए एक सुविधा है; बड़े परिनियोजन को सर्वर को अपने संगठन के पहचान प्रदाता के साथ सामने रखना चाहिए। वर्तमान सुरक्षा उपाय:

  • क्लाइंट पंजीकरण (/oauth/register) और प्राधिकरण फ़ॉर्म दोनों को registration_psk साझा रहस्य की आवश्यकता होती है (स्थिर-समय तुलना)।
  • redirect_uri मानों को प्राधिकरण फ़ॉर्म और कोड रीडायरेक्ट दोनों पर क्लाइंट के लिए पंजीकृत URI के विरुद्ध मान्य किया जाता है।
  • एक्सेस टोकन दर्शक-बद्ध RS256 JWT हैं; संसाधन खोज RFC 9728 (401/403 प्रतिक्रियाओं पर /.well-known/oauth-protected-resource और WWW-Authenticate हेडर) का पालन करती है।
  • हमेशा TLS के साथ परिनियोजित करें (ssl_keyfile/ssl_certfile या एक समाप्त करने वाला प्रॉक्सी) — बियरर टोकन और रहस्य हर अनुरोध में पारगमन करते हैं।
  • प्रति उपयोग मामले में enabled_tools के साथ टूल एक्सपोज़र को सीमित करें; सीक्रेट मान डिज़ाइन द्वारा मॉडल संदर्भ से बाहर रखे जाते हैं (सर्वर-साइड पासवर्ड जनरेशन, env-var स्क्रिप्ट इनडायरेक्शन, पासवर्ड-फ़ील्ड गार्ड)।

रिलीज़ नोट्स

नवीनतम सुविधाओं और रोडमैप आइटमों का सारांश देखने के लिए CHANGELOG.md देखें।

रोडमैप

  1. पासथ्रू प्रमाणीकरण
  2. OAuth क्लाइंट ID मेटाडेटा दस्तावेज़ (CIMD) क्लाइंट समर्थन (MCP प्रोटोकॉल संशोधन 2026-07-28 के अनुसार डायनामिक क्लाइंट पंजीकरण अप्रचलित है; PSK-गेटेड /oauth/register प्रवाह वर्तमान कनेक्टरों के लिए काम करता रहता है)
  3. Delinea Platform पर टूल कवरेज का विस्तार करें और अन्य Delinea उत्पाद जोड़ें

योगदान

योगदान का स्वागत है! कृपया किसी भी सुधार के लिए issues या pull requests खोलें। सभी नए कोड में यूनिट परीक्षण शामिल होने चाहिए और मौजूदा परीक्षण सूट पास करना चाहिए।

लाइसेंस

यह परियोजना MIT License के अंतर्गत लाइसेंस प्राप्त है।