MCP Harbor

by nomagicln

Integrations

  • Provides tools for interacting with Harbor container registry, enabling operations on projects, repositories, tags, and Helm charts such as listing, creating, and deleting resources.

  • Enables management of Helm charts within Harbor registry, including listing available charts, viewing chart versions, and deleting chart versions.

Puerto MCP

MCP Harbor es una aplicación Node.js que proporciona un servidor de Protocolo de Contexto de Modelo (MCP) para interactuar con el registro de contenedores de Harbor. También incluye una API REST para las operaciones de Harbor.

Tabla de contenido

Características

  • Servidor MCP : expone herramientas para interactuar con Harbor a través del Protocolo de Contexto de Modelo
  • API REST : proporciona puntos finales RESTful para operaciones portuarias
  • Operaciones portuarias : admite operaciones para proyectos, repositorios, etiquetas y gráficos de Helm
  • TypeScript : escrito en TypeScript para una mejor seguridad de tipos y experiencia del desarrollador.
  • Pruebas automatizadas : conjunto completo de pruebas para una funcionalidad confiable

Prerrequisitos

Antes de instalar MCP Harbor, asegúrese de tener:

  • Node.js 18.x o superior
  • npm 8.x o superior
  • Acceso a una instancia de registro de Harbor
  • Git (para clonar el repositorio)

Instalación

  1. Clonar el repositorio:
    git clone https://github.com/nomagicln/mcp-harbor.git
  2. Navegue hasta el directorio del proyecto:
    cd mcp-harbor
  3. Instalar dependencias:
    npm install
  4. Construir el proyecto:
    npm run build
  5. Iniciar la aplicación:
    npm start

Configuración

Variables de entorno

Cree un archivo .env en el directorio raíz con las siguientes variables:

# Required HARBOR_URL=https://your-harbor-instance.com HARBOR_USERNAME=your_username HARBOR_PASSWORD=your_password # Optional PORT=3000 # Server port (default: 3000) LOG_LEVEL=info # Logging level (default: info) ENABLE_HTTPS=false # Enable HTTPS (default: false) SSL_CERT_PATH=/path/to/cert.pem # Required if ENABLE_HTTPS=true SSL_KEY_PATH=/path/to/key.pem # Required if ENABLE_HTTPS=true

Archivo de configuración

Se pueden configurar opciones de configuración adicionales en src/config/harbor.config.ts :

{ timeout: 30000, // API request timeout in milliseconds retryAttempts: 3, // Number of retry attempts for failed requests cacheEnabled: true, // Enable response caching cacheTTL: 300 // Cache TTL in seconds }

Puntos finales de API

Proyectos

  • GET /projects - Listar todos los proyectos
  • GET /projects/:id - Obtener detalles del proyecto
  • POST /projects - Crear un nuevo proyecto
  • DELETE /projects/:id - Eliminar un proyecto

Repositorios

  • GET /projects/:projectId/repositories - Lista los repositorios en un proyecto
  • DELETE /projects/:projectId/repositories/:repositoryName - Eliminar un repositorio

Etiquetas

  • GET /projects/:projectId/repositories/:repositoryName/tags - Lista de etiquetas en un repositorio
  • DELETE /projects/:projectId/repositories/:repositoryName/tags/:tag - Eliminar una etiqueta

Cartas de timón

  • GET /projects/:projectId/charts - Enumera los gráficos de Helm en un proyecto
  • GET /projects/:projectId/charts/:chartName/versions - Lista de versiones de un gráfico de Helm
  • DELETE /projects/:projectId/charts/:chartName/versions/:version - Eliminar una versión del gráfico de Helm

Herramientas MCP

El servidor MCP expone las siguientes herramientas:

Nombre de la herramientaDescripciónParámetros
list_projectsListado de todos los proyectos en HarborNinguno
get_projectObtener detalles del proyecto por IDid: number
create_projectCrear un nuevo proyectoname: string, public?: boolean
delete_projectEliminar un proyectoid: number
list_repositoriesListar repositorios en un proyectoprojectId: number
delete_repositoryEliminar un repositorioprojectId: number, repoName: string
list_tagsEnumerar etiquetas en un repositorioprojectId: number, repoName: string
delete_tagEliminar una etiquetaprojectId: number, repoName: string, tag: string
list_chartsLista de gráficos de HelmprojectId: number
list_chart_versionsVersiones del gráfico de listasprojectId: number, chartName: string
delete_chartEliminar la versión del gráficoprojectId: number, chartName: string, version: string

Desarrollo

Ejecutando en modo de desarrollo

npm run dev

Ejecución de pruebas

# Run all tests npm test # Run tests with coverage npm run test:coverage # Run specific test file npm test -- test/harbor.test.ts

Herramientas de depuración

El proyecto incluye herramientas de depuración en el directorio tools :

# Test Harbor connection npm run test:connection # Start debug server npm run debug:server

Estructura del proyecto

mcp-harbor ├── src │ ├── app.ts # Main application entry point (MCP server) │ ├── config │ │ └── harbor.config.ts # Harbor configuration │ ├── controllers │ │ └── harbor.controller.ts # REST API controllers │ ├── services │ │ └── harbor.service.ts # Harbor service implementation │ ├── models │ │ └── harbor.model.ts # Data models │ ├── routes │ │ └── harbor.routes.ts # API route definitions │ └── types │ └── index.ts # TypeScript type definitions ├── test │ └── harbor.test.ts # Tests for Harbor service ├── tools │ ├── debug-server.ts # Debug server implementation │ └── test-connection.ts # Connection testing utility ├── .env.example # Example environment variables ├── .gitignore # Git ignore file ├── package.json # Project dependencies ├── tsconfig.json # TypeScript configuration └── README.md # Project documentation

Solución de problemas

Problemas comunes

  1. Conexión fallida
    Error: Unable to connect to Harbor instance
    • Verifique que HARBOR_URL sea correcto y accesible
    • Comprobar la conectividad de la red
    • Asegúrese de que la instancia de Harbor se esté ejecutando
  2. Falló la autenticación
    Error: Invalid credentials
    • Verifique que HARBOR_USERNAME y HARBOR_PASSWORD sean correctos
    • Comprobar si el usuario tiene los permisos necesarios
  3. Errores de compilación
    Error: TypeScript compilation failed
    • Ejecute npm install para asegurarse de que todas las dependencias estén instaladas
    • Comprobar la compatibilidad de la versión de TypeScript
    • Limpiar el directorio dist y reconstruir

Modo de depuración

Habilite el registro de depuración configurando:

LOG_LEVEL=debug

Apoyo

Para obtener ayuda adicional:

  1. Compruebe el archivo DEBUG.md
  2. Ejecute la prueba de conexión: npm run test:connection
  3. Revise los registros de la aplicación en el directorio logs/

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

-
security - not tested
F
license - not found
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Una aplicación Node.js que proporciona un servidor de protocolo de contexto de modelo para interactuar con el registro de contenedores Harbor y respaldar operaciones para proyectos, repositorios, etiquetas y gráficos de Helm.

  1. Tabla de contenido
    1. Características
      1. Prerrequisitos
        1. Instalación
          1. Configuración
            1. Variables de entorno
            2. Archivo de configuración
          2. Puntos finales de API
            1. Proyectos
            2. Repositorios
            3. Etiquetas
            4. Cartas de timón
          3. Herramientas MCP
            1. Desarrollo
              1. Ejecutando en modo de desarrollo
              2. Ejecución de pruebas
              3. Herramientas de depuración
            2. Estructura del proyecto
              1. Solución de problemas
                1. Problemas comunes
                2. Modo de depuración
                3. Apoyo
              2. Licencia

                Related MCP Servers

                • -
                  security
                  F
                  license
                  -
                  quality
                  A Node.js implementation of the Model Context Protocol server using SQLite, providing a npx-based alternative for environments lacking Python's UVX runner.
                  Last updated -
                  114
                  2
                  JavaScript
                  • Apple
                • -
                  security
                  F
                  license
                  -
                  quality
                  Provides a scalable, containerized infrastructure for deploying and managing Model Context Protocol servers with monitoring, high availability, and secure configurations.
                  Last updated -
                • A
                  security
                  F
                  license
                  A
                  quality
                  A Node.js server that provides advanced video and image processing capabilities through the Model Context Protocol, enabling operations like conversion, compression, editing, and effects application.
                  Last updated -
                  10
                  13
                  JavaScript
                  • Apple
                  • Linux
                • A
                  security
                  A
                  license
                  A
                  quality
                  A comprehensive Model Context Protocol server that provides advanced Node.js development tooling for automating project creation, component generation, package management, and documentation with AI-powered assistance.
                  Last updated -
                  7
                  2
                  JavaScript
                  MIT License

                View all related MCP servers

                ID: 7zkzz915sh