OceanBase Kubernetes Control Tool (okctl) MCP Server

by lizzy-0323

2 stars
223 downloads
Not rated
GitHub

About

It is an MCP server implementation that exposes OceanBase cluster, tenant, and backup policy management tools via the MCP protocol by calling the underlying okctl command-line tool. It is intended for users who manage OceanBase clusters on Kubernetes.

Details

Author
lizzy-0323
GitHub stars
2
Downloads
223
Categories
Cloud Service

- Cluster management: create, delete, view, scale, update, upgrade clusters
- Tenant management: create, delete, view, scale, update, upgrade, change password, activate standby, replay logs, switchover
- Backup policy management: create, delete, view, update, pause, resume policies
- SQL operations: configure database connection and execute SQL queries
- Component management: list, install, and update components

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name OceanBase Kubernetes Control Tool (okctl) MCP Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Requires Python 3.10+, the uv package manager, and a properly installed and configured okctl and Kubernetes environment. Configure the server in your MCP client JSON, setting the OB_CLUSTER_PASSWORD environment variable. Optional command-line arguments include --tools to enable specific modules, --use_sse for SSE transport, and --port to set the SSE port (default 8000).

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "oceanbase kubernetes control tool (okctl) mcp server": {
            "okctl-mcp-server-py": {
                "command": "uv",
                "args": [
                    "--directory",
                    "/path/to/okctl-mcp-server",
                    "run",
                    "src/okctl/server.py"
                ],
                "env": {
                    "OB_CLUSTER_PASSWORD": "<password of cluster>"
                }
            }
        }
    }
}

McpServers

{
    "okctl-mcp-server-py": {
        "command": "uv",
        "args": [
            "--directory",
            "/path/to/okctl-mcp-server",
            "run",
            "src/okctl/server.py"
        ],
        "env": {
            "OB_CLUSTER_PASSWORD": "<password of cluster>"
        }
    }
}

OceanBase Kubernetes Control Tool (okctl) MCP Server

English | 简体中文

Project Overview

This project is the MCP server implementation for the OceanBase Kubernetes Control Tool (okctl). It provides a set of tool functions for managing OceanBase clusters, tenants, and backup policies. These functions are implemented by calling the underlying okctl command-line tool and exposing these features to clients through the MCP protocol.

Functional Modules

This project includes the following main tools:

1. Cluster Management (clusters.py)

Provides functionality for creating, deleting, viewing, scaling, updating, and upgrading OceanBase clusters.

- list_all_clusters() - List all OceanBase clusters
- show_cluster() - Display detailed information of a specified cluster
- create_cluster() - Create a new OceanBase cluster
- delete_cluster() - Delete a specified OceanBase cluster
- scale_cluster() - Scale an OceanBase cluster
- update_cluster() - Update OceanBase cluster configuration
- upgrade_cluster() - Upgrade OceanBase cluster version

2. Tenant Management (tenants.py)

Provides functionality for creating, deleting, viewing, scaling, updating, and managing OceanBase tenants.

- list_tenants() - List all tenants
- create_tenant() - Create a new tenant
- delete_tenant() - Delete a specified tenant
- show_tenant() - Display tenant detailed information
- scale_tenant() - Scale tenant resources
- update_tenant() - Update tenant configuration
- upgrade_tenant() - Upgrade tenant version
- change_tenant_password() - Change tenant password
- activate_tenant() - Activate standby tenant
- replay_tenant_log() - Replay tenant logs
- switchover_tenant() - Switch between primary and standby tenants

3. Backup Policy Management (backup_policy.py)

Provides functionality for creating, deleting, viewing, updating, and managing OceanBase backup policies.

- list_backup_policies() - List all backup policies
- create_backup_policy() - Create a new backup policy
- delete_backup_policy() - Delete a specified backup policy
- show_backup_policy() - Display backup policy detailed information
- update_backup_policy() - Update backup policy
- pause_backup_policy() - Pause backup policy
- resume_backup_policy() - Resume backup policy

4. SQL Operations (sql.py)

Provides functionality for configuring database connections and executing SQL queries on OceanBase clusters.

- configure_cluster_connection() - Configure database connection to a cluster
- Parameters: cluster_name, tenant_name (default: "sys"), namespace (default: "default"), user, password (if not provided, will use environment variable OB_CLUSTER_PASSWORD), port (default: 2881)
- Returns: Database connection configuration information
- execute_cluster_sql() - Execute SQL queries on a cluster
- Parameters: query, cluster_name (optional), tenant_name (default: "sys"), database (default: "oceanbase"), namespace (default: "default")
- Returns: Query results
- Supports various SQL commands including SELECT, SHOW TABLES, SHOW COLUMNS, DESCRIBE, and DML statements

5. Component Management (components.py)

Provides functionality for installing, updating, and managing OceanBase components.

- list_components() - List all installed components
- install_component() - Install a new component
- update_component() - Update component

Development Environment Setup

Prerequisites

- Python 3.10 or higher installed
- uv package manager installed (uv official documentation)
- OceanBase Kubernetes Control Tool (okctl) installed and configured
- Kubernetes environment configured with access permissions to OceanBase clusters

Configuring the MCP Server

{
  "mcpServers": {
    "okctl-mcp-server-py": {
      "command": "uv",
      "args": ["--directory", "/path/to/okctl-mcp-server", "run", "src/okctl/server.py"],
      "env": {
        // you need to set these environment variables if you want to connect to cluster by root@sys
        "OB_CLUSTER_PASSWORD": "<password of cluster>"
      }
    }
  }
}

Command Line Arguments

- --tools: Specify which tools to enable, comma separated. Options:

- all: Enable all tools (default)
- clusters: Enable cluster management tools only
- tenants: Enable tenant management tools only
- backup_policy: Enable backup policy management tools only
- components: Enable component management tools only
- sql: Enable SQL operation tools only

Example: --tools=clusters,tenants,sql

- --use_sse: Use Server-Sent Events (SSE) transport instead of stdio
- --port: Specify the port for SSE transport (default: 8000)

Important Notes

- The server needs to run in an environment with access to the Kubernetes cluster
- All functions are implemented by calling the underlying okctl command-line tool, so ensure okctl is properly installed and configured
- Most functions provide a namespace parameter with a default value of "default", which can be specified as needed
- Some operations (such as deleting clusters, deleting tenants) may be irreversible, please proceed with caution
- When executing SQL queries, it is recommended to provide a more precise prompt, otherwise it may return an error
- It is recommended to perform backups before executing important operations

Contributing

Issues and Pull Requests are welcome to improve this project.

License

This project is licensed under the Apache 2.0 License.

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.