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 सर्वर
समाचार
- 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_KEYenv 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 के लिएsse।sseमोड में सर्वर/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)- भूमिकाएँ प्रबंधित करें।actionlist,get,createयाupdateहो सकता है। भूमिकाओं को सूचीबद्ध करते समयparamsके साथ वैकल्पिक क्वेरी पैरामीटर पास करें। उदाहरण:role_management("update", role_id=3, data={"name": "New Role"})।user_role_management(action, user_id, role_ids=None)- किसी उपयोगकर्ता से भूमिकाएँ असाइन या हटाएँ।actionget,addयाremoveहै औरrole_idsजोड़/हटाने के संचालन के लिए भूमिका पहचानकर्ताओं की एक सूची है।group_management(action, group_id=None, data=None, params=None)- समूहों को संभालें।actionget,list,createयाdeleteहो सकता है। get/delete के लिएgroup_idप्रदान करें और समूह बनाते समयdata।folder_management(action, folder_id=None, data=None, params=None)- फ़ोल्डर प्रबंधित करें।actionget,list,create,updateयाdeleteहो सकता है। get, update या delete के लिएfolder_idप्रदान करें और फ़ोल्डर बनाते या अपडेट करते समयdataआपूर्ति करें।user_group_management(action, user_id, group_ids=None)- किसी उपयोगकर्ता के लिए समूह सदस्यता प्रबंधित करें।actionget,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।actionget,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 में सूचीबद्ध उपकरण नाम पंजीकृत होंगे। एक खाली सूची हर उपकरण को सक्षम करती है।
उपयोग के मामले
दस्तावेज़ सर्वर से उपकरणों को जोड़ने के लिए कई वर्कफ़्लो कवर करता है:
- ChatGPT Custom Connector
- Claude Desktop
- Remote Claude Connector
- openwebui for Administration
- VSCode Copilot
डॉकर त्वरित आरंभ
स्थानीय रूप से Python निर्भरताएँ स्थापित किए बिना MCP सर्वर चलाने के लिए एक Dockerfile प्रदान किया गया है।
- इमेज बनाएँ:
docker build -t dev.local/delinea-mcp:latest .
- सर्वर चलाएँ (अपने क्रेडेंशियल पर्यावरण चर के माध्यम से पास करें):
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_DEPLOYMENTAI रिपोर्ट निर्माण सहायक को सक्षम करते हैं।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 देखें।
रोडमैप
- पासथ्रू प्रमाणीकरण
- OAuth क्लाइंट ID मेटाडेटा दस्तावेज़ (CIMD) क्लाइंट समर्थन (MCP प्रोटोकॉल संशोधन 2026-07-28 के अनुसार डायनामिक क्लाइंट पंजीकरण अप्रचलित है; PSK-गेटेड
/oauth/registerप्रवाह वर्तमान कनेक्टरों के लिए काम करता रहता है) - Delinea Platform पर टूल कवरेज का विस्तार करें और अन्य Delinea उत्पाद जोड़ें
योगदान
योगदान का स्वागत है! कृपया किसी भी सुधार के लिए issues या pull requests खोलें। सभी नए कोड में यूनिट परीक्षण शामिल होने चाहिए और मौजूदा परीक्षण सूट पास करना चाहिए।
लाइसेंस
यह परियोजना MIT License के अंतर्गत लाइसेंस प्राप्त है।