チュートリアル: データベース・ツールMCPサーバーの設定とMCPクライアントとの統合
このチュートリアルの目的は、データベース・ツールMCPサーバーを作成し、それをアイデンティティ・ドメインおよびアプリケーション・ロールで保護し、Visual Studio Code用のCline拡張などのMCPクライアントと統合することです。
最終的には、次のものがあります。
- データベース・ツール接続があるMCPサーバー。
- ツールセット(組込みSQLツール)。
- アプリケーション・ロールにマップされたユーザーまたはグループ。
- 個人アクセス・トークンまたはトークンベース認証を使用してサーバーに接続するMCPクライアント。
データベース・ツールMCPサーバーの作成およびクライアントとの統合ステップ
この表は、データベース・ツールMCPサーバーを作成し、それをMCPクライアントと統合するステップを示しています。
| ステップ | タスク | プロセス |
|---|---|---|
| 1 | dbtools-mcpという名前のコンパートメントを作成します。
|
コンパートメントの作成 |
| 2 | dbtools-mcpという名前のIAMドメインを作成します。
|
アイデンティティ・ドメインの作成 |
| 3 | dbtools-mcpコンパートメントにdbtoolsmcpという名前のAutonomous AIデータベースを作成します。
|
Autonomous AI Databaseインスタンスのプロビジョニング |
| 4 | dbtools-mcpコンパートメントにボールトおよびキーを作成します。
|
|
| 5 | データベース接続の作成 | データベース接続の作成 |
| 6 | MCPサーバーを作成します。 | データベース・ツールMCPサーバーの作成 |
| 7 | IAMドメイン・ロールを構成します。 | IAMドメイン・ロールの設定 |
| 8 | ルート・コンパートメントにdbtools-mcpという名前のポリシーを作成します。
|
ポリシーの作成 「ランタイム・アイデンティティ」が「リソース・プリンシパル」に設定されているMCPサーバーの場合、次のポリシー・ステートメントを使用します: 「ランタイム・アイデンティティ」が「認証済プリンシパル」に設定されているMCPサーバーの場合、次のポリシー・ステートメントを使用します: 詳細は、MCPサーバーのポリシーを参照してください。 |
| 9 | トークンベース認証の場合は、IAM認証を有効にするポリシーを作成し、データベース・ユーザーを作成します。 |
|
| 10 | MCPツールセットを作成します。 | MCPツールセットの作成 |
| 11 | MCPクライアントを登録します。 | MCPクライアントの登録 |
| 12 | 個人アクセス・トークンまたはトークンベースの認証を使用してMCPサーバーに接続します。 |
データベース接続の作成
パスワード・ベース認証の場合
-
データベースへの接続に使用するスキーマを使用して、データベース・ツール接続
dbuser@dbtoolsmcpを作成します。接続の作成の詳細は、「接続の作成」をご覧ください。
-
接続の作成時に次の詳細を入力します。
- 「Oracle Autonomous AI Database」を選択します。
- ユーザー名: ADMINを入力します。
- ユーザー・パスワード・シークレットの選択
- Wallet形式を選択します。Oracle auto-login wallet (cwallet.ssoなど)
- SSOウォレット・コンテンツ・シークレットを選択します。
- 「拡張オプション」 - 「設定」で、「ランタイム・アイデンティティ」を「リソース・プリンシパル」に設定します。
ノート
- 接続リソース・プリンシパルは、シークレットを取得するために使用されます。
- ユーザー・パスワード・シークレットおよびウォレット・コンテンツ・シークレットは、データベース・ツール接続リソース・プリンシパルがシークレットの読取りを許可されているのと同じコンパートメントに作成する必要があります。
トークンベースの認証の場合
- パスワードベースの認証を使用して、特権ユーザー(
ADMINなど)を持つデータベース・ツール接続admin@dbtoolsmcpをdbtools-mcpコンパートメントに作成します。 - データベースでIAM認証を有効にします。
admin@dbtoolsmcp接続を選択します。- 「アクション」を展開し、「外部認証の構成」を選択します。
- 「外部認証タイプ」で、「OCI_IAM」を選択します。
- 構成を保存するには、「更新」をクリックします。
-
トークンベースの認証を使用して、
dbtools-mcpコンパートメントにデータベース・ツール接続dbtoolsmcpを作成します。接続の作成時:
- 「Oracle Autonomous AI Database」を選択します。
- 「拡張オプション」 - 「認証」で、「トークン・ベース認証の使用」を有効にします。
データベース・ツールMCPサーバーの作成
- ナビゲーション・メニューを開き、「開発者サービス」を選択します。
- 「データベース・ツール」セクションで、「モデル・コンテキスト・プロトコル・サーバー」を選択します。
- モデル・コンテキスト・プロトコル・サーバー・ページで、「モデル・コンテキスト・プロトコル・サーバーの作成」をクリックします。
- 次の詳細を入力します。
- 名前: mcpserverと入力します。
- ドメイン: 「dbtools-mcp」を選択します。
- 接続:
- パスワードベースの認証の場合は、「mcp@dbtoolsmcp」を選択します。
- トークンベース認証の場合は、dbtoolsmcpを選択します。
- 非同期操作を有効にするには、「オブジェクト・ストレージ・バケット」を選択します。
- 拡張オプションのOAuthオプションでは、ユーザーがMCPクライアントを構成するために個人アクセス・トークンをダウンロードする必要がある場合、アクセス・トークンの有効期限を1週間(604800秒)に増やすことを検討してください。
- 「作成」をクリックします。
IAMドメイン・ロールの設定
この部には次のステップが含まれます。
- アプリケーション・ロールごとにドメインにグループを作成します。
- アプリケーション・ロールにグループを割り当てます。
- ドメインにユーザーを作成します。
- グループにユーザーを割り当てます
各アプリケーション・ロールのドメインでのグループの作成
-
「モデル・コンテキスト・プロトコル・サーバー」ページで、「mcpserver」、「ドメイン」の順に選択します。
-
dbtools-mcpドメインで、「ユーザー管理」、「グループ」の順に移動します。 -
次のグループを作成します。
グループ名 アプリケーション・ロール MCP_管理者 MCP_管理者 MCP_演算子 MCP_オペレータ MCP_ユーザー MCP_ユーザー MCP_全ユーザー 該当なし ドメインでのグループの作成の詳細は、グループの作成を参照してください。
アプリケーション・ロールへのグループの割当て
- 「モデル・コンテキスト・プロトコル・サーバー」ページで、「mcpserver」を選択し、「ロール」タブを選択します。
- 「ロールの割当て」をクリックします。
-
各アプリケーション・ロールについて:
- 「アクション」アイコンをクリックして、「グループの管理」を選択します。
- 「グループの割当て」をクリックします。
- 「使用可能」グループのリストで、必要なグループを選択します。
- 「割当て」をクリックします。
ドメインでのユーザーの作成
ドメインdbtools-mcpに対して、ユーザーを作成します。
アイデンティティ・ドメインでユーザーを作成する方法を学習するには、アイデンティティ・ドメインでのユーザーの作成を参照してください。
dbtools-mcpドメインの場合、ユーザーをグループに割り当てます。
ユーザーをグループに追加する方法を学習するには、「グループへのユーザーの追加」を参照してください。
MCPサーバーを使用し、個人アクセス・トークンをダウンロードするには、アプリケーション・ロールが割り当てられている必要があります。
MCPツールセットの作成
- 「モデル・コンテキスト・プロトコル・サーバー」ページで、作成されたMCPサーバーの名前をクリックします。
- 特定のMCPサーバー・ページで、「ツールセット」タブを選択します。
- 「モデル・コンテキスト・プロトコル・ツールセットの作成」をクリックします。
-
ツールセットを作成するための次の詳細を入力します。次の例は、特定の基準に一致する従業員をリストするツールセットのSQL問合せです。
ノート
ツールセットを作成する前に、EMPLOYEES表がすでに存在し、FIRST_NAME列とLAST_NAME列が含まれていることを確認してください。- 名前: ツールセットの名前を入力します(
List employees matching substringなど)。 - 説明: ツールセットの説明(
List employees matching substring passed as parameter "substring"など)を入力します。 - コンパートメント: ツールセットのコンパートメントを選択してください。
- タイプ: ツールセットのタイプを選択します。この例では、「カスタムSQLツール」を選択します。
- ツール名:
list_employees_matching_substringと入力します。 - ツールの説明:
List employees matching substring passed as parameter "substring"と入力します。 - 許可されたロール: 事前定義済アプリケーション・ロールから選択します。詳細は、アプリケーション・ロールを参照してください。
- SQLソース: この例の次のコードを入力します。
SELECT * FROM EMPLOYEES WHERE LAST_NAME LIKE'%'|| :substring ||'%' OR FIRST_NAME LIKE'%'|| :substring ||'%' - 変数: 「名前」
substring、「タイプ」VARCHAR2および「説明」"The substring to search for in first name and last name"を追加します。
- 名前: ツールセットの名前を入力します(
- 「作成」をクリックします。
個人アクセス・トークンを使用したMCPサーバーへの接続
個人アクセス・トークンの生成
-
「プロファイル」アイコンをクリックし、<ユーザー電子メールID>を選択します。
- 「トークンとキー」タブを選択します。
-
「自分のアクセス・トークン」セクションの「他のAPIの起動」で、「トークンのダウンロード」をクリックします。

-
「個人アクセス・トークンの生成」ページで:
- トークンを生成するMCPサーバーを選択します。
- 「トークンの有効期限が分単位」で、トークンの有効期限を分単位で選択します(たとえば、10080分は1週間に相当します)。
ノート
MCPサーバーの「アクセス・トークンの有効期限」設定は、MCPサーバーの「トークンの有効期限(分)」設定に指定された期間によって置き換えられます。MCPサーバーの「詳細」ページに移動して、「アクセス・トークンの有効期限」設定を確認します。「アクセス・トークンの有効期限」設定の場所を確認するには、MCPサーバーへの接続を参照してください。 - 「トークンをダウンロード」をクリックします。
MCPサーバーに接続するためのMCPクライアントの構成
- Visual Studio CodeのCline拡張機能で、「MCPサーバー」アイコンを選択し、「リモート・サーバー」タブを選択します。
- サーバーの名前とサーバーURLを入力します。サーバーURLは、次のようにMCPサーバーの「詳細」ページで使用できます。
https://example.oraclecloud.com/../actions/invoke - 「トランスポート・タイプ」で、「ストリーミング可能なHTTP」を選択します。
-
「サーバーの追加」をクリックします。

「構成」タブが選択され、サーバーがエラーとともに表示されます。

-
「MCPサーバーの構成」をクリックします。
cline_mcp_setting jsonファイルの内容が右側のペインに表示されます。次のようにファイルを更新します。
{ "mcpServers": { "dbtools-mcp-server": { "disabled": false, "timeout": 60, "type": "streamableHttp", "url": "https://mcp.../x.xxxxx/actions/invoke", "headers": { "Authorization": "Bearer {Add downloaded token}" } } } } -
ファイルを保存します。
エラー・メッセージが解決されます。これは、サーバー名と同じ行に表示される緑色のインジケータで示されます。

サーバー名を展開して、使用可能なツール、リソースおよびプロンプトを表示します。

トークンベース認証を使用したMCPサーバーへの接続
登録済のパブリック・クライアントでmcp-remoteを使用してVS CodeのCline拡張機能をMCPサーバーに接続するには、VS Code内でサーバーを構成し、ブラウザ・プロンプトを介して認証フローを完了する必要があります。
-
mcp-remoteをインストールします。次のコマンドを使用します。
npm install -g mcp-remote -
cline_mcp_settings.jsonファイルを編集します。{ "mcpServers": { "dbtools-mcp-server": { "disabled": false, "timeout": 60, "type": "stdio", "command": "npx", "args": [ "-y", "mcp-remote", "https://mcp.…./actions/invoke", "8080", "--transport", "http-only", "--static-oauth-client-metadata", "{ \"scope\": \"https://mcp." }", "--static-oauth-client-info", "{ \"client_id\": \"xxxx\" }" ] } } }OAuthパブリック・クライアントに
http://localhost:8080/oauth/callbackというリダイレクトURIが構成されていることを確認します。ノート
ポート(8080)は、JSON構成ファイルでmcp-remoteに渡すポート番号と一致する必要があります。サインインすると、mcp-remoteはマシン上にトークンをローカルに保存します。
例:
~/.mcp-auth/mcp-remote-N.N.NN/xxxxx_tokens.json -
VSコードを再起動し、Clineでdbtools-mcp-serverに接続します。ブラウザが開き、サインインを完了してアクセスを承認します。