ocireg MCP Server
आधिकारिकएक SSE-आधारित MCP सर्वर जो LLM-संचालित अनुप्रयोगों को OCI रजिस्ट्रियों के साथ इंटरैक्ट करने की अनुमति देता है। यह कंटेनर इमेज के बारे में जानकारी प्राप्त करने, टैग सूचीबद्ध करने और अधिक के लिए उपकरण प्रदान करता है।
दस्तावेज़
OCI रजिस्ट्री MCP सर्वर
एक MCP (मॉडल कॉन्टेक्स्ट प्रोटोकॉल) सर्वर जो OCI रजिस्ट्रियों और इमेज संदर्भों
की क्वेरी करने के लिए उपकरण प्रदान करता है।
अवलोकन
यह प्रोजेक्ट एक SSE-आधारित MCP सर्वर लागू करता है जो LLM-संचालित अनुप्रयोगों को OCI रजिस्ट्रियों के साथ इंटरैक्ट करने की अनुमति देता है। यह कंटेनर इमेजों के बारे में जानकारी प्राप्त करने, टैग सूचीबद्ध करने और अधिक के लिए उपकरण प्रदान करता है।
विशेषताएँ
- OCI इमेजों के बारे में जानकारी प्राप्त करें
- रिपॉजिटरी के लिए टैग सूचीबद्ध करें
- इमेज मैनिफेस्ट प्राप्त करें
- इमेज कॉन्फ़िग प्राप्त करें
MCP उपकरण
सर्वर निम्नलिखित MCP उपकरण प्रदान करता है:
get_image_info
एक OCI इमेज के बारे में जानकारी प्राप्त करें।
इनपुट:
image_ref: इमेज संदर्भ (जैसे, docker.io/library/alpine:latest)
आउटपुट:
- इमेज जानकारी जिसमें डाइजेस्ट, आकार, आर्किटेक्चर, OS, निर्माण तिथि और लेयरों की संख्या शामिल है
list_tags
एक रिपॉजिटरी के लिए टैग सूचीबद्ध करें।
इनपुट:
repository: रिपॉजिटरी नाम (जैसे, docker.io/library/alpine)
आउटपुट:
- रिपॉजिटरी के लिए टैग की सूची
get_image_manifest
एक OCI इमेज के लिए मैनिफेस्ट प्राप्त करें।
इनपुट:
image_ref: इमेज संदर्भ (जैसे, docker.io/library/alpine:latest)
आउटपुट:
- इमेज मैनिफेस्ट
get_image_config
एक OCI इमेज के लिए कॉन्फ़िग प्राप्त करें।
इनपुट:
image_ref: इमेज संदर्भ (जैसे, docker.io/library/alpine:latest)
आउटपुट:
- इमेज कॉन्फ़िग
उपयोग
ToolHive के साथ चलाना (अनुशंसित)
OCI रजिस्ट्री MCP सर्वर चलाने का सबसे आसान तरीका ToolHive का उपयोग करना है, जो MCP सर्वरों की सुरक्षित, कंटेनरीकृत तैनाती प्रदान करता है:
# Install ToolHive (if not already installed)
# See: https://docs.stacklok.com/toolhive/guides-cli/install
# Register a supported client so ToolHive can auto-configure your environment
thv client setup
# Run the OCI Registry MCP server (packaged as 'oci-registry' in ToolHive)
thv run oci-registry
# List running servers
thv list
# Get detailed information about the server
thv registry info oci-registry
सर्वर आपके MCP-संगत क्लाइंट के लिए उपलब्ध होगा और इमेज जानकारी के लिए OCI रजिस्ट्रियों से क्वेरी कर सकता है।
ToolHive के साथ प्रमाणीकरण
यदि आपको निजी रजिस्ट्रियों तक पहुँचने की आवश्यकता है, तो आप ToolHive के गुप्त प्रबंधन का उपयोग करके प्रमाणीकरण क्रेडेंशियल प्रदान कर सकते हैं:
# For bearer token authentication
thv secret set oci-token
# Enter your bearer token when prompted
thv run --secret oci-token,target=OCI_TOKEN oci-registry
# For username/password authentication
thv secret set oci-username
thv secret set oci-password
# Enter your credentials when prompted
thv run --secret oci-username,target=OCI_USERNAME --secret oci-password,target=OCI_PASSWORD oci-registry
विकास
पूर्वापेक्षाएँ
- Go 1.21 या बाद का संस्करण
- OCI रजिस्ट्रियों तक पहुँच
प्रमाणीकरण
सर्वर निजी OCI रजिस्ट्रियों तक पहुँचने के लिए निम्नलिखित प्रमाणीकरण विधियों का समर्थन करता है (प्राथमिकता के क्रम में):
-
HTTP प्राधिकरण हेडर (सर्वोच्च प्राथमिकता): HTTP अनुरोध के
Authorizationहेडर में एक बियरर टोकन शामिल करें:Authorization: Bearer <your-token>- यह विधि अन्य सभी प्रमाणीकरण विधियों पर प्राथमिकता लेती है
- जब यह मौजूद हो, तो पर्यावरण चर और Docker कॉन्फ़िग अनदेखा कर दिए जाते हैं
-
बियरर टोकन पर्यावरण चर: निम्नलिखित पर्यावरण चर सेट करें:
OCI_TOKEN: रजिस्ट्री प्रमाणीकरण के लिए बियरर टोकन
-
उपयोगकर्ता नाम और पासवर्ड: निम्नलिखित पर्यावरण चर सेट करें:
OCI_USERNAME: रजिस्ट्री प्रमाणीकरण के लिए उपयोगकर्ता नामOCI_PASSWORD: रजिस्ट्री प्रमाणीकरण के लिए पासवर्ड
-
Docker कॉन्फ़िग (न्यूनतम प्राथमिकता): यदि कोई अन्य प्रमाणीकरण प्रदान नहीं किया गया है, तो सर्वर डिफ़ॉल्ट Docker कीचेन का उपयोग करेगा, जो
~/.docker/config.jsonसे क्रेडेंशियल पढ़ता है।
उदाहरण:
# HTTP Authorization header (for per-request authentication)
# This is handled automatically by the MCP client when making requests
# Example: curl -H "Authorization: Bearer mytoken" http://localhost:8080/...
# Bearer token authentication via environment variable
export OCI_TOKEN=mytoken
# Username/password authentication via environment variables
export OCI_USERNAME=myuser
export OCI_PASSWORD=mypassword
पोर्ट कॉन्फ़िगरेशन
सर्वर को किसी विशिष्ट पोर्ट पर सुनने के लिए निम्नलिखित में से किसी एक का उपयोग करके कॉन्फ़िगर किया जा सकता है:
-
पर्यावरण चर:
MCP_PORT: सुनने के लिए पोर्ट संख्या (0 और 65535 के बीच होनी चाहिए)- यदि सेट नहीं है या अमान्य है, तो डिफ़ॉल्ट पोर्ट 8080 है
-
कमांड-लाइन फ़्लैग:
-port: पर्यावरण चर सेटिंग को ओवरराइड करता है (0 और 65535 के बीच होना चाहिए)- यदि अमान्य पोर्ट प्रदान किया गया है तो यह डिफ़ॉल्ट पोर्ट 8080 पर आ जाता है
- उदाहरण:
./ocireg-mcp -port 9090
परीक्षण
go test ./...
लिंटिंग
golangci-lint run
योगदान
हम इस MCP सर्वर में योगदान का स्वागत करते हैं! यदि आप योगदान करना चाहते हैं, तो कृपया आरंभ करने के विवरण के लिए CONTRIBUTING गाइड की समीक्षा करें।
यदि आपको कोई बग मिलता है या कोई सुविधा अनुरोध है, तो कृपया रिपॉजिटरी में
एक मुद्दा खोलें या हमारे
सामुदायिक Discord सर्वर पर #mcp-servers चैनल में हमसे
जुड़ें।
लाइसेंस
यह प्रोजेक्ट Apache v2 लाइसेंस के तहत लाइसेंस प्राप्त है - विवरण के लिए LICENSE फ़ाइल देखें।