2026年7月9日木曜日

ORDS 26.2のMCPサーバーを構成する - Oracle IAM編

先日の記事「ORDS 26.2のMCPサーバーを構成する - Auth0編」では、MCPサーバーの認証/認可にAuth0を使用しました。今回の記事では、IdMとしてOracle IAMを使用します。

ORDS MCPサーバーから接続するデータベースおよびORDSのコンテナの準備は、記事「ORDS 26.2のMCPサーバーを構成する - Auth0編」と同じです。ORDS MCPサーバーが動作するコンテナを実行しAuth0の構成を始める直前まで、Auth0の記事にそって作業を進めます。

カスタム・クレームroles2の追加


今回の作業では、ロールによってORDS MCPサーバーのアクセスを制御します。そのため、Oracle IAMにカスタム・クレームとしてroles2を作成します。

Oracle IAMにカスタム・クレームを追加する手順は、以前に記事「Oracle IAMの統合アプリにカスタム・クレームを追加しRole based JWT profileによる保護を確認する」で紹介しています。

本作業ではオーディエンスとしてhttps://localhost:8585/mcp、スコープとしてurn:oracle:dbtools:ords:mcpserver:allが設定されます。これを固定の条件として、ユーザーが所属しているグループの配列を値として持つ、カスタム・クレームroles2を作成するスクリプトを書きました。

Oracle IAMに、このスクリプトの呼び出しに使用する統合アプリケーションを作成し、そのアプリケーションのドメインURLクライアントIDおよびクライアント・シークレットをそれぞれ、DOMAIN_URLUSERNAMEおよびPASSWORDに設定します。

以下より、統合アプリケーションとしてManage Custom Claimを作成します。作成するドメインはルート・コンパートメントにあるDefaultを想定しています。

Oracle Cloudのコンソールにサインインします。

アイデンティティとセキュリティドメインを開き、統合アプリケーションの作成先であるドメインDefaultを開きます。

このページに記載されているドメインURLを、スクリプト中のDOMAIN_URLに設定します。そのため、値をコピーして保存しておきます。

統合アプリケーションのタブを開きます。


アプリケーションの追加をクリックします。


機密アプリケーションを選択し、ワークフローの起動をクリックします。


名前Manage Custom Claimとします。名前だけを設定し、送信をクリックします。


アプリケーションが作成されたらOAuth構成タブを開き、OAuth構成の編集をクリックします。


クライアント構成の「このアプリケーションをクライアントとして今すぐ構成します」を選択します。選択すると、クライアントとしての設定項目が表示されます。

認可許可される権限付与タイプに含まれるクライアント資格証明チェックします。OAuth2.0のClient Credentials Flowによるアクセス・トークンの発行ができます。


一番下までスクロールします。

アプリケーション・ロールの追加オンにし、アプリケーション・ロールの追加をクリックします。


アプリケーション・ロールIdentity Domain Administratorチェックします。

このアプリケーション・ロールを割り当てることにより、統合アプリケーションManage Custom Claimによってカスタム・クレームを追加できるようになります。

追加をクリックします。


以上でOAuth構成の編集は完了です。送信をクリックします。


OAuth構成のタブに戻ります。

一般情報クライアントIDはスクリプト中のUSERNAMEに設定します。シークレットの表示にある値はPASSWORDに設定します。

それぞれの値をコピーして保存します。


右上のアクション・メニューを開き、アクティブ化を実行します。


前掲のスクリプトmanage-custom-claim.shをダウンロードし、DOMAIN_URL、USERNAME、PASSWORDの値を更新します。

更新したスクリプトを実行し、カスタム・クレームroles2を作成します。

sh manage-custom-claim.sh

ords-mcp2 % sh manage-custom-claim.sh

[省略]


"roles2","https://idcs-***************************.identity.oraclecloud.com:443/admin/v1/CustomClaims/c17f3193372444a2a9d79ad42e530fce"

ords-mcp2 % 


作成されたカスタム・クレームを一覧します。一覧にroles2が含まれていることを確認します。

sh manage-custom-claim.sh list

ords-mcp2 % sh manage-custom-claim.sh list

"roles2","https://idcs-***************************.identity.oraclecloud.com:443/admin/v1/CustomClaims/c17f3193372444a2a9d79ad42e530fce"

ords-mcp2 % 


カスタム・クレームのdisplayNameとmeta.locationが一覧されます。mata.locationに対してHTTPのDELETEを呼び出すことにより、作成したカスタム・クレームを削除できます。


Oracle IAMのアプリケーション構成



作業の多くは記事「Oracle IAMのOIDC認証にてAPEXアプリとそれから呼び出すORDSのREST APIを認証する」と重なりますが、省略せずに紹介します。

Defaultドメインのユーザー管理を開き、ORDSでロールとして扱うグループとしてORDS_MCP_HRを作成します。

グループの作成をクリックします。


作成するグループの名前ORDS_MCP_HR説明は「Role for HR Schema」と記述します。

グループに含めるユーザーチェックし、作成を実行します。


グループORDS_MCP_HRが作成されます。


Defaultドメインの統合アプリケーションを開き、 アプリケーションの追加をクリックします。


機密アプリケーションを選択し、ワークフローの起動をクリックします。


追加する機密アプリケーションの名前ORDS MCP2とします。説明に「ORDS MCP Server」と記述します。

画面下部にある、認証と認可権限付与を認可として実施オンにします。このアプリケーションに割り当てられたユーザーおよびグループのみがサインインできるようになります。

以上で送信をクリックします。


アプリケーションORDS MCP2が作成されます。

OAuth構成タブを開き、OAuth構成の編集をクリックします。


リソース・サーバー構成の「このアプリケーションをリソース・サーバーとして今すぐ構成します」を選択します。選択すると、リソース・サーバーとしての設定項目が表示されます。

トークン・リフレッシュの許可オンにします。

プライマリ・オーディエンスとしてORDS MCPサーバーのエンドポイントURLであるhttp://localhost:8585/mcpを設定します。この値は、ORDSのグローバル・プロパティmcp.security.jwt.profile.audienceに設定します。

mcp.security.jwt.profile.audience = http://localhost:8585/mcp

スコープの追加オンにし、スコープの追加をクリックします。


スコープとして、ORDS MCPサーバーのデフォルトのスコープurn:oracle:dbtools:ords:mcpserver:allを設定します。

表示名Access to ORDS MCP Server説明Access to ORDS MCP Serverと記述し、ユーザー承認が必要オンにします。

以上でスコープを追加します。


スコープが追加されました。以上でリソース・サーバーは構成できました。

追加したスコープをクライアント構成で使用できるようにするため、ここで一旦送信します。


再度、アプリケーションORDS MCP2OAuth構成の編集を開きます。

クライアント構成の「このアプリケーションをクライアントとして今すぐ構成します」を選択します。選択すると、クライアントとしての設定項目が表示されます。

認可許可される権限付与タイプに含まれるリフレッシュ・トークン認可コードチェックします。

接続確認にはMCP Inspectorを使用する予定です。MCP InspectorのリダイレクトURLはhttp://で始まるため、HTTPS以外のURLを許可オンにします。

その上で、リダイレクトURLとして以下を設定します。

http://localhost:6274/oauth/callback
http://localhost:6274/oauth/callback/debug


下の方にスクロールします。

リソースの追加オンにし、スコープの追加をクリックします。


ORDS MCP2を開き、範囲の選択(スコープの選択のこと)よりhttp://localhost:8585/mcpurn:oracle:dbtools:ords:mcpserver:all(オーディエンスであるhttp://localhost:8585/mcpとスコープurn:oracle:dbtools:ords:mcpserver:allを繋げた値)をチェックします。

選択したスコープを追加します。


以上で、クライアント構成は構成できました。送信します。


アプリケーションORDS MCP2をアクティブにします。

アクション・メニューのアクティブ化を実行します。


アプリケーションORDS MCP2が利用可能になりました。

このアプリケーションにグループを割り当てます。グループ・タブを開きます。


グループの割当てをクリックします。


グループORDS_MCP_HRをチェックし、アプリケーションに割当てます。


アプリケーションORDS MCP2にグループORDS_MCP_HRが割り当てられました。


アプリケーションORDS MCP2の作成は、以上で完了です。

ORDS MCPサーバーを構成する際に必要な値を確認します。

最初にグローバル・プロパティmcp.security.jwt.profile.authorization.server.urlの値を確認します。

DefaultドメインのドメインURLが、グローバル・プロパティmcp.security.jwt.profile.authorization.server.urlの値になります。


値をコピーして保存しておきます。

mcp.security.jwt.profile.authorization.server.url = https://idcs-xxxxxxxxxxxxxxxxxxxxxxxxx.identity.oraclecloud.com:443

グローバル・プロパティmcp.security.jwt.profile.jwk.urlの値を確認します。

ドメインURLに/.well-known/oauth-authorization-serverを繋げて、認可サーバーのメタデータを取得します。

https://idcs-xxxxxxxxxxxxxxxxxxxxxxxxx.identity.oraclecloud.com:443/.well-known/oauth-authorization-server


取得したメタデータに含まれる属性jwks_uriの値が、グローバル・プロパティmcp.security.jwt.profile.jwk.urlの値になります。通常はドメインURLに/admin/v1/SigningCert/jwkが追加されたURLになります。

mcp.security.jwt.profile.jwk.url = https://idcs-xxxxxxxxxxxxxxxxxxxxxxxxx.identity.oraclecloud.com:443/admin/v1/SigningCert/jwk

属性issuerの値が、グローバル・プロパティmcp.security.jwt.profile.issuerの値になります。デフォルトではhttps://identity.oraclecloud.com/です。

mcp.security.jwt.profile.issuer = https://identity.oraclecloud.com/

以上で、ORDS MCPサーバーの構成に必要なデータが集まりました。

Oracle IAMでは、属性jwks_uriのURLにアクセスする際に、認証を要求されることがあります。認証の解除は、ドメインの設定から行います。


クライアント・アクセスの構成無効のときは、ドメイン設定の編集を開いて有効に切り替えます。


クライアント・アクセスの構成オンに切り替え、変更の保存を実行します。


イシュワーのデフォルトはhttps://identity.oraclecloud.com/ですが、セキュリティ・タブより変更できます。

下にスクロールし、Oauth設定 - デフォルトのトークン発行ポリシーに移動します。

現時点では発行者は未設定です。発行者を変更する場合は、Oauth設定の編集を開きます。


以上でOracle IAMの設定は完了です。


ORDS MCPサーバーの構成



ORDSの構成に移ります。

コンテナに接続して、ORDSの構成コマンドを実行します。

docker exec -it ords-mcp bash

ords-mcp2 % docker exec -it ords-mcp bash

[oracle@aeba9d22c0f9 ~]$ 


ORDSのグローバル・プロパティを設定します。https://idcs-XXXXXXXXXXXXXXXXX.identity.oraclecloud.com:443の部分は、ドメインURLに置き換えます。

ロールによるアクセス制御を行うため、mcp.security.jwt.profile.role.claim.name/roles2を設定しています。
ords --config /etc/ords/config config set --global feature.mcp true
ords --config /etc/ords/config config set --global mcp.security.jwt.profile.issuer https://identity.oraclecloud.com/
ords --config /etc/ords/config config set --global mcp.security.jwt.profile.audience http://localhost:8585/mcp
ords --config /etc/ords/config config set --global mcp.security.jwt.profile.jwk.url https://idcs-XXXXXXXXXXXXXXXXX.identity.oraclecloud.com:443/admin/v1/SigningCert/jwk
ords --config /etc/ords/config config set --global mcp.security.jwt.profile.authorization.server.url https://idcs-XXXXXXXXXXXXXXXXX.identity.oraclecloud.com:443
ords --config /etc/ords/config config set --global mcp.security.jwt.profile.role.claim.name /roles2
続いて、スキーマHRに接続するコネクション・プールとしてmcp-hrを構成します。ORDS MCPサーバーはコンテナ内で実行されているため、コンテナ外にあるデータベースの接続先としてhost.docker.internalを設定しています。

ロールによるアクセス制御を行うため、mcp.roleORDS_MCP_HRを設定しています。
ords --config /etc/ords/config config --db-pool mcp-hr set db.connectionType basic
ords --config /etc/ords/config config --db-pool mcp-hr set db.hostname host.docker.internal
ords --config /etc/ords/config config --db-pool mcp-hr set db.port 1521
ords --config /etc/ords/config config --db-pool mcp-hr set db.servicename freepdb1
ords --config /etc/ords/config config --db-pool mcp-hr set db.username HR
ords --config /etc/ords/config config --db-pool mcp-hr set db.description "Sample Schema Human Resources"
ords --config /etc/ords/config config --db-pool mcp-hr set mcp.role ORDS_MCP_HR
コネクション・プールmcp-hrがデータベースに接続する際に使用するパスワードを設定します。スキーマHRに設定したパスワードです。

ords --config /etc/ords/config config --db-pool mcp-hr secret db.password

[oracle@aeba9d22c0f9 ~]$ ords --config /etc/ords/config config --db-pool mcp-hr secret db.password


ORDS: Release 26.2 Production on Wed Jul 08 06:44:35 2026


Copyright (c) 2010, 2026, Oracle.


Configuration:

  /etc/ords/config


Enter the database password: ********

Confirm password: ********

[oracle@aeba9d22c0f9 ~]$ 


コンテナから抜けて再起動します。

exit
docker restart ords-mcp


[oracle@aeba9d22c0f9 ~]$ exit

exit

ords-mcp2 % docker restart ords-mcp

ords-mcp

ords-mcp2 % 




MCP Inspectorによる接続確認



MCP Inspectorを起動し、MCPサーバーに接続します。

npx @modelcontextprotocol/inspector

ORDS MCPサーバーに接続するにあたって、以下を設定します。

Transport Type: Streamable HTTP
URL; http://localhost:8585/mcp
Connection Type: Via Proxy
OAuth2 2.0 Flow Client ID: アプリケーションORDS MCP2のクライアントID
OAuth2 2.0 Flow Client Secret: アプリケーションORDS MCP2のクライアント・シークレット
Scope: http://localhost:8585/mcpurn:oracle:dbtools:ords:mcpserver:all

OAuth2 2.0 Flow Client IDおよびClient Secretに設定する値は、アプリケーションORDS MCP2OAuth構成一般情報から取得します。


以上でConnectをクリックします。


Oracle IAMへサインインすると、アプリケーションへのアクセス許可を求められます。

許可をクリックします。


MCPサーバーに接続されます。

Toolsタブを開き、List Toolsを実行します。

呼び出し可能なツールとしてdatabase_listschema_informationsql_runがリストされます。


以降はORDS MCPサーバーの使い方になります。

今回の記事は以上になります。

2026年7月8日水曜日

ORDS 26.2のMCPサーバーを構成する - Okta編

先日の記事「ORDS 26.2のMCPサーバーを構成する - Auth0編」では、MCPサーバーの認証/認可にAuth0を使用しました。今回の記事では、IdPとしてOktaを使用します。

ORDS MCPサーバーから接続するデータベースおよびORDSのコンテナの準備は、記事「ORDS 26.2のMCPサーバーを構成する - Auth0編」と同じです。ORDS MCPサーバーが動作するコンテナを実行しAuth0の構成を始める直前まで、Auth0の記事にそって作業を進めます。

Oktaのアプリケーション構成


作業の多くは記事「Role based JWT profileで保護したORDS REST APIにアクセスする - Okta Integrator編」と重なりますが、省略せずに紹介します。

Okta Admin Consoleにサインインします。

ディレクトリグループを開き、グループを追加します。


追加するグループの名前ORDS_MCP_HRとします。これは、ORDS MCPサーバーで、コネクション・プールmcp-hrへのアクセスを許可するロールとして使用します。説明は「Role for HR Schema」と記述します。

保存をクリックします。


グループに再度アクセスし、グループ一覧を更新します。

作成したグループORDS_MCP_HRを開き、ユーザーを割り当てます。


ユーザーを割り当てをクリックします。


グループORDS_MCP_HRにユーザーを割り当てます。


ユーザーの割り当てを完了します。


アプリケーション・メニューのアプリケーションを開き、アプリ統合を作成します。



サインイン方法としてOIDC - OpenID Connectを選択します。OIDCを選択するとアプリケーションタイプの選択が現れます。アプリケーションタイプシングルページアプリケーションを選択します。

へ進みます。


アプリ統合を設定します。

アプリ統合名ORDS MCP2とします。

所有の証明トークンリクエストのDPoP(Demonstrating Proof of Posession)ヘッダーを必須にするは、チェックを外します。

付与タイプリフレッシュトークンにチェックを入れます。

サインインリダイレクトURIにMCP InspectorのRedirect URLを設定します。ポート番号6274が使用されている場合は、ポート番号が異なるかもしれません。

http://localhost:6274/oauth/callback
http://localhost:6274/oauth/callback/debug

サインアウトリダイレクトURIは何を設定すべきか不明なので、x をクリックして削除しておきます。

割り当てアクセス制御として選択されたグループにアクセスを制限を選択し、選択されたグループに先ほど作成したグループORDS_MCP_HRを含めます。

以上を設定し保存します。


アプリ統合としてORDS MCP2が作成されます。

クライアントIDはMCP InspectorのOAuth 2.0 FlowClient IDに設定する値です。メモしておきます。


セキュリティAPIを開き、認証サーバーを追加します。(タブには認可サーバーと書いてあります)


追加する認証サーバーの名前ORDSMCP2とします。

オーディエンスはORDS MCPサーバーのエンドポイントURLであるhttp://localhost:8585/mcpを設定します。このオーディエンスは、ORDSのグローバル・プロパティmcp.security.jwt.profile.audienceの値になります。

mcp.security.jwt.profile.audience = http://localhost:8585/mcp

説明としてORDS MCP Serverを入力します。

以上で保存します。


追加された認証サーバーの設定タブを開き、メタデータURIを確認します。


このメタデータURIを元に、ORDSのグローバル・プロパティの値を求めます。メタデータURIは以下の形式です。URLの最後の文字列が認証サーバーのIDになります。

https://integrator-XXXXXXX.okta.com/.well-known/oauth-authentication-server/oauth/{id}

グローバル・プロパティmcp.security.jwt.profile.authorization.server.urlの値は、以下になります。

mcp.security.jwt.profile.authorization.server.url = https://integrator-XXXXXXX.okta.com/oauth/{id}

ORDS MCPサーバーが認証サーバーのメタデータを取得するURLが有効かどうか確認します。

メタデータURIの/.well-known/oauth-authorization-serverの部分をURLの末尾に移動します。

https://integrator-XXXXXXX.okta.com/oauth2/{id}/.well-known/oauth-authorization-server

ブラウザに認証サーバーのメタデータが表示されるので、その中からissuerjwks_uriを取り出します。


グローバル・プロパティのmcp.security.jwt.profile.issuerとして、このissuerの値を設定します。また、mcp.security.jwt.profile.jwk.urlとして、このjwks_uriの値を設定します。

概ね、以下のような形式になります。

mcp.security.jwt.profile.issuer = https://integrator-XXXXXXX.okta.com/oauth/{id}
mcp.security.jwt.profile.jwk.url = https://integrator-XXXXSXX.okta.com/oauth2/{id}/v1/keys

mcp.security.jwt.profile.jwk.urlに設定するURL(jwks_uriの値)については、ブラウザから開いてみて存在を確認しておくとよいでしょう。

アクセス制御のためのロールを返すカスタム・クレームは、Auth0での構成と同じにするためroles2とします。よって、グローバル・プロパティmcp.security.jwt.profile.role.claim.nameの値は/roles2になります。

mcp.security.jwt.profile.role.claim.name = /roles2

これで、ORDS MCPサーバーに設定するグローバル・プロパティの値はすべて集まりました。

スコープ・タブを開き、スコープを追加します。


追加するスコープは、ORDS MCPサーバーのデフォルト・スコープである"urn:oracle:dbtools:ords:mcpserver:all"です。

スコープの名前はurn:oracle:dbtools:ords:mcpserver:allです。フレーズを表示に「Access to ORDS MCP Server」、説明に「Access to ORDS MCP Server」と記述します。

ユーザーの同意はどれでもよいですが、今回は必須を選択します。サービスをブロックデフォルトスコープメタデータチェックを外します。

以上でスコープを作成します。


ORDS MCPサーバーのデフォルト・スコープurn:oracle:dbtools:ords:mcpserver:allが追加されます。


クレーム・タブを開き、roles2scopeカスタム・クレームとして追加します。


追加するクレームの名前roles2とします。このクレームは、ORDS MCPサーバーが認識するロールを保持します。トークンタイプに含めるアクセス・トークンです。

値タイプグループを選択し、フィルター次で始まるORDS_を設定します。このフィルターにより、roles2クレームに先ほど作成したグループORDS_MCP_HRが含まれます。

クレームを無効化はチェックしません。

含める以下のスコープを選択し、スコープとして先ほど作成したORDS MCPサーバーのデフォルト・スコープurn:oracle:dbtools:ords:mcpserver:allを選択します。

以上で作成します。


同様の手順でscopeクレームを追加します。

追加するクレームの名前scopeとします。トークンタイプに含めるアクセストークン値タイプを選択し、として以下を記述します。

String.replace(Arrays.toCsvString(access.scope),","," ")

クレームを無効化はチェックせず、含めるいずれかのスコープを選択します。

以上で作成します。


roles2クレームとscopeクレームが作成されました。


アクセスポリシーを開き、ポリシーを追加します。


ポリシーの名前ORDS MCP2とします。説明に「ORDS MCP2」と記述し、次に割り当てる次のクライアントを選択し、クライアントにORDS MCP2を含めます。

以上でポリシーを作成します。


アクセスポリシーとしてORDS MCP2が作成されました。

ルールを追加します。


ルール名Defaultとします。デフォルトの設定は変更せず(最低限コア付与認証コードチェックされていれば動くはず)、ルールを作成します。


アクセス・ポリシーORDS MCP2とルールDefaultが作成されます。


トークンのプレビューを開き、これまでの設定で生成されるアクセス・トークンを確認します。

要求プロパティーOAuth/OIDCクライアントORDS MCP2付与タイプ認証コードユーザーサインインする予定のユーザースコープにORDS MCPサーバーのデフォルト・スコープであるurn:oracle:dbtools:ords:mcpserver:allを設定します。

以上でトークンのプレビューをクリックします。

生成されたトークンから、以下を確認します。
  • issの値がORDSのグローバル・プロパティmcp.security.jwt.profile.issuerに設定する予定の値と一致していること。
  • audの値がhttp://localhost:8585/mcp(グローバル・プロパティmcp.security.jwt.profile.audienceに設定する予定の値)であること。
  • scopeurn:oracle:dbtools:ords:mcpserver:allが含まれていること。
  • カスタム・クレームとしてroles2があり、値の配列にORDS_MCP_HRが含まれていること。

以上でOktaの設定は完了です。


ORDS MCPサーバーの構成



ORDSの構成に移ります。

コンテナに接続して、ORDSの構成コマンドを実行します。

docker exec -it ords-mcp bash

ords-mcp2 % docker exec -it ords-mcp bash

[oracle@aeba9d22c0f9 ~]$ 


ORDSのグローバル・プロパティを設定します。XXXXXの部分はOktaに作成したアプリケーションORDS MCP2のドメインの値、{id}は認証サーバーのIDに置き換えます。

ロールによるアクセス制御を行うため、mcp.security.jwt.profile.role.claim.name/roles2を設定しています。
ords --config /etc/ords/config config set --global feature.mcp true
ords --config /etc/ords/config config set --global mcp.security.jwt.profile.issuer https://integrator-XXXXXXX.okta.com/oauth2/{id}
ords --config /etc/ords/config config set --global mcp.security.jwt.profile.audience http://localhost:8585/mcp
ords --config /etc/ords/config config set --global mcp.security.jwt.profile.jwk.url https://integrator-XXXXXXX.okta.com/oauth2/{id}/v1/keys
ords --config /etc/ords/config config set --global mcp.security.jwt.profile.authorization.server.url https://integrator-XXXXXXX.okta.com/oauth2/{id}
ords --config /etc/ords/config config set --global mcp.security.jwt.profile.role.claim.name /roles2
続いて、スキーマHRに接続するコネクション・プールとしてmcp-hrを構成します。ORDS MCPサーバーはコンテナ内で実行されているため、コンテナ外にあるデータベースの接続先としてhost.docker.internalを設定しています。

ロールによるアクセス制御を行うため、mcp.roleORDS_MCP_HRを設定しています。
ords --config /etc/ords/config config --db-pool mcp-hr set db.connectionType basic
ords --config /etc/ords/config config --db-pool mcp-hr set db.hostname host.docker.internal
ords --config /etc/ords/config config --db-pool mcp-hr set db.port 1521
ords --config /etc/ords/config config --db-pool mcp-hr set db.servicename freepdb1
ords --config /etc/ords/config config --db-pool mcp-hr set db.username HR
ords --config /etc/ords/config config --db-pool mcp-hr set db.description "Sample Schema Human Resources"
ords --config /etc/ords/config config --db-pool mcp-hr set mcp.role ORDS_MCP_HR
コネクション・プールmcp-hrがデータベースに接続する際に使用するパスワードを設定します。スキーマHRに設定したパスワードです。

ords --config /etc/ords/config config --db-pool mcp-hr secret db.password

[oracle@aeba9d22c0f9 ~]$ ords --config /etc/ords/config config --db-pool mcp-hr secret db.password


ORDS: Release 26.2 Production on Wed Jul 08 06:44:35 2026


Copyright (c) 2010, 2026, Oracle.


Configuration:

  /etc/ords/config


Enter the database password: ********

Confirm password: ********

[oracle@aeba9d22c0f9 ~]$ 


コンテナから抜けて再起動します。

exit
docker restart ords-mcp


[oracle@aeba9d22c0f9 ~]$ exit

exit

ords-mcp2 % docker restart ords-mcp

ords-mcp

ords-mcp2 % 




MCP Inspectorによる接続確認



MCP Inspectorを起動し、MCPサーバーに接続します。

npx @modelcontextprotocol/inspector

ORDS MCPサーバーに接続するにあたって、以下を設定します。

Transport Type: Streamable HTTP
URL; http://localhost:8585/mcp
Connection Type: Via Proxy
OAuth2 2.0 Flow Client ID: アプリケーションORDS MCP2のクライアントID
Scope: urn:oracle:dbtools:ords:mcpserver:all

以上でConnectをクリックします。


Oktaへサインインすると、アプリケーションへのアクセス許可を求められます。

アクセスを許可するをクリックします。


MCPサーバーに接続されます。

Toolsタブを開き、List Toolsを実行します。

呼び出し可能なツールとしてdatabase_listschema_informationsql_runがリストされます。


以降はORDS MCPサーバーの使い方になります。

今回の記事は以上になります。