项目简介

这是一个基于 Model Context Protocol (MCP) 的服务器实现,它通过集成 ORAS 命令行工具,为 LLM 客户端(如 AI 聊天代理)提供了与 OCI 容器注册表和制品进行交互的能力。

主要功能点

该服务器通过提供以下工具(Tools),支持 LLM 执行多种操作:

  • 列出已知注册表: 获取一些常用公共容器注册表的列表。
  • 列出仓库: 查看指定容器注册表中的所有仓库列表。
  • 列出标签: 查看指定注册表和仓库下所有镜像或制品的标签列表。
  • 列出相关引用 (Referrers): 获取指定容器镜像或 OCI 制品的所有相关引用信息(如签名、SBOM 等)。
  • 获取清单 (Manifest): 获取指定容器镜像或 OCI 制品的清单内容,其中包含了构建和层信息。
  • 获取数据块 (Blob): 根据清单中引用的摘要信息,获取具体的数据块内容。
  • 解析引用字符串: 将一个标准的容器/制品引用字符串(如 'registry/repo:tag' 或 'registry/repo@digest')解析出注册表、仓库、标签和摘要等组成部分。

安装步骤

该服务器依赖本地已安装的 ORAS CLI,版本需大于等于 'v1.3.0-beta.1'。最推荐和便捷的运行方式是通过 Docker:

  1. 确保您已安装 Docker。
  2. 确保您已安装 ORAS CLI (版本 >= 'v1.3.0-beta.1') 并配置好环境。
  3. 服务器可以通过运行其 Docker 镜像启动。

服务器配置

MCP 服务器是为 MCP 客户端(如 VS Code 的聊天代理功能)提供服务的。客户端需要知道如何启动并连接到此服务器。典型的客户端配置会包含服务器名称、连接类型(例如 'stdio' 标准输入输出)以及启动服务器进程的命令和参数。

对于使用 Docker 运行此 ORAS MCP 服务器,客户端配置中需要提供以下信息:

  • 连接类型 (type): 'stdio' (表示使用标准输入输出进行通信)
  • 启动命令 (command): 'docker'
  • 命令参数 (args): '["run", "--rm", "-i", "ghcr.io/shizhmsft/oras-mcp:main"]' (这些参数会指示 Docker 以后台交互模式运行指定的 MCP 服务器镜像)

具体的配置方式取决于您使用的 MCP 客户端,但核心是向客户端提供上述启动服务器所需的信息。

基本使用方法

一旦 MCP 客户端成功连接并启动了 ORAS MCP 服务器,LLM 就可以通过调用服务器提供的工具来回答用户的相关问题或执行任务。用户可以直接通过自然语言提出关于容器注册表、镜像或制品的问题,LLM 将判断需要调用哪个 ORAS 工具来获取信息,并将结果呈现给用户。例如,您可以询问特定镜像支持的平台、最新的镜像版本、是否存在签名等。

信息

分类

开发者工具