0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OCI Database Tools MCP Server を Claude Desktop につないでみた

0
Last updated at Posted at 2026-05-21

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.typedatabasetoolsmcpserver(小文字単数形)。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 接続」を作ります。

  1. dba_copilot のパスワードと ADB ウォレットを OCI Vault に Secret として登録
  2. OCI コンソール > Developer Services > Database Tools > 接続 > 接続の作成
    • Database type: Oracle Autonomous Database
    • 対象 ADB を選択
    • User name: dba_copilot
    • User password secret / Wallet: 上で登録した Secret を指定
  3. 「接続の検証」 で成功することを確認

接続検証OK.png

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

MCP-server.png

5.5. Application Role を自分のユーザに付与

MCP Server が作られると、Identity Domain 配下に dbtools-mcp-server という名前の Oracle クラウド・サービス アプリ が自動的に追加されます。

  1. OCI コンソール > アイデンティティとセキュリティ > ドメイン > Default > Oracle Cloud Services > dbtools-mcp-server
  2. 「アプリケーション・ロール」タブを開く
  3. 組み込みロール 3 種(MCP_Administrator / MCP_Operator / MCP_User)が表示される
  4. 今回はMCP_User の右の「⋯」 > 「ユーザの割当て」 > 自分のユーザを追加

割当て完了後、MCP_User の「割当て済ユーザー」が 0 → 1 に変わっていれば成功です。

wariatezumi.png

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 を使わない経路です。

image.png

5.7. 個人用アクセストークン (Personal Access Token) の発行と疎通テスト

Claude Desktop は PAT(Personal Access Token)で接続します。

  1. OCI コンソール > アイデンティティとセキュリティ > ドメイン > Default > ユーザー > 自分のユーザ
  2. 「個人用アクセストークン」 > 「トークンの生成」
  3. 説明と有効期限を指定して生成 → トークン文字列が平文で表示されるのでコピーしてパスワードマネージャに保存

「認証トークン」と「個人用アクセストークン (PAT)」は別物 ★
画面上の「認証トークン(Access Token)」とは別になります。

image.png

別記事の 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 パス問題の罠 ★
commandC:\\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 が表示されることを確認します。

image.png

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 の接続が一気通貫で動作することが確認できました。

P7.1.png


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 用途を強く想定した堅牢な設計と思われる工夫が随所に見えて、納得感の大きいセットアップでした。


参考


0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?