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
Сервер 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 (в порядке приоритета):
-
Заголовок HTTP Authorization (наивысший приоритет): Включите токен-носитель в заголовок
AuthorizationHTTP-запроса: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 для получения подробной информации о том, как начать.
Если вы столкнулись с ошибкой или у вас есть предложение по новой функции, пожалуйста,
создайте issue в
репозитории или присоединяйтесь к нам в канале #mcp-servers на нашем
сервере сообщества Discord.
Лицензия
Этот проект лицензирован под лицензией Apache v2 — см. файл LICENSE для подробностей.