本项目是一个基于Model Context Protocol (MCP) 实现的应用后端,专门用于将大型语言模型 (LLM) 客户端与OceanBase Kubernetes管理工具 'okctl' 连接起来。它通过暴露一系列结构化的“工具”函数,使LLM能够理解并执行OceanBase集群、租户及备份策略相关的管理操作,从而实现通过自然语言进行数据库的云原生运维。

主要功能点

本项目通过封装 'okctl' 命令行工具,提供了以下主要管理能力:

  • 集群管理: 支持列出所有OceanBase集群、查看指定集群详情、创建、删除、扩容缩容、更新配置和升级集群版本。
  • 租户管理: 支持列出所有租户、创建、删除、查看详情、扩容缩容资源、更新配置、升级版本、修改密码、激活备用租户、回放日志以及切换主备租户。
  • 备份策略管理: 支持列出、创建、删除、查看详情、更新配置、暂停和恢复指定租户的备份策略。
  • 组件管理: 支持安装和更新特定的OceanBase相关组件(如ob-operator, ob-dashboard等),以及安装'okctl'工具本身。

安装步骤

  1. 环境准备:

    • 确保已安装 Python 3.10 或更高版本。
    • 安装 'uv' 包管理器 (推荐): 遵循 uv 官方文档 进行安装。
    • 安装并配置好 OceanBase Kubernetes Control Tool ('okctl')。
    • 确保运行服务器的环境能够访问您的 Kubernetes 集群,并且具有管理 OceanBase 集群及相关资源的必要权限。
  2. 获取代码: 克隆或下载本项目的代码到本地目录。

  3. 安装依赖: 在项目根目录下,使用 'uv' 安装所需的Python依赖。

    uv sync

服务器配置

此MCP服务器由MCP客户端(通常是LLM应用或代理)通过启动外部进程的方式来连接和使用。您需要在您的MCP客户端的配置中添加以下信息,以便客户端能够找到并启动此服务器。

{
  "mcpServers": {
    "okctl-mcp-server-py": {
      "command": "uv", // 用于运行Python项目的命令
      "args": [
        "--directory", "/path/to/okctl-mcp-server-py", // 指向本项目代码所在目录的路径
        "run", "main.py", // 运行main.py文件作为服务器入口
        "--transport", "stdio" // 指定使用stdio作为传输协议,也可以根据需要配置为 "sse" 并指定端口
      ]
    }
  }
}

请将 '/path/to/okctl-mcp-server-py' 替换为您实际存放项目代码的路径。传输协议 ('--transport') 通常根据客户端的启动方式确定,'stdio' 为默认且常用方式。

基本使用方法

配置完成后,当MCP客户端需要执行OceanBase相关的管理任务时,它会根据配置信息启动此服务器进程,并通过JSON-RPC协议调用服务器暴露的工具(如 'list_all_clusters', 'create_tenant' 等)。LLM客户端会根据用户的自然语言指令,结合服务器提供的工具描述(通过MCP协议获取),自动构造工具调用请求并发送给服务器执行。服务器执行相应的 'okctl' 命令并将结果或错误信息返回给客户端。

信息

分类

开发者工具