返回市场
麦克佩港湾

麦克佩港湾

作者:nomagicln5 星标更新:2025-04-01

项目介绍

MCP Harbor

License: MIT TypeScript Node.js codecov

MCP Harbor 是一个 Node.js 应用程序,提供了一个用于与 Harbor 容器注册表交互的模型上下文协议(MCP)服务器。

目录

特性

  • MCP 服务器:提供了通过模型上下文协议与 Harbor 交互的工具
  • Harbor 操作:支持项目、仓库、标签和 Helm 图表的操作
  • TypeScript:使用 TypeScript 编写,以获得更好的类型安全性和开发者体验
  • 自动化测试:全面的测试套件,确保功能可靠

先决条件

在安装 MCP Harbor 之前,请确保您拥有:

  • Node.js 18.x 或更高版本
  • npm 8.x 或更高版本
  • 对 Harbor 注册表实例的访问权限
  • Git(用于克隆仓库)

安装

  1. 克隆仓库:

    git clone https://github.com/nomagicln/mcp-harbor.git
    
  2. 导航到项目目录:

    cd mcp-harbor
    
  3. 安装依赖项:

    npm install
    
  4. 构建项目:

    npm run build
    

使用

命令行参数

应用程序接受以下命令行参数:

选项:
  --url       Harbor API URL                     [字符串] [必需]
  --username  Harbor 用户名                      [字符串] [必需]
  --password  Harbor 密码                        [字符串] [必需]
  --debug     启用调试模式          [布尔值] [默认: false]
  --help      显示帮助                                  [布尔值]

环境变量

除了命令行参数外,还可以使用环境变量。在根目录创建一个 .env 文件:

# Harbor API 配置
HARBOR_URL=https://harbor.example.com
HARBOR_USERNAME=admin
HARBOR_PASSWORD=Harbor12345

# 调试模式(true/false)
DEBUG=false

MCP 工具

MCP 服务器暴露了以下工具:

工具名称描述参数
list_projects列出 Harbor 中的所有项目
get_project根据 ID 获取项目详情projectId: 字符串
create_project创建新项目project_name: 字符串, metadata?: 对象
delete_project删除项目projectId: 字符串
list_repositories列出项目中的仓库projectId: 字符串
delete_repository删除仓库projectId: 字符串, repositoryName: 字符串
list_tags列出仓库中的标签projectId: 字符串, repositoryName: 字符串
delete_tag删除标签projectId: 字符串, repositoryName: 字符串, tag: 字符串
list_charts列出 Helm 图表projectId: 字符串
list_chart_versions列出图表版本projectId: 字符串, chartName: 字符串
delete_chart删除图表版本projectId: 字符串, chartName: 字符串, version: 字符串

开发

在开发模式下运行

npm run dev

运行测试

# 运行所有测试
npm test

# 运行带有覆盖率的测试
npm run test:coverage

项目结构

mcp-harbor
├── src
│   ├── app.ts                 # 主应用程序入口点(MCP 服务器)
│   ├── definitions
│   │   └── tool.definitions.ts # MCP 的工具定义
│   ├── services
│   │   └── harbor.service.ts  # Harbor 服务实现
│   └── types
│       └── index.ts           # TypeScript 类型定义
├── test
│   └── harbor.test.ts         # Harbor 服务的测试
├── .env.example              # 示例环境变量
├── .gitignore               # Git 忽略文件
├── .eslintrc.json           # ESLint 配置
├── package.json            # 项目依赖项
├── jest.config.js           # Jest 配置
├── tsconfig.test.json      # 测试的 TypeScript 配置
├── tsconfig.json          # TypeScript 配置
├── LICENSE                # 项目许可证
└── README.md             # 项目文档

故障排除

常见问题

  1. 连接失败

    错误:无法连接到 Harbor 实例
    
    • 验证 HARBOR_URL 是否正确且可访问
    • 检查网络连接
    • 确保 Harbor 实例正在运行
  2. 认证失败

    错误:无效凭证
    
    • 验证 HARBOR_USERNAME 和 HARBOR_PASSWORD 是否正确
    • 检查用户是否具有所需权限
  3. 构建错误

    错误:TypeScript 编译失败
    
    • 运行 npm install 确保所有依赖项已安装
    • 检查 TypeScript 版本兼容性
    • 清除 dist 目录并重新构建

调试模式

通过使用 --debug 标志或设置启用调试模式:

DEBUG=true

支持

获取更多帮助:

  1. 查看应用程序日志

许可证

本项目根据 MIT 许可证授权 - 详情请参阅 LICENSE 文件。