OCI 注册表 MCP 服务器
 一个提供用于查询OCI(开放容器镜像)工具的MCP(模型上下文协议)服务器 注册表和镜像引用。
概述
这个项目实现了一个基于SSE的MCP服务器,该服务器支持由大型语言模型(LLM)驱动的功能 用于与OCI注册表进行交互的应用程序。它提供了用于检索的工具 有关容器镜像的信息,包括标签列表等。
特性/特点
- 获取有关OCI镜像的信息
- 为仓库列出标签
- 获取镜像清单
- 获取图像配置
MCP 工具
服务器提供以下MCP工具:
获取图像信息
获取有关OCI镜像的信息。
输入:
image_ref镜像引用(例如,docker.io/library/alpine:latest)
输出:
- 图像信息包括摘要、大小、架构、操作系统、创建日期以及
层数
列出标签
列出仓库的标签。
输入:
repository仓库名称(例如,docker.io/library/alpine)
输出:
- 仓库的标签列表
获取镜像清单
获取OCI镜像的清单文件。
输入:
image_ref镜像引用(例如,docker.io/library/alpine:latest)
输出:
- 图像清单
获取图像配置
获取OCI镜像的配置。
输入:
image_ref镜像引用(例如,docker.io/library/alpine:latest)
输出:
- 图像配置
使用方法/用途
使用 ToolHive 运行(推荐)
运行OCI Registry MCP服务器的最简单方法是使用 ToolHive(注:该词可能是一个特定品牌或平台的名称,直接翻译为“工具蜂巢”可能无法准确传达其原意,具体翻译需结合上下文或品牌背景。),它提供了安全的, MCP服务器的容器化部署:
# Install ToolHive (if not already installed)
# See: https://docs.stacklok.com/toolhive/guides-cli/install
# Register a supported client so ToolHive can auto-configure your environment
thv client setup
# Run the OCI Registry MCP server (packaged as 'oci-registry' in ToolHive)
thv run oci-registry
# List running servers
thv list
# Get detailed information about the server
thv registry info oci-registry该服务器将对您的MCP兼容客户端开放,并且可以查询OCI(Oracle Cloud Infrastructure) 图像信息的注册表。
使用ToolHive进行身份验证
如果您需要访问私有注册表,可以提供身份验证 使用ToolHive的密钥管理功能来管理凭据:
# For bearer token authentication
thv secret set oci-token
# Enter your bearer token when prompted
thv run --secret oci-token,target=OCI_TOKEN oci-registry
# For username/password authentication
thv secret set oci-username
thv secret set oci-password
# Enter your credentials when prompted
thv run --secret oci-username,target=OCI_USERNAME --secret oci-password,target=OCI_PASSWORD oci-registry发展
先决条件
- Go 1.21 或更高版本
- 访问OCI注册表
认证
服务器支持以下访问私有资源的认证方法: OCI 注册表(按优先级顺序):
- HTTP 授权头 (最高优先级):在(请求/消息中)包含一个承载令牌
HTTP请求的 Authorization 头球
- Authorization: Bearer - 此方法优先于所有其他认证方法 - 当存在时,忽略环境变量和Docker配置
- 承载令牌环境变量设置以下环境变量:
- OCI_TOKEN用于注册表认证的承载令牌
- 用户名和密码设置以下环境变量:
- OCI_USERNAME用于注册表认证的用户名 - OCI_PASSWORD注册表认证的密码
- Docker 配置 (最低优先级):如果未提供其他身份验证方式,
服务器将使用默认的Docker密钥链,该密钥链会从(指定位置)读取凭据 ~/.docker/config.json。
示例:
# HTTP Authorization header (for per-request authentication)
# This is handled automatically by the MCP client when making requests
# Example: curl -H "Authorization: Bearer mytoken" http://localhost:8080/...
# Bearer token authentication via environment variable
export OCI_TOKEN=mytoken
# Username/password authentication via environment variables
export OCI_USERNAME=myuser
export OCI_PASSWORD=mypassword端口配置
服务器可以配置为使用以下任一方式监听特定端口:
- 环境变量:
- MCP_PORT监听的端口号(必须在0到65535之间) - 如果未设置或设置无效,则默认使用端口8080
- 命令行标志:
- -port覆盖环境变量设置(必须在0到...之间) 和65535) - 如果提供的端口无效,则默认使用8080端口 - 示例: ./ocireg-mcp -port 9090
测试
go test ./...代码检查(或代码规范检查)
golangci-lint run贡献
我们欢迎向这个MCP服务器贡献内容!如果您愿意贡献,请 审查/回顾 贡献指南 关于如何获取的详细信息 开始。
如果你遇到bug或有功能需求,请 提出一个问题 在……中 仓库或加入我们 #mcp-servers 在我们的(平台上/频道里) 社区Discord服务器。
许可证
此项目采用Apache v2许可证授权——有关详情,请参阅LICENSE文件 细节。
