ocireg
oficialUn servidor MCP basado en SSE que permite a aplicaciones impulsadas por LLM interactuar con registros OCI. Proporciona herramientas para recuperar información sobre imágenes de contenedores, listar etiquetas y más.
¿Qué puedes hacer con Ocireg MCP?
- Obtener detalles de la imagen — Solicita el digest, tamaño, arquitectura, sistema operativo, fecha de creación y cantidad de capas de cualquier imagen pública usando
get_image_info. - Listar etiquetas del repositorio — Recupera todas las etiquetas disponibles para un repositorio determinado con
list_tags. - Obtener el manifiesto de imagen sin procesar — Obtén el manifiesto completo de una referencia de imagen mediante
get_image_manifest. - Obtener la configuración de la imagen — Consigue la configuración de la imagen (por ejemplo, punto de entrada, entorno, puertos expuestos) con
get_image_config.
Documentación
Servidor MCP de Registro OCI
Un servidor MCP (Protocolo de Contexto de Modelo) que proporciona herramientas para consultar registros OCI y referencias de imágenes.
Descripción General
Este proyecto implementa un servidor MCP basado en SSE que permite a las aplicaciones potenciadas por LLM interactuar con registros OCI. Proporciona herramientas para recuperar información sobre imágenes de contenedores, listar etiquetas y más.
Características
- Obtener información sobre imágenes OCI
- Listar etiquetas para repositorios
- Obtener manifiestos de imágenes
- Obtener configuraciones de imágenes
Herramientas MCP
El servidor proporciona las siguientes herramientas MCP:
get_image_info
Obtiene información sobre una imagen OCI.
Entrada:
image_ref: La referencia de la imagen (ej., docker.io/library/alpine:latest)
Salida:
- Información de la imagen incluyendo digest, tamaño, arquitectura, SO, fecha de creación y número de capas
list_tags
Lista las etiquetas de un repositorio.
Entrada:
repository: El nombre del repositorio (ej., docker.io/library/alpine)
Salida:
- Lista de etiquetas para el repositorio
get_image_manifest
Obtiene el manifiesto de una imagen OCI.
Entrada:
image_ref: La referencia de la imagen (ej., docker.io/library/alpine:latest)
Salida:
- El manifiesto de la imagen
get_image_config
Obtiene la configuración de una imagen OCI.
Entrada:
image_ref: La referencia de la imagen (ej., docker.io/library/alpine:latest)
Salida:
- La configuración de la imagen
Uso
Ejecución con ToolHive (Recomendado)
La forma más sencilla de ejecutar el servidor MCP de Registro OCI es usando ToolHive, que proporciona despliegue seguro y contenerizado de servidores 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
El servidor estará disponible para tus clientes compatibles con MCP y podrá consultar registros OCI para obtener información de imágenes.
Autenticación con ToolHive
Si necesitas acceder a registros privados, puedes proporcionar credenciales de autenticación usando la gestión de secretos de 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
Desarrollo
Prerrequisitos
- Go 1.21 o posterior
- Acceso a registros OCI
Autenticación
El servidor soporta los siguientes métodos de autenticación para acceder a registros OCI privados (en orden de prioridad):
-
Cabecera HTTP de Autorización (Prioridad Máxima): Incluye un token de portador en la cabecera
Authorizationde la solicitud HTTP:Authorization: Bearer <your-token>- Este método tiene prioridad sobre todos los demás métodos de autenticación
- Cuando está presente, las variables de entorno y la configuración de Docker se ignoran
-
Variable de Entorno de Token de Portador: Establece la siguiente variable de entorno:
OCI_TOKEN: Token de portador para autenticación en el registro
-
Usuario y Contraseña: Establece las siguientes variables de entorno:
OCI_USERNAME: Nombre de usuario para autenticación en el registroOCI_PASSWORD: Contraseña para autenticación en el registro
-
Configuración de Docker (Prioridad Más Baja): Si no se proporciona otra autenticación, el servidor usará el llavero de Docker por defecto, que lee las credenciales de
~/.docker/config.json.
Ejemplos:
# 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
Configuración de Puerto
El servidor puede configurarse para escuchar en un puerto específico usando:
-
Variable de Entorno:
MCP_PORT: El número de puerto en el que escuchar (debe estar entre 0 y 65535)- Si no se establece o es inválido, por defecto es el puerto 8080
-
Bandera de Línea de Comandos:
-port: Sobrescribe la configuración de la variable de entorno (debe estar entre 0 y 65535)- Si se proporciona un puerto inválido, por defecto es el puerto 8080
- Ejemplo:
./ocireg-mcp -port 9090
Pruebas
go test ./...
Linting
golangci-lint run
Contribuciones
¡Agradecemos las contribuciones a este servidor MCP! Si deseas contribuir, por favor revisa la guía de CONTRIBUCIÓN para obtener detalles sobre cómo empezar.
Si encuentras un error o tienes una solicitud de funcionalidad, por favor abre un issue en el repositorio o únete a nosotros en el canal #mcp-servers de nuestro servidor de Discord comunitario.
Licencia
Este proyecto está licenciado bajo la Licencia Apache v2 - consulta el archivo LICENSE para más detalles.