Harbor
БесплатноНе проверенMCP Harbor is a Node.js application that provides a Model Context Protocol (MCP) server for interacting with Harbor container registry.
Описание
MCP Harbor is a Node.js application that provides a Model Context Protocol (MCP) server for interacting with Harbor container registry.
README
License: MIT TypeScript Node.js codecov
MCP Harbor is a Node.js application that provides a Model Context Protocol (MCP) server for interacting with Harbor container registry.
Table of Contents
Features
- MCP Server: Exposes tools for interacting with Harbor through the Model Context Protocol
- Harbor Operations: Supports operations for projects, repositories, tags, and Helm charts
- TypeScript: Written in TypeScript for better type safety and developer experience
- Automated Tests: Comprehensive test suite for reliable functionality
Prerequisites
Before installing MCP Harbor, ensure you have:
- Node.js 18.x or higher
- npm 8.x or higher
- Access to a Harbor registry instance
- Git (for cloning the repository)
Installation
Clone the repository:
git clone https://github.com/nomagicln/mcp-harbor.gitNavigate to the project directory:
cd mcp-harborInstall dependencies:
npm installBuild the project:
npm run build
Usage
Command Line Arguments
The application accepts the following command line arguments:
Options:
--url Harbor base URL (e.g. https://harbor.example.com)
/api/v2.0 is appended automatically if missing [string] [required]
--username Harbor username (or robot account name) [string] [required]
--password Harbor password (mutually exclusive with --token) [string]
--token Harbor token for robot/service accounts [string]
--insecure Disable TLS/SSL certificate validation [boolean] [default: false]
--debug Enable debug mode [boolean] [default: false]
--help Show help [boolean]
Note: You must provide either
--passwordor--token, but not both.
Environment Variables
Instead of command line arguments, you can also use environment variables. Create a .env file in the root directory:
# Harbor API Configuration
HARBOR_URL=https://harbor.example.com
HARBOR_USERNAME=admin
# Authentication: use either PASSWORD or TOKEN (mutually exclusive)
# Option 1: Password-based authentication
HARBOR_PASSWORD=Harbor12345
# Option 2: Token-based authentication (for robot/service accounts)
# HARBOR_USERNAME=robot$myrobot
# HARBOR_TOKEN=your-robot-token-here
# Debug Mode (true/false)
DEBUG=false
# Disable TLS/SSL certificate validation (true/false)
# HARBOR_INSECURE=false
Token Authentication (Robot/Service Accounts)
Harbor supports robot accounts for automated access. To use token-based authentication:
- Create a robot account in your Harbor instance (Administration > Robot Accounts)
- Use the robot account name as
--username(e.g.,robot$myrobot) - Use the generated token as
--token
mcp-harbor --url https://harbor.example.com --username "robot\$myrobot" --token "your-robot-token"
MCP Client Configuration
Claude Desktop
Add the following to your Claude Desktop configuration file (claude_desktop_config.json):
Using password authentication:
{
"mcpServers": {
"harbor": {
"command": "npx",
"args": [
"mcp-harbor",
"--url", "https://harbor.example.com",
"--username", "admin",
"--password", "your-password"
]
}
}
}
Using token authentication (robot/service account):
{
"mcpServers": {
"harbor": {
"command": "npx",
"args": [
"mcp-harbor",
"--url", "https://harbor.example.com",
"--username", "robot$myrobot",
"--token", "your-robot-token"
]
}
}
}
With self-signed certificates:
{
"mcpServers": {
"harbor": {
"command": "npx",
"args": [
"mcp-harbor",
"--url", "https://harbor.example.com",
"--username", "admin",
"--password", "your-password",
"--insecure"
]
}
}
}
Cursor / Windsurf
Add the following to your MCP configuration file (.cursor/mcp.json or .windsurf/mcp.json):
{
"mcpServers": {
"harbor": {
"command": "npx",
"args": [
"mcp-harbor",
"--url", "https://harbor.example.com",
"--username", "admin",
"--password", "your-password"
]
}
}
}
Using environment variables
You can also reference environment variables to avoid hardcoding credentials:
{
"mcpServers": {
"harbor": {
"command": "npx",
"args": ["mcp-harbor"],
"env": {
"HARBOR_URL": "https://harbor.example.com",
"HARBOR_USERNAME": "admin",
"HARBOR_PASSWORD": "your-password"
}
}
}
}
SSE Transport (remote/shared server)
If you prefer running the MCP server as a standalone process with SSE transport:
npx mcp-harbor --url https://harbor.example.com --username admin --password your-password --sse --port 3000
Then configure your MCP client to connect via SSE at http://localhost:3000/sse.
MCP Tools
The MCP server exposes the following tools:
| Tool Name | Description | Parameters |
|---|---|---|
list_projects |
List all projects in Harbor | None |
get_project |
Get project details by ID | projectId: string |
create_project |
Create a new project | project_name: string, metadata?: object |
delete_project |
Delete a project | projectId: string |
list_repositories |
List repositories in a project | projectId: string |
delete_repository |
Delete a repository | projectId: string, repositoryName: string |
list_tags |
List tags in a repository | projectId: string, repositoryName: string |
delete_tag |
Delete a tag | projectId: string, repositoryName: string, tag: string |
list_charts |
List Helm charts | projectId: string |
list_chart_versions |
List chart versions | projectId: string, chartName: string |
delete_chart |
Delete chart version | projectId: string, chartName: string, version: string |
Development
Running in Development Mode
npm run dev
Running Tests
# Run all tests
npm test
# Run tests with coverage
npm run test:coverage
Project Structure
mcp-harbor
├── src
│ ├── app.ts # Main application entry point (MCP server)
│ ├── definitions
│ │ └── tool.definitions.ts # Tool definitions for MCP
│ ├── services
│ │ └── harbor.service.ts # Harbor service implementation
│ └── types
│ └── index.ts # TypeScript type definitions
├── test
│ └── harbor.test.ts # Tests for Harbor service
├── .env.example # Example environment variables
├── .gitignore # Git ignore file
├── .eslintrc.json # ESLint configuration
├── package.json # Project dependencies
├── jest.config.js # Jest configuration
├── tsconfig.test.json # TypeScript configuration for tests
├── tsconfig.json # TypeScript configuration
├── LICENSE # Project license
└── README.md # Project documentation
Troubleshooting
Common Issues
Connection Failed
Error: Unable to connect to Harbor instance- Verify HARBOR_URL is correct and accessible
- Check network connectivity
- Ensure Harbor instance is running
Authentication Failed
Error: Invalid credentials- Verify HARBOR_USERNAME and HARBOR_PASSWORD are correct
- Check if user has required permissions
Build Errors
Error: TypeScript compilation failed- Run
npm installto ensure all dependencies are installed - Check TypeScript version compatibility
- Clear the
distdirectory and rebuild
- Run
Debug Mode
Enable debug mode by using the --debug flag or setting:
DEBUG=true
Support
For additional help:
- Review the application logs
License
This project is licensed under the MIT License - see the LICENSE file for details.
Установка Harbor
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/mfernandezfunes/mcp-harborFAQ
Harbor MCP бесплатный?
Да, Harbor MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Harbor?
Нет, Harbor работает без API-ключей и переменных окружения.
Harbor — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить Harbor в Claude Desktop, Claude Code или Cursor?
Открой Harbor на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Harbor with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
