1. はじめに
2026 年 5 月 12 日、OCI に Database Tools MCP Server がリリースされました。Oracle がフルマネージドで提供する MCP サーバで、Claude Desktop などの MCP クライアントから IAM 経由で Oracle AI Database に安全にアクセスできるサービスです。
GA 直後ということで実機 UI と公式 Docs に若干乖離がみられたため、Claude Desktop からつなぐまでの セットアップを実機で 1 通り通しきった記録 として公開します。過去記事の ADB 組み込み MCP 編 の続編的位置付けです。
検証ゴール
| # | 検証項目 | 達成判定 |
|---|---|---|
| 1 | OCI Database Tools MCP Server をセットアップし、Claude Desktop から接続できるか | Claude Desktop 上に MCP サーバが認識され、ツールがリストされる |
結論先出し
- ✅ Claude Desktop から OCI Database Tools MCP Server に接続成功
- ✅ 動作確認として
schema_informationツールで DBA_COPILOT スキーマのオブジェクト一覧を自然言語で取得できた - 🚧 「いま重い SQL を 3 件教えて」のような任意 SELECT を投げる部分は次回記事(Custom SQL Tool 編)で扱います
2. Database Tools MCP Server とは
Oracle 公式が提供する MCP サーバは現時点で 3 種類あり、混同しやすいので並べて整理します。
| 観点 | SQLcl MCP Server | ADB 26ai 組み込み MCP | Database Tools MCP Server(本記事) |
|---|---|---|---|
| サーバの所在 | ローカル(SQLcl をローカルプロセスとして起動) | ADB 自身が MCP サーバ | OCI がマネージドホストする独立サービス |
| 対応 DB | 全 Oracle DB(オンプレ含む) | ADB 26ai のみ | 全 Oracle Cloud DB |
| 認証 | SQLcl の接続設定(DB ユーザ) | DB ユーザー / ORDS | IAM Identity Domain(OAuth 2.0 / PAT) |
| トランスポート | stdio | Streamable HTTP | Streamable HTTP |
| カスタムツール | 不可(固定ツール) | DB 内 SQL 関数 + タグ | OCI コンソールで定義(3 タイプ) |
| Application Role | なし | なし | 組み込み 3 種 |
| GA | 2025-07 | 2025-12 | 2026-05-12 |
2.1. 全体アーキテクチャ
3. 検証環境
| 項目 | 内容 |
|---|---|
| OCI リージョン | ap-tokyo-1 |
| Identity Domain | Default |
| ADB | Oracle AI Database 26ai Enterprise Edition 23.26.2.1.0 |
| DB ユーザー |
DBA_COPILOT(過去記事から流用) |
| Object Storage バケット |
mcp-server-bucket(Standard) |
| Claude Desktop | バージョン 1.7196.0 |
| OS | Windows 11 Pro |
| Node.js | v18+(npx mcp-remote を使うため) |
4. セットアップの全体像
Claude Desktop につないで動作確認するまでの 10 ステップ(§5.1〜§5.10)は次のとおりです:
なお、本検証は Runtime Identity = Resource Principal で動作確認しています(後述するように、今回はデフォルトの Resource Principal のまま)。Authenticated Principal を選ぶパターンは未検証です。
5. セットアップ手順
5.1. ADB 起動と Object Storage バケット作成
- OCI コンソール > Autonomous Database > 対象 ADB を「開始」、状態が「使用可能」になることを確認
- Object Storage > Buckets で
mcp-server-bucket(Standard、ADB と同一リージョン)を作成
5.2. Dynamic Group とポリシー作成(Resource Principal 用)
MCP Server が Resource Principal で OCI リソース(Vault Secret / Object Storage / Database Tools 接続)にアクセスするため、Dynamic Group とポリシーを先に作ります。
Dynamic Group
- 名前:
dbtools-mcp-server-dg - ドメイン: Default
- 一致ルール:
ALL {resource.type = 'databasetoolsmcpserver', resource.compartment.id = '<COMPARTMENT_OCID>'}
ALL {resource.type = 'databasetoolsconnection', resource.compartment.id = '<COMPARTMENT_OCID>'}
resource.type は databasetoolsmcpserver(小文字単数形)。API パス名の databaseToolsMcpServers(キャメルケース複数形)とは異なります。
IAM ポリシー
- 名前:
dbtools-mcp-server-policy - 作成場所: ルート・コンパートメント
- ステートメント:
Allow dynamic-group 'Default'/'dbtools-mcp-server-dg' to read secret-family in compartment <COMPARTMENT_NAME>
Allow dynamic-group 'Default'/'dbtools-mcp-server-dg' to manage objects in compartment <COMPARTMENT_NAME> where target.bucket.name='mcp-server-bucket'
Allow dynamic-group 'Default'/'dbtools-mcp-server-dg' to use database-tools-connections in compartment <COMPARTMENT_NAME>
5.3. Database Tools 接続の作成
MCP Server から ADB に接続するための「Database Tools 接続」を作ります。
-
dba_copilotのパスワードと ADB ウォレットを OCI Vault に Secret として登録 - OCI コンソール > Developer Services > Database Tools > 接続 > 接続の作成
- Database type: Oracle Autonomous Database
- 対象 ADB を選択
- User name:
dba_copilot - User password secret / Wallet: 上で登録した Secret を指定
- 「接続の検証」 で成功することを確認
5.4. MCP Server の作成
作成画面で入力した項目
- 名前:
dbtools-mcp-server - Database Tools 接続: Phase 5.3 で作成した接続
- Object Storage バケット:
mcp-server-bucket - Identity Domain: Default
公式 Docs には「詳細オプションで Runtime Identity を選択」「許可する Application Role を追加」と書かれているのですが、今回の作成では これらを明示的に選択するステップを踏まずに作成完了 しました(画面上で見落とした可能性も含めて、追加検証が必要です)。完成した MCP Server を確認すると、以下のデフォルト値が設定されていました:
| 項目 | 今回の作成時の値 |
|---|---|
| Runtime Identity | リソース・プリンシパル |
| アクセストークン有効期限 | 1 時間 |
| リフレッシュトークン有効期限 | 7 日 |
| Application Role | (作成後に「ロール」タブで設定 → 5.5) |
作成後、ステータスが アクティブ になり、サーバー URL が次の形式で取得できます:
https://mcp.dbtools.ap-tokyo-1.oci.oraclecloud.com/20250830/databaseToolsMcpServers/ocid1.databasetoolsmcpserver.oc1.ap-tokyo-1.<UNIQUE_ID>/actions/invoke
5.5. Application Role を自分のユーザに付与
MCP Server が作られると、Identity Domain 配下に dbtools-mcp-server という名前の Oracle クラウド・サービス アプリ が自動的に追加されます。
- OCI コンソール > アイデンティティとセキュリティ > ドメイン > Default > Oracle Cloud Services >
dbtools-mcp-server - 「アプリケーション・ロール」タブを開く
- 組み込みロール 3 種(
MCP_Administrator/MCP_Operator/MCP_User)が表示される - 今回は
MCP_Userの右の「⋯」 > 「ユーザの割当て」 > 自分のユーザを追加
割当て完了後、MCP_User の「割当て済ユーザー」が 0 → 1 に変わっていれば成功です。
5.6. MCP Client(Confidential Application)の登録
MCP Server 詳細画面の 「クライアント」 タブから、Claude Desktop 用の Confidential Application を登録します。
- MCP Server 詳細 > 「クライアント」タブ > 「MCPクライアントの登録」
| 項目 | 値 |
|---|---|
| 名前 | claude-desktop-client |
| タイプ | 機密(Confidential) |
| 付与タイプ |
authorization_code, refresh_token
|
| リダイレクト URI | https://localhost:8080/callback |
| スコープ |
urn:opc:dbtools:mcpserver:<MCP_SERVER_OCID>:all + offline_access(自動入力) |
HTTPS 必須の罠: 当初 http://localhost:8080/callback で進めようとしたら URLプロトコルが無効です。プロトコルは'https'である必要があります。 というエラー。OCI Database Tools MCP は localhost であっても HTTPS を強制 します。PAT 認証運用では実際にコールバック URI が叩かれる場面はない想定なので、形式値として https://localhost:8080/callback を入れて先に進めば OK です。
登録完了画面で クライアント ID と クライアント・シークレット が表示されます。
本記事の PAT 運用では、Client ID / Client Secret は実際には使いません
後段(§5.8)で Claude Desktop に渡す Bearer トークンは PAT であり、Confidential Application の Client ID/Secret は介在しないためです。Client ID/Secret が登場するのは OAuth Authorization Code フロー / Client Credentials フローなど、PAT を使わない経路です。
5.7. 個人用アクセストークン (Personal Access Token) の発行と疎通テスト
Claude Desktop は PAT(Personal Access Token)で接続します。
- OCI コンソール > アイデンティティとセキュリティ > ドメイン > Default > ユーザー > 自分のユーザ
- 「個人用アクセストークン」 > 「トークンの生成」
- 説明と有効期限を指定して生成 → トークン文字列が平文で表示されるのでコピーしてパスワードマネージャに保存
「認証トークン」と「個人用アクセストークン (PAT)」は別物 ★
画面上の「認証トークン(Access Token)」とは別になります。
別記事の OCI の Personal Access Token は 60 分超を指定しても 60 分で切れる で確認した通り、ここの失効までの分数をいくら大きくしても 現時点(2026年5月23日)では 60分 が最大になるようです。
curl での疎通テスト
curl.exe -i -H "Authorization: Bearer <PAT_VALUE>" "<SERVER_URL>"
| ステータス | 意味 |
|---|---|
| 405 Method Not Allowed |
理想 ─ /actions/invoke は POST 専用、認証は通過 |
| 401 | PAT 無効 / 期限切れ |
| 403 | ロール/ポリシー不足 |
| 404 | URL ミス |
405 が返れば、認証(PAT)・認可(MCP_User ロール)・IAM ポリシーがすべて正しく機能していることが確認できます。
5.8. Claude Desktop への登録
%APPDATA%\Claude\claude_desktop_config.json を編集して MCP サーバを追加します。
{
"mcpServers": {
"oci-dbtools-mcp": {
"command": "C:\\PROGRA~1\\nodejs\\npx.cmd",
"args": [
"-y", "mcp-remote",
"https://mcp.dbtools.ap-tokyo-1.oci.oraclecloud.com/.../actions/invoke",
"--header", "Authorization: Bearer <PAT_VALUE>"
]
}
}
}
Windows パス問題の罠 ★
command を C:\\Program Files\\nodejs\\npx.cmd と書いたら起動失敗。ログには 'C:\Program' は内部コマンドまたは外部コマンドとして認識されていません というエラー。--header のような特殊文字を含む引数があると Claude Desktop は内部で cmd /C 経由で起動するようで、その際 Program Files のスペースが正しく quote されない挙動と考えられます。
解決策: 短縮名(C:\PROGRA~1\nodejs\npx.cmd) で書くか、バッチファイルでラップする。
完全終了して再起動し、設定 > Developer > MCP Servers で oci-dbtools-mcp が表示されることを確認します。
5.9. ツールセットの追加(忘れがちな最重要ステップ)
MCP Server を作成しても、ツールセットを別途追加しないと tools/list が空配列を返します。これは公式 Docs では明示されておらず、Claude Desktop で「使えるツールを教えて」と聞いて 0 件返ってきて初めて気付きました。
- OCI コンソール > MCP Server 詳細 > 「ツールセット」 タブ > 「ツールセットの追加」
| 項目 | 値 |
|---|---|
| 名前 | builtin-sql-tools |
| タイプ | 組込み SQL ツール |
| 許可ロール |
MCP_User, MCP_Operator, MCP_Administrator
|
ツールセット追加後、Claude Desktop を完全再起動。
5.10. 動作確認: schema_information ツールを叩く
Claude Desktop で新しいセッションを開いて、自然言語で問い合わせます。
プロンプト
oci-dbtools-mcp の schema_information ツールを使って、DBA_COPILOT スキーマのテーブル一覧を取得して。
結果
Claude は MCP 経由で schema_information を呼び出し、DBA_COPILOT スキーマのオブジェクト一覧を表形式で返してきました。1 回目の呼び出しで objects_list="TABLE" フィルタを付けたら空応答だったので、Claude が自動でフィルタを外して再呼び出しし、整形して回答する自己修正の挙動も確認できました。
これで Claude Desktop ↔ OCI Database Tools MCP Server ↔ ADB の接続が一気通貫で動作することが確認できました。
6. まとめ
6.1. 検証ゴールの達成状況
| # | 検証項目 | 結論 |
|---|---|---|
| 1 | OCI Database Tools MCP Server をセットアップし、Claude Desktop から接続できるか | ✅ 接続成功。mcp-remote 経由で Streamable HTTP 接続。schema_information ツールが自然言語で呼び出せることまで確認 |
6.2. 今後に向けて?
本記事ではセットアップと最小限の動作確認まで。「いま重い SQL を 3 件教えて」のような任意 SELECT に答えるには Custom SQL Tool の追加が必要で、これは今後試してみようと思います。あわせて、3 種類の MCP サーバ(SQLcl MCP / ADB 組み込み MCP / Database Tools MCP Server)の 同一ユースケースでの並列比較 などもやってみたいなあ、とは思ってます。
6.3. ひとこと
GA から 数日後の検証ということで、実機 UI と公式 Docs の乖離も多く何度かハマりましたが、Enterprise 用途を強く想定した堅牢な設計と思われる工夫が随所に見えて、納得感の大きいセットアップでした。
参考
- リリース・ノート: Database Tools MCP Server (2026-05-12)
- MCPサーバーの設定
- MCPサーバーの作成
- MCPツールセットの作成
- MCPクライアントの登録
- アプリケーション・ロール
- チュートリアル: Database Tools MCPサーバーの設定とMCPクライアントとの統合
- 過去記事: Oracle Autonomous AI Database の MCPサーバを Claude Desktop につないで「いま重いSQL」を聞けるようにしてみた






