MCP Harbor 是一个 Node.js 应用程序,提供了一个用于与 Harbor 容器注册表交互的模型上下文协议(MCP)服务器。
在安装 MCP Harbor 之前,请确保您拥有:
克隆仓库:
git clone https://github.com/nomagicln/mcp-harbor.git
导航到项目目录:
cd mcp-harbor
安装依赖项:
npm install
构建项目:
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 服务器暴露了以下工具:
| 工具名称 | 描述 | 参数 |
|---|---|---|
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 # 项目文档
连接失败
错误:无法连接到 Harbor 实例
认证失败
错误:无效凭证
构建错误
错误:TypeScript 编译失败
npm install 确保所有依赖项已安装dist 目录并重新构建通过使用 --debug 标志或设置启用调试模式:
DEBUG=true
获取更多帮助:
本项目根据 MIT 许可证授权 - 详情请参阅 LICENSE 文件。