1. はじめに
これまで OCI Database Tools MCP Server を含む Oracle 公式の MCP サーバで Oracle AI Database に接続する検証を行ってきました。本記事では対象を MySQL に広げ、OCI Database Tools MCP Server から OCI MySQL HeatWave に接続できるかを検証します。
OCI Database Tools サービスは、Oracle Database に加えて MySQL HeatWave への接続 もサポートしています。Database Tools には「接続(Connection)」と「MCP Server」という別レイヤーがあり、接続が MySQL に対応していても、その上の MCP Server が MySQL を受け付けるかは別の問題です。本記事ではこの 2 つのレイヤーを順に確認します。
結論として、MySQL HeatWave への Database Tools 接続は作成・検証できた一方、その接続を MCP Server に指定すると ORACLE_DATABASE 限定で拒否され、MCP Server 化はできませんでした(本記事執筆時点)。検証過程では MySQL の認証エラーが Oracle の文言で返るなど、切り分け上の注意点もあったため、あわせて記録します。
1.1. 結論先出し
- ✅ OCI Database Tools で MySQL HeatWave への接続を作成 → 接続の検証成功(バージョン
9.7.0-cloudを取得) - ❌ その MySQL 接続を MCP Server に指定すると作成時に拒否される(
connection type must be one of [ORACLE_DATABASE]) - ⚠️ 注意点1: MySQL のログイン失敗が Oracle の文言(
ORA-01045 / CREATE SESSION)でラップされて返るため、原因の切り分けに注意が必要 - ⚠️ 注意点2: MCP Server 作成画面の接続プルダウンは MySQL 接続も選択できるが、作成時に拒否される(UI ではフィルタされない)
- 💡 MySQL を MCP で扱う場合は、OCI Database Tools MCP ではなく MySQL プロトコルに直接接続する MCP(Google MCP Toolbox の mysql ソース等)を用いる
1.2. 検証ゴールと結果
| # | 検証項目 | 達成条件 | 結果 |
|---|---|---|---|
| 1 | OCI Database Tools で MySQL HeatWave への接続を作れるか | 「接続の検証」が成功し、対象 MySQL に到達できる | ✅ OK |
| 2 | その MySQL 接続で MCP Server を作れるか | MCP Server が作成でき、ツールがリストされる | ❌ NG(Oracle 限定で拒否) |
| 3 | MCP クライアントから自然言語で MySQL を引けるか | MySQL に実クエリが通る | ❌ 未達(ゴール2が NG のため到達不能) |
2. OCI Database Tools の構造 ─ 「接続」と「MCP Server」は別レイヤー
今回のポイントは、OCI Database Tools が 2 つのレイヤーに分かれていることです。
- 接続(Database Tools Connection): 対象 DB への到達情報(エンドポイント・認証・プライベートエンドポイント)をまとめた再利用可能なリソース。Oracle / MySQL の両方に対応
- MCP Server: その接続を MCP クライアントから使えるように公開するレイヤー
※今回は結果的に MySQL を MCP クライアントから呼んでいるわけではありません。動くなら上記のような形での接続になるという認識です。
2.1. Database Tools の役割
Database Tools は、OCI 上の Oracle Database / MySQL への接続を扱うサービスです。主な用途は次のとおりです。
- ブラウザベースの SQL ワークシートからのクエリ実行(ローカルへのクライアントや wallet の導入が不要)
- 接続情報を Vault シークレット参照で保持し、IAM で権限管理する「接続」の一元管理
- プライベートエンドポイント経由での、プライベートサブネット上の DB への到達
- Database Migration や GoldenGate など、他サービスが参照する接続の部品
「接続」は各種ツールから DB に到達するための共通部品であり、MySQL 接続を作成できることは、部品レベルでは MySQL が扱えることを意味します。一方で、その接続を MCP Server に載せられるかは別レイヤーの話になります。
Database Tools の「接続」が対応する DB は Oracle Database と MySQL です。OCI Database with PostgreSQL は接続タイプとして用意されておらず、Database Tools の対象外です(本記事執筆時点)。
2.2. MCP Server レイヤーの位置づけ
接続を MCP クライアントへ公開するのが MCP Server レイヤーです。公式ドキュメントでは、Database Tools MCP Server は次のように説明されています。
データベース・ツール MCP サーバーは、マルチテナントのマネージド・サービスで、MCP クライアントがモデル・コンテキスト・プロトコル (MCP) を介して Oracle AI Database に安全にアクセスできるようにします。IAM アイデンティティ・ドメインの OAuth 2.0 サポートと統合され、エンタープライズ対応のアクセス制御を可能にします。
説明の対象は Oracle AI Database であり、MySQL は挙げられていません。接続レイヤーが MySQL に対応していても MCP Server レイヤーが MySQL を受け付けるとは限らない、という点が本検証の確認対象です。
Oracle DB に直接つなぐ OCI / Oracle 公式の MCP サーバには、主に次の 3 つがあります(本記事の対象は 3 つ目の Database Tools MCP Server です。詳しくは過去記事 OCI Database Tools MCP Server を Claude Desktop につないでみた を参照)。なお、これら以外にも Oracle Integration を MCP サーバとして使う 経路や、エージェント基盤の Private Agent Factory(MCP サーバを接続・自作するための基盤)など、MCP を扱う仕組みは複数あります。
| 観点 | SQLcl MCP | ADB 組み込み MCP | Database Tools MCP Server(本記事) |
|---|---|---|---|
| サーバの所在 | ローカル | ADB 自身 | OCI マネージド |
| 対応 DB | 全 Oracle DB | ADB のみ | 本記事で検証 → Oracle 接続のみ |
| 認証 | DB ユーザー | DB ユーザー / ORDS | IAM(OAuth / PAT) |
3. 検証環境
| 項目 | 内容 |
|---|---|
| 対象 DB | OCI MySQL HeatWave DB システム(MySQL 9.7.0 / シェイプ MySQL.Free.Standalone・Always Free) |
| ネットワーク | VCN・サブネット(プライベート)/ プライベート IP のみ / port 3306・33060 |
| TLS | サービス定義(ワンウェイ TLS。クライアント証明書・wallet 不要) |
| Database Tools | 接続(MySQL)+ プライベートエンドポイント |
| OCI リージョン | ap-tokyo-1 |
| クライアント | OCI コンソール / OCI Cloud Shell(CLI 検証用) |
4. やってみた① ─ Database Tools 接続は作れる(成功)
MySQL HeatWave はプライベート IP でしか待ち受けないため、Database Tools から到達するには プライベートエンドポイント経由になります。手順は ADB 版の記事とほぼ同じで、ADB との差分は「接続タイプが MySQL」「プライベートエンドポイントが必要」の 2 点です。
4.1. プライベートエンドポイントの作成
MySQL HeatWave と同じ VCN・サブネットに Database Tools プライベートエンドポイントを作ります。プライベートエンドポイント作成時に「データベース・クラウド・サービス」で MySQL HeatWave を選べる点から、プライベートエンドポイントは DB 種別に紐づくことがわかります。
4.2. パスワードを Vault シークレットに登録
Database Tools の接続は、パスワードを平文では持てず、必ず OCI Vault のシークレット参照で渡す仕様です。MySQL 管理者のパスワードをプレーン・テキストのシークレットとして登録します。
シークレットに貼るパスワードは、末尾の空白・改行を入れないよう注意してください(プレーン・テキスト欄での混入で認証に失敗します)。
4.3. 接続の作成
接続作成画面で、データベース・タイプに MySQL HeatWave を選び、対象 DB システム・ユーザー名・パスワードシークレット・プライベートエンドポイントを指定します。SSL モードは「必須」(ワンウェイ TLS)で、wallet は不要です。ここでユーザー名を「admin」で作ったのが、後でちょっとした気付きを得ることに繋がりました。
4.4. つまずいた点:エラーが Oracle の文言で返る
「接続の検証」を実行すると、MySQL を対象とした接続にもかかわらず Oracle のエラーが返りました。
Login denied. User does not have CREATE SESSION privilege
原因: ORA-01045: A connect was attempted for a user who does not have the CREATE SESSION privilege
CREATE SESSION は Oracle 固有の概念で、MySQL には存在しません。最初は「プライベートエンドポイントが ADB 用のものを流用しているせいで、通信が Oracle 側に流れているのでは」と疑い、MySQL 専用のプライベートエンドポイントを作り直しましたが、同じエラーのままでした。
切り分けのため、OCI CLI の MySQL 専用検証コマンドでも確認しました。
oci dbtools connection validate-mysql-database --connection-id <接続のOCID>
返ってきた結果がこれです。
{
"data": {
"cause": "ORA-01045: A connect was attempted for a user who does not have the CREATE SESSION privilege",
"code": "MissingCreateSession",
"database-version": null,
"message": "Login denied. User does not have CREATE SESSION privilege",
"type": "MYSQL"
}
}
"type": "MYSQL" と明示されているにもかかわらず、文言は Oracle のものです。database-version が null であることから、ログイン自体が成立しておらず、実体は MySQL の認証失敗だと判断できます。つまり OCI Database Tools は MySQL のログイン拒否を Oracle 由来の文言(ORA-01045 / CREATE SESSION / MissingCreateSession)でラップして返しているわけです。
原因は単純に接続のユーザー名の誤りでした。正しい管理者ユーザー名は admin ではなく root でした。OCI MySQL は管理者ユーザー名をコンソールに表示しないため、特定に時間を要しました。
4.5. 接続の検証成功
ユーザー名を root に直すと、検証が通り、バージョン 9.7.0-cloud が返ってきました。ここでゴール1は達成です。
5. やってみた② ─ MCP Server には載らない(Oracle 限定)
接続が作成できたため、次に MCP Server を作成します。コンソールの MCP Server 作成画面では、接続プルダウンに 作成済みの MySQL 接続(mysql-heatwave-conn)が表示され、選択できます。
この MySQL 接続を指定して作成すると、次のエラーが返りました。
MCP Server に載せられる接続は ORACLE_DATABASE のみで、MySQL 接続は弾かれました。UI のプルダウンは接続タイプでフィルタしないため、選べてしまうのに作成段階で初めて拒否される、という分かりにくい挙動です。
これで本検証の答えが確定しました。「OCI Database Tools の接続」レイヤーは MySQL HeatWave に対応しているが、「MCP Server」レイヤーは Oracle 接続限定で、MySQL は MCP 化できない(本記事執筆時点)。ゴール2・3 は未達で確定です。
6. 考察
- 接続レイヤーが MySQL に対応しているのは実測どおりで、検証も
9.7.0-cloudを返して成立しました。一方で MCP Server 作成時にconnection type must be one of [ORACLE_DATABASE]が返るのは、サービス自身が対応接続タイプを Oracle に限定していることを明示するメッセージだと考えられます - 公式ドキュメントの Database Tools MCP Server の説明(2.2 章)は対象を Oracle AI Database としており、MySQL の記載はありません。MCPサーバーの設定(前提条件・チュートリアル) も一貫して Autonomous Database への接続を前提に書かれています。これと実機のエラーを合わせると、本記事執筆時点(2026 年 6 月)では MCP Server は Oracle 接続のみ対応と読めます。将来的に MySQL 対応が追加される可能性はあります
- エラーが Oracle 文言でラップされる件は、Database Tools が Oracle 起点のサービスである名残と考えられます。MySQL 接続のトラブル時は、
ORA-の文字に惑わされず MySQL の認証情報(ユーザー名・パスワード)だけを疑えばよい、というのが今回の教訓です
7. 回避策とまとめ
7.1. MySQL を MCP で触りたい場合の回避策
OCI Database Tools MCP は使えないので、MySQL を MCP 経由で触るなら MySQL プロトコルに直接つなぐ MCP を使います。
-
Google MCP Toolbox for Databases の
mysqlソース(マルチ DB 対応で MySQL も含む) - bytebase/dbhub(PostgreSQL / MySQL / SQL Server などに対応するマルチ DB の MCP)
- designcomputer/mysql_mcp_server(MySQL 専用のコミュニティ MCP)
いずれも OCI MySQL HeatWave がプライベート IP のみである点は変わらないため、MCP を VCN 内のコンピュートでホストするか、踏み台トンネル経由で動かす構成になります。これは別途試して続編にする予定です。
7.2. まとめ
| # | 検証項目 | 結論 |
|---|---|---|
| 1 | MySQL HeatWave への Database Tools 接続 | ✅ 作成・検証成功(9.7.0-cloud、ユーザー名は root) |
| 2 | その接続で MCP Server を作成 | ❌ connection type must be one of [ORACLE_DATABASE] で拒否 |
| 3 | MCP から MySQL を引く | ❌ 未達(MCP 化できないため) |
- OCI Database Tools の 接続レイヤーは MySQL 対応、MCP Server レイヤーは Oracle 限定(執筆時点)
- 注意が必要なのは「MySQL のエラーが Oracle 文言で返る」「UI は MySQL 接続を選択できるが作成時に拒否される」の 2 点
- MySQL を MCP で扱う場合は MySQL に直接接続する MCP を用いる







