OLM v0 MCP服务器

一个用于Operator生命周期管理器(OLM)v0的模型上下文协议(MCP)服务器,使AI助手能够与Kubernetes集群中的OLM资源交互。

  • by anik120
  • Go
  • 本地部署
  • 更新于
在 GitHub 查看 anik120/olmv0-mcp-server

使用说明

OLM v0 MCP服务器

操作员生命周期管理器(OLM)v0的模型上下文协议(MCP)服务器,为AI助手提供与Kubernetes集群中的OLM资源交互的能力。

概述

OLM v0 MCP服务器通过模型上下文协议公开OLM特定的资源和操作,允许AI助手帮助用户管理其Kubernetes集群中的操作员。此服务器遵循与 kubernetes mcp服务器 但特别关注OLM v0资源。

特性

  • 群集服务版本(CSV)操作:列出并检查操作员部署
  • 订阅管理:查看运营商订阅和更新频道
  • 目录来源检查:检查目录源及其运行状况
  • 安装计划分析:审查计划中的运营商安装和更新
  • 只读模式:默认情况下无写入功能的安全操作
  • 可配置工具集:启用/禁用特定功能组
  • 多集群支持:使用OLM连接到任何Kubernetes集群

可用工具

集群服务版本工具

  • list_csvs:在命名空间中列出ClusterServiceVersions
  • get_csv:获取特定ClusterServiceVersion的详细信息

订阅工具

  • list_subscriptions:在命名空间中列出订阅
  • get_subscription:获取特定订阅的详细信息

目录源工具

  • list_catalog_sources:在命名空间中列出CatalogSource
  • get_catalog_source:获取特定CatalogSource的详细信息

安装计划工具

  • list_install_plans:在命名空间中列出InstallPlans
  • get_install_plan:获取特定InstallPlan的详细信息

通用工具

  • list_tools:显示可用工具及其参数

安装

来源

git clone https://github.com/operator-framework/operator-lifecycle-manager.git
cd operator-lifecycle-manager/olmv0-mcp-server
make build

使用Docker

docker build -t olmv0-mcp-server .

用法

基本用法

# Start the server with default settings
./bin/olmv0-mcp-server

# Start on a specific port
./bin/olmv0-mcp-server --port 8080

# Use a specific kubeconfig
./bin/olmv0-mcp-server --kubeconfig /path/to/kubeconfig

# Enable only specific toolsets
./bin/olmv0-mcp-server --toolsets csv,subscription

命令行选项

  • --port, -p:HTTP/SSE服务器端口(默认值:8080)
  • --kubeconfig:kubeconfig文件的路径(默认:$HOME/.kube/config)
  • --read-only:阻止写入操作(默认值:true)
  • --toolsets:启用特定的工具集(默认:csv、订阅、目录、安装计划)

Docker使用

# Run with default settings
docker run --rm -p 8080:8080 \
  -v ~/.kube/config:/root/.kube/config:ro \
  olmv0-mcp-server

# Run with custom kubeconfig
docker run --rm -p 8080:8080 \
  -v /path/to/kubeconfig:/kubeconfig:ro \
  olmv0-mcp-server --kubeconfig /kubeconfig

API示例

列出集群服务版本

curl -X POST http://localhost:8080 \
  -H "Content-Type: application/json" \
  -d '{
    "method": "list_csvs",
    "params": {
      "namespace": "operators"
    }
  }'

获取特定订阅

curl -X POST http://localhost:8080 \
  -H "Content-Type: application/json" \
  -d '{
    "method": "get_subscription",
    "params": {
      "name": "my-operator",
      "namespace": "operators"
    }
  }'

列出可用工具

curl -X POST http://localhost:8080 \
  -H "Content-Type: application/json" \
  -d '{
    "method": "list_tools",
    "params": {}
  }'

发展

先决条件

  • 转到1.24.4或更高版本
  • 访问安装了OLM的Kubernetes集群
  • kubectl已配置为访问集群

建筑

# Download dependencies
make deps

# Build the binary
make build

# Run tests
make test

# Format code
make fmt

# Run linter
make lint

项目结构

olmv0-mcp-server/
├── cmd/olmv0-mcp-server/     # Main application entry point
├── pkg/
│   ├── client/               # OLM Kubernetes client wrappers
│   ├── server/               # HTTP server and MCP request handling
│   ├── tools/                # Tool implementations for each resource type
│   └── types/                # Common types and interfaces
├── docs/                     # Documentation
├── Dockerfile               # Container build file
├── Makefile                # Build automation
└── README.md               # This file

配置

服务器使用标准的Kubernetes客户端配置:

  1. 集群内:如果在Kubernetes集群内运行,则使用服务帐户令牌
  2. Kubeconfig:使用由指定的kubeconfig文件 --kubeconfig 旗帜
  3. 默认:回落到 $HOME/.kube/config

安全考虑

  • 默认情况下为只读:默认情况下,服务器以只读模式运行
  • 无写入操作:目前仅支持读取操作(列表、获取、检查)
  • 群集访问:需要具有适当RBAC权限的有效Kubernetes凭据
  • 无身份验证:HTTP服务器未实现身份验证(用于本地使用)

贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

许可证

此项目根据Apache许可证2.0获得许可-请参阅 许可证 文件以获取详细信息。

相关项目