本项目是一个基于 Model Context Protocol (MCP) 构建的服务器实现,专为集成 Red Hat Quay 容器镜像仓库而设计。它允许大语言模型 (LLM) 客户端通过标准化的 JSON-RPC 接口调用 Quay 的 API 功能。
项目简介
Quay MCP Server 充当 LLM 客户端与 Quay 容器注册表之间的桥梁。它将 Quay 的核心管理操作封装为一系列可供 LLM 调用的“工具”。通过使用此服务器,LLM 应用程序可以智能地查询 Quay 仓库信息、管理组织和团队成员等。
主要功能点
- 查询组织成员: 获取指定 Quay 组织的所有成员列表。
- 查询团队成员: 获取指定组织内某个特定团队的成员列表。
- 添加团队成员: 将用户添加为指定组织内某个特定团队的成员。
- 列出仓库: 列出指定 Quay 组织下的所有容器仓库。
- 创建仓库: 在指定组织下创建一个新的容器仓库,可设定可见性和描述。
这些功能都通过标准化的 MCP 工具接口暴露给 LLM 客户端。
安装步骤
本项目通常以容器镜像的形式运行。您需要安装 Podman 或 Docker 等容器运行时。
-
拉取容器镜像: 使用 Podman 或 Docker 命令从 Quay.io 拉取服务器镜像:
podman pull quay.io/maorfr/quay-mcp # 或者 docker pull quay.io/maorfr/quay-mcp -
配置 Quay 访问: 服务器需要知道 Quay 实例的地址以及访问各组织的 API 令牌。这些信息通过环境变量提供:
- 'QUAY_URL': Quay 注册表的基础 URL(例如:'https://quay.io' 或您的私有 Quay 实例地址)。
- 'QUAY_TOKEN_<ORG_NAME>': 为每个需要访问的组织 '<ORG_NAME>' 提供一个具有必要权限的 Quay API 令牌。例如,要访问名为 'myorg' 的组织,需要设置 'QUAY_TOKEN_MYORG' 环境变量。
服务器配置(供 MCP 客户端使用)
MCP 客户端(如某些 LLM 应用)需要配置如何启动和连接到此 MCP 服务器。以下是典型的配置结构,客户端需要提供启动服务器的命令、参数和环境变量:
{ "mcpServers": { "quay": { // 服务器名称,客户端通过此名称引用 "command": "podman", // 或 "docker" - 用于启动容器的命令 "args": [ // 启动容器的参数 "run", "-i", // 保持 stdin 开放,Stdio 传输需要 "--rm", // 容器停止后自动移除 "-e", "QUAY_URL", // 将宿主机的 QUAY_URL 环境变量传入容器 "-e", "QUAY_TOKEN_YOUR_ORG_NAME_1", // 将宿主机的对应组织令牌环境变量传入容器 "-e", "QUAY_TOKEN_YOUR_ORG_NAME_2", // 可以传入多个组织的令牌 "quay.io/maorfr/quay-mcp" // MCP 服务器容器镜像名称 ], "env": { // 也可以直接在这里指定需要传递给容器的环境变量及其值 "QUAY_URL": "YOUR_QUAY_URL", // 替换为您的 Quay 实例地址 "QUAY_TOKEN_YOUR_ORG_NAME_1": "YOUR_TOKEN_FOR_ORG_1", // 替换为您的组织名称和令牌 "QUAY_TOKEN_YOUR_ORG_NAME_2": "YOUR_TOKEN_FOR_ORG_2" // 根据需要添加更多组织 } } } }
请将上述配置中的占位符(如 'YOUR_QUAY_URL', 'YOUR_ORG_NAME_1', 'YOUR_TOKEN_FOR_ORG_1' 等)替换为您实际的 Quay URL、组织名称和 API 令牌。这些配置由 MCP 客户端读取并用于启动和管理 MCP 服务器进程。
基本使用方法
该 MCP 服务器并非独立使用的应用程序,而是作为 MCP 客户端(通常是集成了 MCP 协议的 LLM 应用程序)的后端服务。MCP 客户端会根据上述配置启动服务器,并通过 JSON-RPC 协议(此处配置为 Stdio 传输)与服务器通信,调用上面列出的各种工具功能。LLM 客户端会负责将用户的自然语言请求转化为对这些工具的调用。
您作为用户或开发者,主要是确保服务器已正确安装、配置了必要的环境变量,并将其配置信息提供给您的 MCP 客户端应用。
信息
分类
开发者工具