目次
1.はじめに
2.検証用Cloud SQL for MySQLインスタンスの構築
3.cloud-sql-mysqlのインストールと設定、Gemini CLIで使ってみた
4.Extension Settingsのconfigコマンドについて
5.おわりに
1.はじめに
AI エージェントツールに MCP サーバーを設定する際、JSON の構文エラーや設定ファイルへの値の設定漏れでつまずいた経験はないでしょうか。
些細なことですが、MCP サーバーを設定する際に起きうる地味なストレスかと思います。
Gemini CLI の Extensions 経由で MCP サーバーを導入すれば、Extension Settings (Gemini CLI のv0.28.0以降で利用可能)の機能により MCP サーバーの接続情報をウィザード形式で対話的に入力、設定ができます。
本ブログでは、Gemini CLI Extensions の cloud-sql-mysql(cloud_sql_mysql_admin と cloud_sql_mysql の MCP サーバーを内包した Cloud SQL for MySQL インスタンス操作用拡張機能)をインストールし、Extension Settings で接続情報を設定、Gemini CLI で実際に動かしてみたところを紹介します。
環境情報
- macOS:Tahoe 26.3
- Node.js のバージョン(
node --version):24.11.1 - Gemini CLI のバージョン(
gemini --version):0.31.0
2.検証用Cloud SQL for MySQLインスタンスの構築
Gemini CLI Extensions の cloud-sql-mysql を使うにあたり、事前に接続先となる Cloud SQL for MySQL インスタンスを用意します。
あらかじめ gcloud auth login、gcloud auth application-default login を実施しています。
検証用となるので最低限のスペックで作成します。
以下のコマンドを実行しました。(YOUR_PROJECT_ID は仮の値です。実際に使用するプロジェクト ID に置き換えてください)
gcloud sql instances create gemini-cli-test \ --database-version=MYSQL_8_0 \ --tier=db-f1-micro \ --region=asia-northeast1 \ --no-backup \ --storage-size=10GB \ --storage-type=HDD \ --project=YOUR_PROJECT_ID
上記コマンドを実行すると sqladmin.googleapis.com の有効化を要求されたので、そのタイミングで有効化しております。
インスタンスの作成完了まで10〜15分程度かかります。
インスタンスが作成できました。
Creating Cloud SQL instance for MYSQL_8_0...done.

続いてデータベースとユーザーの設定を行います。
※ Gemini CLI Extension Settings の動作確認を目的とした検証用の設定であり、今回構築したインスタンスは検証作業後、速やかに削除するものです。
実運用においては root ユーザーではなく専用ユーザーを作成、パブリック IP ではなくプライベート IP を使用し、Cloud SQL Auth Proxy で接続等ベストプラクティスに即した設定とすることを推奨します。
# データベース作成 gcloud sql databases create testdb \ --instance=gemini-cli-test \ --project=YOUR_PROJECT_ID # root ユーザーのパスワード設定 gcloud sql users set-password root \ --host=% \ --instance=gemini-cli-test \ --password=YOUR_PASSWORD \ --project=YOUR_PROJECT_ID # 接続元のグローバル IP を承認済みネットワークに追加。 gcloud sql instances patch gemini-cli-test \ --authorized-networks=<接続元のグローバル IP>/32 \ --project=YOUR_PROJECT_ID
インスタンスの作成、データベースとユーザーの設定が出来たので、次は Gemini CLI Extensions のインストールに進みます。
3.cloud-sql-mysqlのインストールと設定、Gemini CLIで使ってみた
Gemini CLI Extensions の cloud-sql-mysql をインストールします。

gemini extensions install https://github.com/gemini-cli-extensions/cloud-sql-mysql
インストールを実行すると、導入対象となる MCP サーバー 名が表示されました。
サードパーティーに関する警告文については Yes で進みます。
$ gemini extensions install https://github.com/gemini-cli-extensions/cloud-sql-mysql Loaded cached credentials. Installing extension "cloud-sql-mysql". This extension will run the following MCP servers: * cloud_sql_mysql_admin (local): /var/folders/.../gemini-extensionXXXX/toolbox --prebuilt cloud-sql-mysql-admin --stdio * cloud_sql_mysql (local): /var/folders/.../gemini-extensionXXXX/toolbox --prebuilt cloud-sql-mysql --stdio This extension will append info to your gemini.md context using CLOUD-SQL-MYSQL.md The extension you are about to install may have been created by a third-party developer and sourced from a public repository. Google does not vet, endorse, or guarantee the functionality or security of extensions. Please carefully inspect any extension and its source code before installing to understand the permissions it requires and the actions it may perform. Do you want to continue? [Y/n]: Y
この続きで設定値に関するウィザードが出てきます。

Project ID から Region、Instance、Database 、User、Password、IP Type を順に入力していきます。(本ブログの記載において、設定値については一部マスキングしております)
✔ Project ID ID of the Google Cloud project … xxxxxxxxxxxx ✔ Region Region of the Cloud SQL instance … asia-northeast1 ✔ Instance Name of the Cloud SQL instance … gemini-cli-test ✔ Database Name of the database … testdb ✔ User (Optional) Username of the database user (Default: IAM user) … root ✔ Password (Optional) Password of the database user (Default: IAM user) … xxxxxxxxxxxx ✔ IP Type (Optional) Type of the IP address: PUBLIC, PRIVATE, or PSC (Default: Public) … PUBLIC Extension "cloud-sql-mysql" installed successfully and enabled.
インストールが完了すると、設定ファイルは ~/.gemini/extensions/ 配下に保存されます。
ウィザードで入力した接続情報は .env に格納され、Gemini CLI 起動時に MCP サーバーへ環境変数として渡されます。
.gemini/extensions/
├── extension-enablement.json # Extension の有効範囲を制御
└── cloud-sql-mysql/ # Extension のインストールディレクトリ
├── .env # ウィザードで入力した設定値
├── .gemini-extension-install.json # インストール情報
├── gemini-extension.json # Extension の定義ファイル
├── CLOUD-SQL-MYSQL.md # コンテキストファイル
├── LICENSE
└── toolbox
以下は gemini-extension.json の内容です。
envVar のキー名 が .env の変数名に対応しており、ウィザードで入力した値が環境変数としてセットされます。
$ cat gemini-extension.json
{
"name": "cloud-sql-mysql",
"version": "0.1.9",
"description": "Connect and interact with a Cloud SQL for MySQL database and data",
"mcpServers": {
"cloud_sql_mysql_admin": {
"command": "${extensionPath}${/}toolbox",
"args": [
"--prebuilt",
"cloud-sql-mysql-admin",
"--stdio"
]
},
"cloud_sql_mysql": {
"command": "${extensionPath}${/}toolbox",
"args": [
"--prebuilt",
"cloud-sql-mysql",
"--stdio"
]
}
},
"contextFileName": "CLOUD-SQL-MYSQL.md",
"settings": [
{
"name": "Project ID",
"description": "ID of the Google Cloud project",
"envVar": "CLOUD_SQL_MYSQL_PROJECT"
},
{
"name": "Region",
"description": "Region of the Cloud SQL instance",
"envVar": "CLOUD_SQL_MYSQL_REGION"
},
{
"name": "Instance",
"description": "Name of the Cloud SQL instance",
"envVar": "CLOUD_SQL_MYSQL_INSTANCE"
},
{
"name": "Database",
"description": "Name of the database",
"envVar": "CLOUD_SQL_MYSQL_DATABASE"
},
{
"name": "User",
"description": "(Optional) Username of the database user (Default: IAM user)",
"envVar": "CLOUD_SQL_MYSQL_USER"
},
{
"name": "Password",
"description": "(Optional) Password of the database user (Default: IAM user)",
"envVar": "CLOUD_SQL_MYSQL_PASSWORD"
},
{
"name": "IP Type",
"description": "(Optional) Type of the IP address: PUBLIC, PRIVATE, or PSC (Default: Public)",
"envVar": "CLOUD_SQL_MYSQL_IP_TYPE"
}
]
}
.env は以下の内容が設定されています。(本ブログでは CLOUD_SQL_MYSQL_PROJECT と CLOUD_SQL_MYSQL_PASSWORD はマスキングしていますが、実際はウィザードで入力した値が表示されます)
$ cat .env CLOUD_SQL_MYSQL_PROJECT=xxxxxxxxxx CLOUD_SQL_MYSQL_REGION=asia-northeast1 CLOUD_SQL_MYSQL_INSTANCE=gemini-cli-test CLOUD_SQL_MYSQL_DATABASE=testdb CLOUD_SQL_MYSQL_USER=root CLOUD_SQL_MYSQL_PASSWORD=xxxxxxxx CLOUD_SQL_MYSQL_IP_TYPE=PUBLIC
では、実際に Gemini CLI から Cloud SQL インスタンスを操作してみます。
Gemini CLI を立ち上げ、/mcp list コマンドを実行します。(google-developer-knowledge は .gemini/settings.json に設定している MCP サーバーであり、Extensions の cloud-sql-mysql とは関係ありません)

cloud_sql_mysql_admin (from cloud-sql-mysql) と cloud_sql_mysql (from cloud-sql-mysql) が有効状態であることが確認できました。
🟢 cloud_sql_mysql_admin (from cloud-sql-mysql) - Ready (10 tools) Tools: - clone_instance - create_backup - create_database - create_instance - create_user - get_instance - list_databases - list_instances - restore_backup - wait_for_operation 🟢 cloud_sql_mysql (from cloud-sql-mysql) - Ready (6 tools) Tools: - execute_sql - get_query_plan - list_active_queries - list_table_fragmentation - list_tables - list_tables_missing_unique_indexes
では、ユーザープロンプトに DB に関する指示を入力します。
テーブル作成とサンプルデータ投入を指示しました。
> testdbにusersテーブルを作って、サンプルデータを3件入れて
✦ 現在の接続設定を確認し、testdb の作成、テーブルの作成、およびデータ挿入を行います。
まず、利用可能な Cloud SQL インスタンスを確認します。
╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓ Shell echo $CLOUD_SQL_MYSQL_PROJECT; echo $CLOUD_SQL_MYSQL_INSTANCE; echo $CLOUD_SQL_MYSQL_DATABASE [current working directory … │
│ │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✦ Cloud SQL インスタンスの一覧を取得して、利用可能なインスタンスを確認します。
╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓ list_instances (cloud_sql_mysql_admin MCP Server) {"project":"xxxxxxxxx"} │
│ │
│ [ │
│ { │
│ "name": "gemini-cli-test", │
│ "instanceType": "CLOUD_SQL_INSTANCE" │
│ } │
│ ] │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✦ インスタンス gemini-cli-test のデータベース一覧を確認します。
╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓ list_databases (cloud_sql_mysql_admin MCP Server) {"instance":"gemini-cli-test","project":"xxxxxxxxx"} │
│ │
│ [ │
│ { │
│ "name": "mysql", │
│ "charset": "utf8mb3", │
│ "collation": "utf8mb3_general_ci" │
│ }, │
│ { │
│ "name": "information_schema", │
│ "charset": "utf8mb3", │
│ "collation": "utf8mb3_general_ci" │
│ }, │
│ { │
│ "name": "performance_schema", │
│ "charset": "utf8mb4", │
│ "collation": "utf8mb4_0900_ai_ci" │
│ }, │
│ { │
│ "name": "sys", │
│ "charset": "utf8mb4", │
│ "collation": "utf8mb4_0900_ai_ci" │
│ }, │
│ { │
│ "name": "testdb", │
│ "charset": "utf8mb4", │
│ "collation": "utf8mb4_0900_ai_ci" │
│ } │
│ ] │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✦ testdb 内のテーブルを確認し、必要に応じて users テーブルの作成とデータ挿入を行います。
╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓ list_tables (cloud_sql_mysql MCP Server) {"table_names":"testdb.users"} │
│ │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✦ まず testdb.users テーブルを定義し、次にサンプルデータを挿入します。
╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓ execute_sql (cloud_sql_mysql MCP Server) {"sql":"CREATE TABLE testdb.users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100), email VAR… │
│ │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✦ サンプルデータを testdb.users に3件挿入します。
╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓ execute_sql (cloud_sql_mysql MCP Server) {"sql":"INSERT INTO testdb.users (name, email) VALUES ('User 1', 'user1@example.com'), ('User 2', … │
│ │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✦ testdb.users テーブルの内容を確認します。
╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓ execute_sql (cloud_sql_mysql MCP Server) {"sql":"SELECT * FROM testdb.users;"} │
│ │
│ {"id":1,"name":"User 1","email":"user1@example.com"} │
│ {"id":2,"name":"User 2","email":"user2@example.com"} │
│ {"id":3,"name":"User 3","email":"user3@example.com"} │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✦ testdb 内に users テーブルを作成し、3件のサンプルデータを挿入しました。
1. テーブル名: testdb.users
2. カラム: id (PK, AI), name, email
3. 挿入データ:
- User 1 (user1@example.com)
- User 2 (user2@example.com)
- User 3 (user3@example.com)
サンプルデータを参照する指示をユーザープロンプトに入力してみます。
> testdbのusersテーブルのデータを全件見せて
✦ testdb.users テーブルの全件データを取得します。
╭─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮
│ ✓ execute_sql (cloud_sql_mysql MCP Server) {"sql":"SELECT * FROM testdb.users;"} │
│ │
│ {"id":1,"name":"User 1","email":"user1@example.com"} │
│ {"id":2,"name":"User 2","email":"user2@example.com"} │
│ {"id":3,"name":"User 3","email":"user3@example.com"} │
╰─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯
✦ testdb.users テーブルの全3件のデータは以下の通りです。
┌────┬────────┬───────────────────┐
│ id │ name │ email │
├────┼────────┼───────────────────┤
│ 1 │ User 1 │ user1@example.com │
│ 2 │ User 2 │ user2@example.com │
│ 3 │ User 3 │ user3@example.com │
└────┴────────┴───────────────────┘
データ取得が行われ、テーブルデータを出力してくれています。
Gemini CLI にて MCP サーバー経由で DB のテーブル作成とサンプルデータ投入、テーブルデータ参照が確認できました。
今回構築したインスタンスは以下のコマンドで削除可能です。(YOUR_PROJECT_ID は仮の値です。実際に使用するプロジェクト ID に置き換えてください)
$ gcloud sql instances delete gemini-cli-test --project=YOUR_PROJECT_ID 〜〜省略〜〜 Deleting Cloud SQL instance...done. 〜〜省略〜〜
4.Extension Settingsのconfigコマンドについて
Extension Settings には config コマンドが用意されています。
※ 詳しくは Making Gemini CLI extensions easier to use を参照ください。
インストール済みである cloud-sql-mysql に対して実行してみます。
設定値の更新
.env で確認した設定値全てを更新したい場合、gemini extensions config extension-name を実行します。
$ gemini extensions config cloud-sql-mysql Loaded cached credentials. Configuring settings for "cloud-sql-mysql"... ? Setting "Project ID" (CLOUD_SQL_MYSQL_PROJECT) is already set. Overwrite? › (y/N)
値の上書きに関する確認が出ます。
yes で進めます。(Password はマスキングしております。実際は入力した文字列が表示されます)
$ gemini extensions config cloud-sql-mysql Loaded cached credentials. Configuring settings for "cloud-sql-mysql"... ✔ Setting "Project ID" (CLOUD_SQL_MYSQL_PROJECT) is already set. Overwrite? … yes ✔ Project ID ID of the Google Cloud project … project-a ✔ Setting "Region" (CLOUD_SQL_MYSQL_REGION) is already set. Overwrite? … yes ✔ Region Region of the Cloud SQL instance … us-central1 ✔ Setting "Instance" (CLOUD_SQL_MYSQL_INSTANCE) is already set. Overwrite? … yes ✔ Instance Name of the Cloud SQL instance … gemini-cli-dev ✔ Setting "Database" (CLOUD_SQL_MYSQL_DATABASE) is already set. Overwrite? … yes ✔ Database Name of the database … devdb ✔ Setting "User" (CLOUD_SQL_MYSQL_USER) is already set. Overwrite? … yes ✔ User (Optional) Username of the database user (Default: IAM user) … admin ✔ Setting "Password" (CLOUD_SQL_MYSQL_PASSWORD) is already set. Overwrite? … yes ✔ Password (Optional) Password of the database user (Default: IAM user) … xxxxxxxx ✔ Setting "IP Type" (CLOUD_SQL_MYSQL_IP_TYPE) is already set. Overwrite? … yes ✔ IP Type (Optional) Type of the IP address: PUBLIC, PRIVATE, or PSC (Default: Public) … PRIVATE
.gemini/extensions/cloud-sql-mysql/.env を見ると値の更新が反映されています。(Password はマスキングしております。実際は入力した文字列が表示されます)
$ cat .env CLOUD_SQL_MYSQL_PROJECT=project-a CLOUD_SQL_MYSQL_REGION=us-central1 CLOUD_SQL_MYSQL_INSTANCE=gemini-cli-dev CLOUD_SQL_MYSQL_DATABASE=devdb CLOUD_SQL_MYSQL_USER=admin CLOUD_SQL_MYSQL_PASSWORD=xxxxxxxx CLOUD_SQL_MYSQL_IP_TYPE=PRIVATE
特定の設定値のみ更新
特定の項目のみ更新する場合は、gemini extensions config extension-name env-var-name を実行します。
$ gemini extensions config cloud-sql-mysql CLOUD_SQL_MYSQL_PROJECT Loaded cached credentials. ✔ Project ID ID of the Google Cloud project … project-b Setting "CLOUD_SQL_MYSQL_PROJECT" updated.
.gemini/extensions/cloud-sql-mysql/.env を見ると CLOUD_SQL_MYSQL_PROJECT の値のみ更新されています。(Password はマスキングしております。実際は入力した文字列が表示されます)
$ cat .env CLOUD_SQL_MYSQL_PROJECT=project-b CLOUD_SQL_MYSQL_REGION=us-central1 CLOUD_SQL_MYSQL_INSTANCE=gemini-cli-dev CLOUD_SQL_MYSQL_DATABASE=devdb CLOUD_SQL_MYSQL_USER=admin CLOUD_SQL_MYSQL_PASSWORD=xxxxxxxx CLOUD_SQL_MYSQL_IP_TYPE=PRIVATE
ワークスペースのオーバーライド
プロジェクト間(作業ディレクトリ)で異なる設定としたい場合、--scope workspace フラグを使用します。
このフラグを使用したコマンドの実行で、使用中のディレクトリに .env ファイルが作成されます。
以下では cloud-sql-mysql の CLOUD_SQL_MYSQL_PROJECT 部分の値を異なるものとしています。
$ pwd /Users/名前/Documents/0228_config $ gemini extensions config cloud-sql-mysql CLOUD_SQL_MYSQL_PROJECT --scope workspace Loaded cached credentials. ✔ Project ID ID of the Google Cloud project … project-c Setting "CLOUD_SQL_MYSQL_PROJECT" updated. $ ls -la 〜〜省略〜〜 -rw-r--r-- 1 xxxxxxxx staff 34 x月 xx xx:xx .env $ cat .env CLOUD_SQL_MYSQL_PROJECT=project-c
5.おわりに
Gemini CLI Extensions の cloud-sql-mysql をインストールし、Extension Settings でウィザード形式での設定の実施、そして Gemini CLI から実際に Cloud SQL を操作するところまで試してみました。
JSON ファイルを直接編集する時と比べ、スムーズな設定がイメージ出来るかと思います。
なお、すべての Extensions がウィザード形式での設定に対応しているわけではなく、おそらく gemini-extension.json の “settings” で、”envVar” の項目のあるものが対応していると思われますのでご注意ください。(参考:Step 3: Add extension settings)
Google Cloud 関係ですと、以下がウィザード形式の設定に対応している Extensions かと思われます。