ocireg
chính thứcMáy chủ MCP dựa trên SSE cho phép các ứng dụng hỗ trợ LLM tương tác với các registry OCI. Nó cung cấp các công cụ để truy xuất thông tin về hình ảnh container, liệt kê các thẻ, và hơn thế nữa.
Bạn có thể làm gì với Ocireg MCP?
- Lấy thông tin chi tiết ảnh — Yêu cầu thông tin về digest, kích thước, kiến trúc, hệ điều hành, ngày tạo và số lớp của bất kỳ ảnh công khai nào bằng
get_image_info. - Liệt kê thẻ kho lưu trữ — Truy xuất tất cả các thẻ có sẵn cho một kho lưu trữ nhất định bằng
list_tags. - Tải nội dung manifest ảnh thô — Lấy manifest đầy đủ của một tham chiếu ảnh qua
get_image_manifest. - Tải cấu hình ảnh — Lấy cấu hình ảnh (ví dụ: điểm vào, môi trường, cổng được mở) bằng
get_image_config.
Tài liệu
Máy chủ MCP Đăng ký OCI
Một máy chủ MCP (Giao thức Ngữ cảnh Mô hình) cung cấp các công cụ để truy vấn các đăng ký OCI và tham chiếu hình ảnh.
Tổng quan
Dự án này triển khai một máy chủ MCP dựa trên SSE cho phép các ứng dụng hỗ trợ LLM tương tác với các đăng ký OCI. Nó cung cấp các công cụ để truy xuất thông tin về hình ảnh container, liệt kê thẻ, và nhiều hơn nữa.
Tính năng
- Lấy thông tin về hình ảnh OCI
- Liệt kê thẻ cho các kho lưu trữ
- Lấy tệp kê khai hình ảnh
- Lấy cấu hình hình ảnh
Công cụ MCP
Máy chủ cung cấp các công cụ MCP sau:
get_image_info
Lấy thông tin về một hình ảnh OCI.
Đầu vào:
image_ref: Tham chiếu hình ảnh (ví dụ: docker.io/library/alpine:latest)
Đầu ra:
- Thông tin hình ảnh bao gồm digest, kích thước, kiến trúc, hệ điều hành, ngày tạo và số lớp
list_tags
Liệt kê thẻ cho một kho lưu trữ.
Đầu vào:
repository: Tên kho lưu trữ (ví dụ: docker.io/library/alpine)
Đầu ra:
- Danh sách thẻ cho kho lưu trữ
get_image_manifest
Lấy tệp kê khai cho một hình ảnh OCI.
Đầu vào:
image_ref: Tham chiếu hình ảnh (ví dụ: docker.io/library/alpine:latest)
Đầu ra:
- Tệp kê khai hình ảnh
get_image_config
Lấy cấu hình cho một hình ảnh OCI.
Đầu vào:
image_ref: Tham chiếu hình ảnh (ví dụ: docker.io/library/alpine:latest)
Đầu ra:
- Cấu hình hình ảnh
Cách sử dụng
Chạy với ToolHive (Khuyến nghị)
Cách dễ nhất để chạy máy chủ MCP Đăng ký OCI là sử dụng ToolHive, cung cấp triển khai container hóa an toàn cho các máy chủ 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
Máy chủ sẽ khả dụng cho các máy khách tương thích MCP của bạn và có thể truy vấn các đăng ký OCI để lấy thông tin hình ảnh.
Xác thực với ToolHive
Nếu bạn cần truy cập các đăng ký riêng tư, bạn có thể cung cấp thông tin xác thực bằng cách sử dụng quản lý bí mật của 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
Phát triển
Điều kiện tiên quyết
- Go 1.21 trở lên
- Quyền truy cập vào các đăng ký OCI
Xác thực
Máy chủ hỗ trợ các phương thức xác thực sau để truy cập các đăng ký OCI riêng tư (theo thứ tự ưu tiên):
-
Tiêu đề Ủy quyền HTTP (Ưu tiên cao nhất): Bao gồm mã thông báo bearer trong tiêu đề
Authorizationcủa yêu cầu HTTP:Authorization: Bearer <your-token>- Phương thức này được ưu tiên hơn tất cả các phương thức xác thực khác
- Khi có mặt, các biến môi trường và cấu hình Docker bị bỏ qua
-
Biến môi trường Mã thông báo Bearer: Đặt biến môi trường sau:
OCI_TOKEN: Mã thông báo bearer để xác thực đăng ký
-
Tên người dùng và Mật khẩu: Đặt các biến môi trường sau:
OCI_USERNAME: Tên người dùng để xác thực đăng kýOCI_PASSWORD: Mật khẩu để xác thực đăng ký
-
Cấu hình Docker (Ưu tiên thấp nhất): Nếu không có xác thực nào khác được cung cấp, máy chủ sẽ sử dụng chuỗi khóa Docker mặc định, đọc thông tin xác thực từ
~/.docker/config.json.
Ví dụ:
# 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
Cấu hình Cổng
Máy chủ có thể được cấu hình để lắng nghe trên một cổng cụ thể bằng cách sử dụng:
-
Biến môi trường:
MCP_PORT: Số cổng để lắng nghe (phải nằm trong khoảng từ 0 đến 65535)- Nếu không được đặt hoặc không hợp lệ, mặc định là cổng 8080
-
Cờ dòng lệnh:
-port: Ghi đè cài đặt biến môi trường (phải nằm trong khoảng từ 0 đến 65535)- Nếu cổng được cung cấp không hợp lệ, nó mặc định là cổng 8080
- Ví dụ:
./ocireg-mcp -port 9090
Kiểm thử
go test ./...
Kiểm tra mã nguồn
golangci-lint run
Đóng góp
Chúng tôi hoan nghênh các đóng góp cho máy chủ MCP này! Nếu bạn muốn đóng góp, vui lòng xem lại hướng dẫn ĐÓNG GÓP để biết chi tiết về cách bắt đầu.
Nếu bạn gặp lỗi hoặc có yêu cầu tính năng, vui lòng mở một vấn đề trong kho lưu trữ hoặc tham gia cùng chúng tôi trong kênh #mcp-servers trên máy chủ Discord cộng đồng của chúng tôi.
Giấy phép
Dự án này được cấp phép theo Giấy phép Apache v2 - xem tệp LICENSE để biết chi tiết.