okctl-mcp-server
The OceanBase Kubernetes Control Tool (okctl) MCP Server provides a set of tool functions for managing OceanBase clusters, tenants, and backup policies through the MCP protocol.
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 clustersshow_cluster()
- Display detailed information of a specified clustercreate_cluster()
- Create a new OceanBase clusterdelete_cluster()
- Delete a specified OceanBase clusterscale_cluster()
- Scale an OceanBase clusterupdate_cluster()
- Update OceanBase cluster configurationupgrade_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 tenantscreate_tenant()
- Create a new tenantdelete_tenant()
- Delete a specified tenantshow_tenant()
- Display tenant detailed informationscale_tenant()
- Scale tenant resourcesupdate_tenant()
- Update tenant configurationupgrade_tenant()
- Upgrade tenant versionchange_tenant_password()
- Change tenant passwordactivate_tenant()
- Activate standby tenantreplay_tenant_log()
- Replay tenant logsswitchover_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 policiescreate_backup_policy()
- Create a new backup policydelete_backup_policy()
- Delete a specified backup policyshow_backup_policy()
- Display backup policy detailed informationupdate_backup_policy()
- Update backup policypause_backup_policy()
- Pause backup policyresume_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 componentsinstall_component()
- Install a new componentupdate_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 onlytenants
: Enable tenant management tools onlybackup_policy
: Enable backup policy management tools onlycomponents
: Enable component management tools onlysql
: 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 .