ocireg

chính thức

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 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

Trust Score 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):

  1. Tiêu đề Ủy quyền HTTP (Ưu tiên cao nhất): Bao gồm mã thông báo bearer trong tiêu đề Authorization củ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
  2. 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ý
  3. 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ý
  4. 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:

  1. 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
  2. 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.