ocireg MCP Server

официальный

An SSE-based MCP server that allows LLM-powered applications to interact with OCI registries. It provides tools for retrieving information about container images, listing tags, and more.

Документация

Сервер MCP для реестра OCI

Trust Score Сервер MCP (Model Context Protocol), предоставляющий инструменты для запросов к реестрам OCI и ссылкам на образы.

Обзор

Этот проект реализует сервер MCP на основе SSE, который позволяет приложениям на базе LLM взаимодействовать с реестрами OCI. Он предоставляет инструменты для получения информации об образах контейнеров, списка тегов и многого другого.

Возможности

  • Получение информации об образах OCI
  • Вывод списка тегов для репозиториев
  • Получение манифестов образов
  • Получение конфигураций образов

Инструменты MCP

Сервер предоставляет следующие инструменты MCP:

get_image_info

Получение информации об образе OCI.

Входные данные:

  • image_ref: Ссылка на образ (например, docker.io/library/alpine:latest)

Выходные данные:

  • Информация об образе, включая дайджест, размер, архитектуру, ОС, дату создания и количество слоёв

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 (рекомендуется)

Самый простой способ запустить сервер MCP для реестра OCI — использовать 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 (в порядке приоритета):

  1. Заголовок HTTP Authorization (наивысший приоритет): Включите токен-носитель в заголовок Authorization HTTP-запроса:

    • Authorization: Bearer <your-token>
    • Этот метод имеет приоритет над всеми остальными методами аутентификации
    • Если он присутствует, переменные окружения и конфигурация Docker игнорируются
  2. Переменная окружения с токеном-носителем: Установите следующую переменную окружения:

    • OCI_TOKEN: Токен-носитель для аутентификации в реестре
  3. Имя пользователя и пароль: Установите следующие переменные окружения:

    • OCI_USERNAME: Имя пользователя для аутентификации в реестре
    • OCI_PASSWORD: Пароль для аутентификации в реестре
  4. Конфигурация 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

Настройка порта

Сервер можно настроить на прослушивание определённого порта, используя:

  1. Переменную окружения:

    • MCP_PORT: Номер порта для прослушивания (должен быть от 0 до 65535)
    • Если не задан или некорректен, по умолчанию используется порт 8080
  2. Флаг командной строки:

    • -port: Переопределяет настройку переменной окружения (должен быть от 0 до 65535)
    • Если указан некорректный порт, по умолчанию используется порт 8080
    • Пример: ./ocireg-mcp -port 9090

Тестирование

go test ./...

Линтинг

golangci-lint run

Участие в проекте

Мы приветствуем вклад в этот сервер MCP! Если вы хотите внести свой вклад, пожалуйста, ознакомьтесь с руководством CONTRIBUTING для получения подробной информации о том, как начать.

Если вы столкнулись с ошибкой или у вас есть предложение по новой функции, пожалуйста, создайте issue в репозитории или присоединяйтесь к нам в канале #mcp-servers на нашем сервере сообщества Discord.

Лицензия

Этот проект лицензирован под лицензией Apache v2 — см. файл LICENSE для подробностей.