Skip to main content
Glama

Puerto MCP

Licencia: MIT Mecanografiado Node.js

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

Related MCP server: ShipStation API MCP Server

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 herramienta

Descripción

Parámetros

list_projects

Listado de todos los proyectos en Harbor

Ninguno

get_project

Obtener detalles del proyecto por ID

id: number

create_project

Crear un nuevo proyecto

name: string, public?: boolean

delete_project

Eliminar un proyecto

id: number

list_repositories

Listar repositorios en un proyecto

projectId: number

delete_repository

Eliminar un repositorio

projectId: number, repoName: string

list_tags

Enumerar etiquetas en un repositorio

projectId: number, repoName: string

delete_tag

Eliminar una etiqueta

projectId: number, repoName: string, tag: string

list_charts

Lista de gráficos de Helm

projectId: number

list_chart_versions

Versiones del gráfico de listas

projectId: number, chartName: string

delete_chart

Eliminar la versión del gráfico

projectId: 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
A
license - permissive license
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nomagicln/mcp-harbor'

If you have feedback or need assistance with the MCP directory API, please join our Discord server