Ocireg Mcp

Ocireg Mcp

🚀 OCI Registry MCP 服务器

OCI Registry MCP 服务器是一个基于 MCP(模型上下文协议)的服务器,它提供了用于查询 OCI 注册表和镜像引用的工具,能让基于大语言模型的应用与 OCI 注册表进行交互。

🚀 快速开始

本项目实现了一个基于 SSE 的 MCP 服务器,允许由大语言模型驱动的应用程序与 OCI 注册表进行交互。它提供了检索容器镜像信息、列出标签等工具。

✨ 主要特性

  • 获取 OCI 镜像的相关信息
  • 列出仓库的标签
  • 获取镜像清单
  • 获取镜像配置

📚 详细文档

MCP 工具

服务器提供了以下 MCP 工具:

get_image_info

获取 OCI 镜像的信息。 输入

  • image_ref:镜像引用(例如:docker.io/library/alpine:latest) 输出
  • 镜像信息,包括摘要、大小、架构、操作系统、创建日期和层数

list_tags

列出仓库的标签。 输入

  • repository:仓库名称(例如:docker.io/library/alpine) 输出
  • 仓库的标签列表

get_image_manifest

获取 OCI 镜像的清单。 输入

  • image_ref:镜像引用(例如:docker.io/library/alpine:latest) 输出
  • 镜像清单

get_image_config

获取 OCI 镜像的配置。 输入

  • image_ref:镜像引用(例如:docker.io/library/alpine:latest) 输出
  • 镜像配置

使用方法

使用 ToolHive 运行(推荐)

运行 OCI Registry MCP 服务器最简单的方法是使用 ToolHive,它提供了 MCP 服务器的安全、容器化部署:

# 安装 ToolHive(如果尚未安装)
# 请参阅:https://github.com/stacklok/toolhive#installation

# 启用自动发现以自动配置受支持的客户端
thv config auto-discovery true

# 运行 OCI Registry MCP 服务器(在 ToolHive 中打包为 'oci-registry')
thv run oci-registry

# 列出正在运行的服务器
thv list

# 获取服务器的详细信息
thv registry info oci-registry

服务器将对与 MCP 兼容的客户端可用,并可以查询 OCI 注册表以获取镜像信息。

使用 ToolHive 进行身份验证

如果需要访问私有注册表,可以使用 ToolHive 的密钥管理提供身份验证凭据:

# 对于令牌身份验证
thv secret set oci-token
# 提示时输入令牌

thv run --secret oci-token,target=OCI_TOKEN oci-registry

# 对于用户名/密码身份验证
thv secret set oci-username
thv secret set oci-password
# 提示时输入凭据

thv run --secret oci-username,target=OCI_USERNAME --secret oci-password,target=OCI_PASSWORD oci-registry

开发

前提条件

  • Go 1.21 或更高版本
  • 能够访问 OCI 注册表

身份验证

服务器支持以下用于访问私有 OCI 注册表的身份验证方法:

  1. 令牌:设置以下环境变量:
    • OCI_TOKEN:用于注册表身份验证的令牌
  2. 用户名和密码:设置以下环境变量:
    • OCI_USERNAME:用于注册表身份验证的用户名
    • OCI_PASSWORD:用于注册表身份验证的密码
  3. Docker 配置:如果未提供令牌或用户名/密码,服务器将使用默认的 Docker 密钥链,它从 ~/.docker/config.json 读取凭据。 示例:
# 令牌身份验证
export OCI_TOKEN=mytoken

# 用户名/密码身份验证
export OCI_USERNAME=myuser
export OCI_PASSWORD=mypassword

端口配置

可以使用以下两种方式之一将服务器配置为监听特定端口:

  1. 环境变量
    • MCP_PORT:要监听的端口号(必须在 0 到 65535 之间)
    • 如果未设置或无效,默认为端口 8080
  2. 命令行标志
    • -port:覆盖环境变量设置(必须在 0 到 65535 之间)
    • 如果提供的端口无效,默认为端口 8080
    • 示例:./ocireg-mcp -port 9090

测试

go test ./...

代码检查

golangci-lint run

贡献

我们欢迎对这个 MCP 服务器做出贡献!如果您想贡献代码,请查看 贡献指南 以了解如何开始。

如果您遇到了 bug 或有功能请求,请在 仓库创建一个问题,或者加入我们 社区 Discord 服务器#mcp-servers 频道。

📄 许可证

本项目采用 Apache v2 许可证 - 详情请参阅 LICENSE 文件。

  • 0 关注
  • 0 收藏,26 浏览
  • system 提出于 2025-10-01 19:18

相似服务问题

相关AI产品