关于 mcp-server-operator
MCP Server Operator 管理 OpenShift 及兼容 Kubernetes 集群上的 MCP 服务生命周期。它通过 `MCPServer` 自定义资源指定容器镜像以及可选的运行命令或参数。
主要功能
- 01通过 `MCPServer` 资源管理部署
- 02配置容器镜像
- 03设置运行命令和参数
- 04运行于兼容 OpenShift 的集群
适用场景
- 01在 OpenShift 集群部署 MCP 服务
- 02指定服务镜像和启动参数
- 03通过 Kubernetes 资源管理 MCP 服务实例
MCP 相关
该 Operator 管理集群中的 MCP 服务实例;项目未说明这些服务向客户端提供哪些工具或资源。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP 服务 Operator
MCP 服务 Operator 用于管理 OpenShift 集群上 MCP(Model Context Protocol)服务的生命周期。它利用名为 MCPServer 的自定义资源定义(CRD),允许用户指定 MCP 服务镜像和运行时参数,以部署自定义 MCP 服务。
功能
- 通过 CRD 部署和管理 MCP 服务实例
- 支持自定义容器镜像和运行时参数
- 兼容 Openshift 集群
- 包含端到端测试和单元测试。
目录
用法
先决条件
安装前,需要具备以下条件才能运行 Operator:
- 一个 OpenShift 集群(ROSA、OSD、CRC)或兼容的 Kubernetes 集群
- 一个 容器引擎(
podman或docker) - OpenShift CLI 工具:
oc - 安装 CRD 和部署 Operator 所需的权限
安装
执行以下步骤前,如果要使用集群,请确保已登录集群:
oc login --token=<your user token> --server=<your openshift cluster server>
登录集群后,克隆仓库,然后切换到 mcp-server-operator 文件夹:
git clone https://github.com/opendatahub-io/mcp-server-operator.git
cd mcp-server-operator
接下来,设置环境变量:
export IMG=<your-registry>/<username>/mcp-server-operator:<tag>
之后,构建镜像:
CONTAINER_TOOL={docker|podman} IMG=$IMG make build
然后,安装所需的 CRD:
make install
在本地运行 Operator
make run
在集群上运行 Operator
make deploy IMG=$IMG
创建 MCP 服务实例
以下示例展示了如何创建 MCPServer。运行命令前,请确保将方括号中的文本替换为相应信息。
cat << EOF | oc create -f -
apiVersion: mcpserver.opendatahub.io/v1
kind: MCPServer
metadata:
name: <your_name_here>
namespace: mcp-server-operator-system
spec:
image: <your_image_here>
args:
- <arg 1>
- <arg 2>
command:
- <command 1>
- <command 2>
EOF
字段说明
image:MCP 服务的容器镜像。args:(可选)要传递给 MCP 服务容器的运行时参数列表。command:(可选)要传递给 MCP 服务容器的入口点命令列表。
卸载 Operator 并清理集群
首先,使用以下命令从集群中删除 MCPServer 对象:
oc delete mcpserver -n mcp-server-operator-system [name]
接下来,运行以下命令即可卸载 Operator。
make undeploy
开发者指南
先决条件
Go 1.23Kubebuilder
运行测试
运行单元测试:
make test
运行端到端测试:
make test-e2e
贡献
欢迎贡献!请参阅我们的贡献指南。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。