OceanBase Kubernetes Control Tool (okctl) MCP Server について
okctl MCPサーバーは、OceanBase Kubernetes Control Toolの操作をクライアントに提供します。okctlを通じてOceanBaseのクラスター、テナント、バックアップポリシー、コンポーネント、SQLを管理する管理者向けです。
主な機能
- 01クラスターの作成、表示、スケール、更新、アップグレード
- 02テナントのライフサイクルと設定の管理
- 03バックアップポリシーの作成と制御
- 04接続設定とSQLの実行
- 05コンポーネントのインストール、更新、一覧表示
- 06ツールグループとトランスポート方式の選択
活用シーン
- 01Kubernetes上のOceanBaseクラスター運用
- 02テナントリソースとプライマリ・スタンバイ切り替えの管理
- 03バックアップ設定とクラスターSQLの実行
- 04必要な操作グループのみ有効化
MCP 対応
okctlを介したOceanBaseのクラスター、テナント、バックアップポリシー、コンポーネント、SQL操作のツールをMCPクライアントに提供します。ツールグループを選択でき、stdioまたはSSEトランスポートに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
OceanBase Kubernetes Control Tool(okctl)MCP サーバー
English | 简体中文
プロジェクトの概要
このプロジェクトは、OceanBase Kubernetes Control Tool(okctl)の MCP サーバー実装です。OceanBase クラスター、テナント、バックアップポリシーを管理するための一連のツール関数を提供します。これらの関数は、基盤となる okctl コマンドラインツールを呼び出して実装されており、MCP プロトコルを通じてクライアントに機能を公開します。
機能モジュール
このプロジェクトには、次の主要なツールが含まれています。
1. クラスター管理(clusters.py)
OceanBase クラスターの作成、削除、表示、スケーリング、更新、アップグレードを行う機能を提供します。
list_all_clusters()- すべての OceanBase クラスターを一覧表示しますshow_cluster()- 指定したクラスターの詳細情報を表示しますcreate_cluster()- 新しい OceanBase クラスターを作成しますdelete_cluster()- 指定した OceanBase クラスターを削除しますscale_cluster()- OceanBase クラスターをスケーリングしますupdate_cluster()- OceanBase クラスターの構成を更新しますupgrade_cluster()- OceanBase クラスターのバージョンをアップグレードします
2. テナント管理(tenants.py)
OceanBase テナントの作成、削除、表示、スケーリング、更新、管理を行う機能を提供します。
list_tenants()- すべてのテナントを一覧表示しますcreate_tenant()- 新しいテナントを作成しますdelete_tenant()- 指定したテナントを削除しますshow_tenant()- テナントの詳細情報を表示しますscale_tenant()- テナントのリソースをスケーリングしますupdate_tenant()- テナントの構成を更新しますupgrade_tenant()- テナントのバージョンをアップグレードしますchange_tenant_password()- テナントのパスワードを変更しますactivate_tenant()- スタンバイテナントをアクティブ化しますreplay_tenant_log()- テナントのログを再生しますswitchover_tenant()- プライマリテナントとスタンバイテナントを切り替えます
3. バックアップポリシー管理(backup_policy.py)
OceanBase バックアップポリシーの作成、削除、表示、更新、管理を行う機能を提供します。
list_backup_policies()- すべてのバックアップポリシーを一覧表示しますcreate_backup_policy()- 新しいバックアップポリシーを作成しますdelete_backup_policy()- 指定したバックアップポリシーを削除しますshow_backup_policy()- バックアップポリシーの詳細情報を表示しますupdate_backup_policy()- バックアップポリシーを更新しますpause_backup_policy()- バックアップポリシーを一時停止しますresume_backup_policy()- バックアップポリシーを再開します
4. SQL 操作(sql.py)
データベース接続の構成と、OceanBase クラスターでの SQL クエリ実行機能を提供します。
configure_cluster_connection()- クラスターへのデータベース接続を構成します- パラメーター:cluster_name、tenant_name(デフォルト:"sys")、namespace(デフォルト:"default")、user、password(指定しない場合は、環境変数 OB_CLUSTER_PASSWORD を使用します)、port(デフォルト:2881)
- 戻り値:データベース接続の構成情報
execute_cluster_sql()- クラスターで SQL クエリを実行します- パラメーター:query、cluster_name(任意)、tenant_name(デフォルト:"sys")、database(デフォルト:"oceanbase")、namespace(デフォルト:"default")
- 戻り値:クエリ結果
- SELECT、SHOW TABLES、SHOW COLUMNS、DESCRIBE、DML ステートメントなど、さまざまな SQL コマンドをサポートします
5. コンポーネント管理(components.py)
OceanBase コンポーネントのインストール、更新、管理を行う機能を提供します。
list_components()- インストール済みのすべてのコンポーネントを一覧表示しますinstall_component()- 新しいコンポーネントをインストールしますupdate_component()- コンポーネントを更新します
開発環境のセットアップ
前提条件
- Python 3.10 以降がインストールされていること
- uv パッケージマネージャーがインストールされていること(uv の公式ドキュメント)
- OceanBase Kubernetes Control Tool(okctl)がインストールされ、構成されていること
- OceanBase クラスターへのアクセス権限を持つ Kubernetes 環境が構成されていること
MCP サーバーの構成
{
"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>"
}
}
}
}
コマンドライン引数
-
--tools:有効にするツールをカンマ区切りで指定します。選択肢:all:すべてのツールを有効にします(デフォルト)clusters:クラスター管理ツールのみを有効にしますtenants:テナント管理ツールのみを有効にしますbackup_policy:バックアップポリシー管理ツールのみを有効にしますcomponents:コンポーネント管理ツールのみを有効にしますsql:SQL 操作ツールのみを有効にします
例:
--tools=clusters,tenants,sql -
--use_sse:stdio ではなく、Server-Sent Events(SSE)トランスポートを使用します -
--port:SSE トランスポートのポートを指定します(デフォルト:8000)
重要な注意事項
- サーバーは、Kubernetes クラスターにアクセスできる環境で実行する必要があります
- すべての関数は、基盤となる okctl コマンドラインツールを呼び出して実装されているため、okctl が適切にインストールおよび設定されていることを確認してください
- ほとんどの関数には、デフォルト値が「default」の名前空間パラメーターがあります。必要に応じて指定できます
- クラスターの削除やテナントの削除など、一部の操作は取り消せない場合があります。十分に注意して実行してください
- SQL クエリを実行する際は、より正確なプロンプトを指定することをおすすめします。指定しない場合、エラーが返されることがあります
- 重要な操作を実行する前に、バックアップを行うことをおすすめします
コントリビューション
このプロジェクトの改善に役立つ Issue やプルリクエストを歓迎します。
ライセンス
このプロジェクトは、Apache 2.0 License のライセンスに基づいています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。