Model Context Protocol(MCP)サーバーは、大規模言語モデル(LLM)または AI アプリケーションにコンテキスト、データ、機能を提供する外部サービスとの間のプロキシとして機能します。MCP サーバーは、AI アプリケーションをデータベースやウェブサービスなどの外部システムに接続し、そのレスポンスを AI アプリケーションが理解できる形式に変換します。
サーバーの設定
使用する前に、MCP サーバーを有効にして 認証を設定する必要があります。Google と Google Cloud のリモート MCP サーバーの使用方法については、Google Cloud MCP サーバーの概要をご覧ください。
MCP 用の Cloud SQL Admin API
サーバー エンドポイント
MCP サービス エンドポイントは、安全で標準化された接続を確立するために AI アプリケーション(MCP クライアントのホスト)が使用する MCP サーバーのネットワーク アドレスと通信インターフェース(通常は URL)です。これは、LLM がコンテキストをリクエストしたり、ツールを呼び出したり、リソースにアクセスしたりするための接続ポイントとなります。Google MCP エンドポイントをグローバルまたはリージョンにすることができます。
cloud-sql MCP サーバーには、次の MCP エンドポイントがあります。
- https://sqladmin.googleapis.com/mcp
MCP ツール
MCP ツールは、現実世界でアクションを実行する目的で MCP サーバーが LLM または AI アプリケーションに対して公開する関数または実行可能な機能です。
cloud-sql MCP サーバーには次のツールがあります。
| MCP ツール | |
|---|---|
| list_instances | プロジェクト内のすべての Cloud SQL インスタンスを一覧表示します。 |
| get_instance | Cloud SQL インスタンスの詳細を取得します。 |
| create_instance |
Cloud SQL インスタンスの作成を開始します。
特に指定しない限り、新しく作成されたインスタンスは開発環境のデフォルトのインスタンス構成を使用します。 開発環境のインスタンスのデフォルト構成は次のとおりです。 本番環境のインスタンスには、次の構成をおすすめします。 SQL Server には、次のインスタンス構成をおすすめします。 |
| execute_sql |
Cloud SQL インスタンスで、データ定義言語(DDL)、データ制御言語(DCL)、データクエリ言語(DQL)、データ操作言語(DML)のステートメントなど、有効な SQL ステートメントを実行します。
「IAM 認証がインスタンスで有効になっていません」などのエラーが表示された場合は、 「インスタンスでは executeSql を使用してこのインスタンスにアクセスできません」などのエラーが表示された場合は、 認証エラーが発生した場合:
|
| execute_sql_readonly |
Cloud SQL インスタンスで有効な読み取り専用 SQL ステートメントを実行します。
「IAM 認証がインスタンスで有効になっていません」などのエラーが表示された場合は、 「インスタンスでは executeSql を使用してこのインスタンスにアクセスできません」などのエラーが表示された場合は、 認証エラーが発生した場合:
|
| get_operation | 長時間実行オペレーションのステータスを取得します。長時間実行オペレーションが完了するまでに数分かかることがあります。オペレーションに時間がかかる場合は、コマンドライン ツールを使用して 30 秒間一時停止してから、オペレーションのステータスを再確認します。 |
| create_user |
Cloud SQL インスタンスのデータベース ユーザーを作成します。
PostgreSQL で IAM ユーザーを作成するには:
IAM ユーザー用に作成されたデータベース ユーザー名は PostgreSQL で IAM サービス アカウントを作成するには:
IAM サービス アカウント用に作成されたデータベース ユーザー名は MySQL で IAM ユーザーまたは IAM サービス アカウントを作成するには:
IAM ユーザー用に作成されたデータベース ユーザー名は
IAM サービス アカウント用に作成されたデータベース ユーザー名は |
| update_user |
Cloud SQL インスタンスのデータベース ユーザーを更新します。 このツールは、データベース ロールを割り当てるためにユーザーを更新する場合にのみサポートされます。
ユーザーロールを更新するためのキーパラメータ:
ロールの更新の仕組み:
例:
|
| clone_instance |
Cloud SQL インスタンスを、ソース インスタンスのクローンとして作成します。
|
| update_instance |
Cloud SQL インスタンスの構成設定を部分的に更新します。
|
| list_users | Cloud SQL インスタンスのすべてのデータベース ユーザーを一覧表示します。 |
| create_backup | Cloud SQL インスタンスでバックアップを作成します。リクエストには必ずプロジェクト フィールドとインスタンス フィールドを入力してください。バックアップのロケーション(リージョン)と説明を指定することもできます。その場合は、対応するリクエスト フィールドにも入力する必要があります。 |
| restore_backup |
Cloud SQL インスタンスにバックアップを復元します。 リクエストで target_instance と target_project を指定して入力する必要があります。 バックアップ識別子は、次の方法で指定できます。
識別子を使用して、リクエストの リクエストで source_project を入力する必要があります。識別子が backup_run_id の場合は、source_project が指定されます。識別子がバックアップ URI の場合は、URI から source_project を抽出する必要があります。抽出した source_project を target_project と混同しないでください。target_project は別の方法で指定されます。 また、識別子が backup_run_id の場合は、source_instance を指定してリクエストに入力する必要があります。 復元する前にインスタンスを作成しないでください。復元時に必要に応じてインスタンスが作成されます。 復元を実行する前に、ユーザーにパラメータを確認してください。 |
| import_data |
Cloud SQL インスタンスにデータをインポートします。 ファイルが ファイルを Cloud Storage にアップロードする前に、既存のバケットを使用するか、指定されたプロジェクトに新しいバケットを作成するかを検討してください。 ファイルが Cloud Storage にアップロードされたら、インスタンス サービス アカウントに、Cloud Storage バケットからアップロードされたファイルを読み取るための十分な権限が必要です。 これは、次のようにして実現できます。
権限が付与されたら、データをインポートできます。省略可能なパラメータは空のままにして、システムのデフォルトを使用することをおすすめします。通常、ファイルタイプはファイル拡張子で判断できます。たとえば、ファイルが SQL ファイルの場合は MySQL の SQL データベース名は SQL ファイルに存在することが想定されているため、MySQL には PostgreSQL の場合は、
|
| postgres_upgrade_precheck |
Cloud SQL for PostgreSQL インスタンスが、指定されたターゲット バージョンへのメジャー バージョン アップグレードの準備ができているかどうかを確認します。 リクエストで このツールは、実際のアップグレードを試みる前に潜在的な問題を特定し、失敗やダウンタイムのリスクを軽減します。 このツールは PostgreSQL プライマリ インスタンスでのみサポートされており、リードレプリカでは実行されません。 通常、事前チェックでは次の点が評価されます。
このツールは、長時間実行オペレーションを返します。この呼び出しで返されたオペレーション名を使用して、 重要: オペレーションのステータスが DONE になると、詳細な事前チェックの結果が 結果は構造化されており、次のことを示します。
各検出結果には、メッセージと必要なアクションを含める必要があります。メジャー バージョン アップグレードに進む前に、報告された問題を解決することが重要です。 この事前チェックを実行しても、インスタンスの可用性に影響はありません。 |
MCP ツールの仕様を取得する
MCP サーバー内のすべてのツールの MCP ツール仕様を取得するには、tools/list メソッドを使用します。次の例は、curl を使用して、MCP サーバー内で現在使用可能なすべてのツールとその仕様を一覧表示する方法を示しています。
| Curl リクエスト |
|---|
curl --location 'https://sqladmin.googleapis.com/mcp' \ --header 'content-type: application/json' \ --header 'accept: application/json, text/event-stream' \ --data '{ "method": "tools/list", "jsonrpc": "2.0", "id": 1 }' |