项目简介
MCP Harbor 是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在为 LLM 应用提供与 Harbor 容器仓库交互的标准接口。它将 Harbor 的常用操作封装成 MCP 工具,使得 LLM 可以通过调用这些工具来管理 Harbor 中的项目、仓库、镜像和 Helm Chart。此外,MCP Harbor 还提供 REST API,方便用户直接进行 Harbor 操作。
主要功能点
- MCP 服务器: 实现了 MCP 协议,对外提供标准化的工具调用接口,LLM 应用可以通过 JSON-RPC 协议调用这些工具。
- Harbor 容器仓库管理: 提供了一系列 MCP 工具,用于管理 Harbor 容器仓库,包括:
- 项目管理: 创建、删除、查询 Harbor 项目。
- 仓库管理: 查询、删除 Harbor 仓库。
- 镜像标签管理: 查询、删除 Harbor 镜像标签(Tags)。
- Helm Chart 管理: 查询、删除 Harbor Helm Chart 及其版本。
- REST API: 除了 MCP 服务器,还提供了 RESTful API,可以直接操作 Harbor 资源,方便传统应用或非 MCP 客户端使用。
- 易于安装和配置: 通过 npm 包管理,安装简单,配置文件清晰,方便用户快速部署和使用。
安装步骤
-
克隆仓库:
git clone https://github.com/nomagicln/mcp-harbor.git cd mcp-harbor -
安装依赖:
npm install -
配置环境变量: 在项目根目录下创建 '.env' 文件,并配置 Harbor 连接信息:
HARBOR_URL=https://your-harbor-instance.com # Harbor 实例的 URL HARBOR_USERNAME=your_username # Harbor 用户名 HARBOR_PASSWORD=your_password # Harbor 密码注意: 请替换 'https://your-harbor-instance.com', 'your_username', 'your_password' 为您实际的 Harbor 实例地址、用户名和密码。
-
构建项目:
npm run build -
启动服务器:
npm start或者,为了方便开发调试,可以使用开发模式启动:
npm run dev
服务器配置
MCP 客户端需要配置以下信息以连接到 MCP Harbor 服务器:
{ "serverName": "mcp-harbor", "transport": "stdio", "command": "node", "args": ["dist/app.js"] }
配置参数说明:
- 'serverName': MCP 服务器的名称,可以自定义。
- 'transport': 传输协议,这里使用 'stdio' (标准输入输出)。
- 'command': 启动 MCP Harbor 服务器的命令,这里使用 'node'。
- 'args': 启动命令的参数,这里指向编译后的 'app.js' 文件路径 'dist/app.js'。
环境变量配置 (服务器运行依赖):
MCP Harbor 服务器依赖以下环境变量进行 Harbor 连接配置,请确保在服务器运行环境中设置这些变量,或者在启动服务器前配置好 '.env' 文件:
- 'HARBOR_URL': Harbor 实例的 API 地址,例如 'https://your-harbor-instance.com'。
- 'HARBOR_USERNAME': 用于访问 Harbor API 的用户名。
- 'HARBOR_PASSWORD': 用于访问 Harbor API 的密码。
基本使用方法
- 启动 MCP Harbor 服务器 (按照上述安装步骤和服务器配置启动)。
- 配置 MCP 客户端: 在您的 LLM 应用中,配置 MCP 客户端连接到 MCP Harbor 服务器,使用上面提供的服务器配置信息。
- 调用 MCP 工具: 通过 MCP 客户端,您可以调用 MCP Harbor 服务器提供的工具来管理 Harbor 资源。例如,调用 'list_projects' 工具可以获取 Harbor 项目列表,调用 'delete_repository' 工具可以删除指定的仓库。
- 查看工具列表: 您可以通过 MCP 客户端调用 'ListTools' 请求来获取 MCP Harbor 服务器支持的所有工具及其描述和参数信息。
- 查阅 API 文档: 如果需要使用 REST API,请查阅仓库 README.md 文件中的 "API Endpoints" 部分,了解可用的 REST API 接口和使用方法。
示例 MCP 工具调用 (假设使用 MCP 客户端 SDK):
// 假设 client 是已连接到 MCP Harbor 服务器的 MCP 客户端实例 async function listHarborProjects() { try { const response = await client.callTool("list_projects", {}); // 调用 list_projects 工具,无需参数 if (response.status === 'ok') { const projects = JSON.parse(response.content[0].text); console.log("Harbor 项目列表:", projects); } else { console.error("调用 list_projects 工具失败:", response.error); } } catch (error) { console.error("调用 list_projects 工具发生异常:", error); } } listHarborProjects();
注意: 上述代码仅为示例,实际使用时请参考您所用 MCP 客户端 SDK 的文档进行调用。
信息
分类
开发者工具