Kuroco MCP サーバと Amazon Bedrock AgentCore Gateway の連携
このチュートリアルでは、OAuth 2.0 の client_credentials 認証を使って、Kuroco MCP サーバを Amazon Bedrock AgentCore Gateway に接続する手順を説明します。
この連携は、大きく次の 3 つのパートで構成されます。
- Kuroco の OAuth Authorization Server を設定し、
client_credentials用のクライアントを登録する。 - そのクライアントを、Amazon Bedrock AgentCore にアウトバウンドの OAuth クライアントプロバイダーとして登録する。
- AgentCore Gateway を作成し、Kuroco MCP サーバを MCP ターゲットとして追加する。
最終的なフローは次のとおりです。
クライアントまたはエージェント
→ Amazon Bedrock AgentCore Gateway
→ client_credentials を使った Kuroco OAuth Authorization Server
→ Kuroco MCP サーバ
1. Kuroco の OAuth Authorization Server を設定する
この連携は、Kuroco に組み込まれた OAuth Authorization Server を利用します。OAuth Authorization Server は、Amazon Bedrock AgentCore が Kuroco MCP サーバを呼び出す際に使用するアクセストークンを発行します。
このセクションでは、次の作業を行います。
- 用途が
APIの OAuth Authorization Server を作成(または既存のものを再利用)する。 client_credentialsグラントに対応したコンフィデンシャルクライアントを登録する。- 後で Amazon Bedrock AgentCore に入力する値を収集する。
1.1 前提条件
-
MCP サーバが有効になっており、かつ API セキュリティが
none以外の値に設定されている Kuroco API エンドポイント。client_credentialsグラントは、Kuroco MCP サーバが OAuth を通じて検証するベアラートークンを発行します。
対象 API の MCP 設定から、その API の MCP エンドポイント URL を取得します。URL は次の形式です。
https://{your-site}.g.kuroco.app/rcms-api/{api_id}/mcp

エンドポイントで MCP サーバがまだ有効化されていない場合は、先に MCP サーバを設定してください(エンドポイントの MCP 設定: ツール名、入力スキーマ、ステータス)。
このチュートリアルでは、Client API MCP サーバ(/rcms-api/{api_id}/mcp)を使用します。これは用途が API の OAuth Authorization Server に紐付いています。管理系の操作を公開したい場合は、用途が AdminMCP の OAuth Authorization Server に紐付く Admin MCP サーバ(/direct/rcms_api/admin_mcp/)を使って、同じ流れで設定できます。設定手順は同様ですが、用途・スコープ・オーディエンスが異なります。
1.2 OAuth Authorization Server を作成する
新規に作成する代わりに、用途が API の既存の認可サーバー(Kuroco が Kuroco MCP API (default) という名前でデフォルトの認可サーバーを自動作成している場合があります)を再利用できます。再利用する場合は、その 対応するグラントタイプ に client_credentials が含まれていること、および 許可するスコープ に api:read(必要に応じて api:write)が含まれていることを確認してください。グラントタイプはクライアントごとに選択されるため、共有する認可サーバーで client_credentials を有効にしても、他のグラントを使う既存のクライアントには影響しません。
Kuroco 管理画面で 「外部システム連携」→「OAuth Authorization Server」 を開き、「+追加」 をクリックして、次のとおり設定します。
| 項目 | 設定値 |
|---|---|
| 名前 | 任意のラベル(例: Bedrock AgentCore)。 |
| 用途 | API(/rcms-api/{api_id}/mcp で公開されるコンテンツ API を保護します)。この値は作成後に変更できません。 |
| 対応するグラントタイプ | client_credentials を有効にします。(この連携では authorization_code / refresh_token は不要です。) |
| 許可するスコープ | api:read を有効にします(クライアントで書き込み操作を行う場合は api:write も有効にします)。 |
| アクセストークン有効期間 | 3600(秒。デフォルト)。 |
| リフレッシュトークン有効期間 | 2592000(秒。デフォルト)。 |
| 認可コード有効期間 | 60(秒。デフォルト)。 |
| ログインページ URL | デフォルト(https://{your-domain}.g.kuroco-mng.app/management/login/login/)のままにします。この項目は用途が API の認可サーバーでは必須ですが、client_credentials フローでは使用されません。 |
| 有効 | ON |
「追加」 をクリックして保存します。

保存後、作成した認可サーバーを再度開きます。後で必要になる 2 つの読み取り専用の値が表示されます。
-
発行元 (Issuer) URL。次の形式です。
https://{your-site}.g.kuroco.app/direct/login/oauth_idp/{id} -
メタデータ URL。次の形式です。
https://{your-site}.g.kuroco.app/.well-known/oauth-authorization-server/direct/login/oauth_idp/{id}
1.3 OAuth クライアントを登録する
認可サーバー一覧で、作成した認可サーバーの行にある 「クライアントを管理」 をクリックし、続いて 「+追加」 をクリックして、クライアントを次のとおり設定します。
| 項目 | 設定値 |
|---|---|
| クライアント名 | 任意のラベル(例: Bedrock AgentCore)。 |
| トークンエンドポイント認証方式 | client_secret_basic。このチュートリアルでは client_secret_basic を使用しますが、client_secret_post も利用できます。Amazon Bedrock AgentCore 側と同じ方式を選択してください。none にすることはできません。client_credentials にはコンフィデンシャルクライアントが必要です。 |
| 対応するグラントタイプ | client_credentials を有効にします。 |
| サービスメンバー | 発行されるトークンが振る舞うメンバーを選択します。Gateway からのすべての MCP 呼び出しはこのメンバーの権限で実行されるため、必要最小限の権限を持つメンバーを選択してください。このメンバーはトークンを生成できる必要があります。この項目は client_credentials を選択した場合に必須です。 |
| デフォルト API | このトークンの対象となる、MCP が有効な API を選択します。これによりトークンのオーディエンス(RFC 8707 の resource)が設定されます。この連携では必須です。 Amazon Bedrock AgentCore は resource パラメータを送信しないため、デフォルト API を設定しないと、トークンエンドポイントはリクエストを invalid_target で拒否します。 |
| 許可するスコープ | api:read を選択します(書き込み操作を行う場合は api:write も選択します)。少なくとも 1 つの機能スコープが必要です。 |
| リダイレクト URI | 空欄のままにします。リダイレクト URI は authorization_code グラントでのみ必要ですが、この連携では使用しません。 |
| 有効 | ON |

「追加」 をクリックすると、次のようになります。
- クライアント ID が自動的に生成されます。
- 認証方式が
noneではないため、クライアントシークレット が生成され、一度だけ 表示されます。再表示はできないため、すぐに控えてください(紛失した場合は、クライアント編集画面から再生成できます)。

1.4 Amazon Bedrock AgentCore 用の値を収集する
これで AgentCore の設定に必要なものがそろいました。次の値を収集します。
- クライアント ID と クライアントシークレット(登録したクライアントから取得)。
- 発行元 (Issuer)、認可エンドポイント、トークンエンドポイント。
各エンドポイントを取得するには、セクション 1.2 の メタデータ URL を開きます。この URL は OAuth 2.0 Authorization Server Metadata ドキュメント(RFC 8414)を返します。JSON から次の値を取得します。
| メタデータのフィールド | 値の例 |
|---|---|
issuer | https://{your-site}.g.kuroco.app/direct/login/oauth_idp/{id} |
authorization_endpoint | https://{your-site}.g.kuroco.app/direct/login/oauth_idp/{id}/authorize |
token_endpoint | https://{your-site}.g.kuroco.app/direct/login/oauth_idp/{id}/token |
client_credentials は認可エンドポイントを使用しませんが、Amazon Bedrock AgentCore ではこの項目が必須のため、控えておいてください。
2. Amazon Bedrock AgentCore で Kuroco OAuth クライアントを設定する
Gateway を作成する前に、セクション 1.4 で収集した値を使って、Kuroco の OAuth Authorization Server を AgentCore Identity にアウトバウンドの OAuth クライアントプロバイダーとして登録します。
Kuroco はメタデータ URL で OAuth 2.0 Authorization Server Metadata ドキュメント(RFC 8414)を公開していますが、AgentCore の自動検出は OpenID Connect のディスカバリドキュメントを想定しており、Kuroco はこのエンドポイントではそれを公開していません。Manual config を使用し、各エンドポイントを手動で入力してください。
2.1 AgentCore Identity に OAuth クライアントを追加する
AWS コンソールで、次の操作を行います。
- Amazon Bedrock AgentCore を開きます。
- Identity を開きます。
- アウトバウンド認証のセクションに移動します。
- 新しい OAuth クライアントを追加します。
- カスタム OAuth プロバイダーを選択します。
- Manual config を選択します。
プロバイダーを次のとおり設定します。
| 項目 | 設定値 |
|---|---|
| Client authentication method | Client secret basic(Kuroco クライアントに設定した トークンエンドポイント認証方式 と一致させる必要があります。Client secret post も利用できます) |
| Issuer | Kuroco のメタデータ URL の issuer の値 |
| Authorization endpoint | Kuroco のメタデータ URL の authorization_endpoint の値 |
| Token endpoint | Kuroco のメタデータ URL の token_endpoint の値 |
| Client ID | Kuroco でクライアントを登録したときに生成された Client ID |
| Client secret | Kuroco でクライアントを登録したときに生成された Client secret |
Client secret basic は、AgentCore が HTTP Basic 認証を使って Kuroco のトークンエンドポイントに認証することを意味します。
Authorization: Basic base64(client_id:client_secret)
トークンリクエストは client_credentials グラントを使用し、Kuroco のトークンエンドポイント(メタデータ URL の token_endpoint の値。https://{your-site}.g.kuroco.app/direct/login/oauth_idp/{id}/token の形式)に送信されます。
POST /direct/login/oauth_idp/{id}/token
Content-Type: application/x-www-form-urlencoded
Authorization: Basic base64(client_id:client_secret)
grant_type=client_credentials
AgentCore でスコープを設定する必要はありません。トークンのスコープは、Kuroco クライアントに設定した 許可するスコープ(api:read / api:write)に由来します。トークンリクエストが scope パラメータを省略した場合、Kuroco はそのクライアントに設定されたスコープを付与します。
同様に、トークンのオーディエンスも AgentCore では設定しません。オーディエンスは、Kuroco クライアントに設定した デフォルト API に由来します。リクエストが resource パラメータを送信しない場合、Kuroco はこのデフォルト API を RFC 8707 の resource として使用します。

この時点で、OAuth の設定は完了です。Kuroco の OAuth Authorization Server が client_credentials を使って Amazon Bedrock AgentCore に接続されました。
この OAuth クライアントの設定は、対応する Kuroco MCP サーバに接続する必要があるすべての AgentCore Gateway で再利用できます。
3. Amazon Bedrock AgentCore Gateway を作成する
AWS コンソールで、次の操作を行います。
- Amazon Bedrock AgentCore を開きます。
- Gateways を開きます。
- Create Gateway を選択します。
作成ウィザードは 4 つのステップで構成されます。
ステップ 1 — Gateway の詳細を定義する
デフォルト値のまま変更しなくてかまいません。

生成された Gateway 名やその他のデフォルト設定を確認し、Next をクリックします。
ステップ 2 — インバウンド ID を設定する
インバウンド認証は、クライアントが AgentCore Gateway を呼び出す際にどのように認証するかを制御します。
ニーズに応じて認証方式を選択してください。利用できるオプションは次のとおりです。
- IAM 認証
- JWT ベースの認証
- 認証なし(一時的な隔離されたテスト専用)
インバウンド認証は、AgentCore Gateway と Kuroco の間で使用されるアウトバウンドの OAuth 認証とは別のものです。
クライアント → AgentCore Gateway
インバウンド認証
AgentCore Gateway → Kuroco MCP サーバ
OAuth client_credentials
本番環境では、認証ありのインバウンド設定を使用してください。インバウンド認証のない、公開状態でアクセス可能な Gateway を放置しないでください。
インバウンド ID を設定したら、Next をクリックします。
ステップ 3 — ターゲットを追加する
Kuroco MCP サーバを Gateway のターゲットとして追加します。
ターゲットを次のとおり設定します。
| 項目 | 設定値 |
|---|---|
| Target Protocol | MCP Target |
| Target type | MCP Server |
| MCP endpoint | 追加したい Kuroco MCP サーバのエンドポイント |
| Outbound Auth | OAuth client |
| OAuth client | セクション 2 で作成した OAuth クライアントを選択します |
残りの設定はすべてデフォルト値のままでかまいません。
MCP endpoint には、Kuroco MCP サーバの完全な公開 HTTPS エンドポイントを指定します。次の形式です。
https://{your-site}.g.kuroco.app/rcms-api/{api_id}/mcp
トークンのオーディエンスと呼び出し先の resource が一致するように、Kuroco クライアントで デフォルト API として選択したものと同じ API の MCP エンドポイントを使用してください。
ターゲットを設定したら、Next をクリックします。
ステップ 4 — 確認して作成する
Gateway とターゲットの設定内容を確認し、Create Gateway をクリックします。
AgentCore が Gateway を作成し、先ほど設定した OAuth クライアントを使って、ターゲットを Kuroco MCP サーバに接続します。
4. Gateway をテストする
Gateway の詳細ページから Gateway URL をコピーします。URL は /mcp で終わっているはずです。
インバウンド認証なしで作成した Gateway は、curl でテストできます。
curl -i -X POST 'YOUR_GATEWAY_URL' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/list",
"params": {}
}'
接続に成功すると、レスポンスには Kuroco MCP サーバが公開しているツールが含まれます。
ツールを呼び出すには、tools/list が返した正確なツール名と入力スキーマを使用します。
curl -i -X POST 'YOUR_GATEWAY_URL' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json, text/event-stream' \
-d '{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "YOUR_TOOL_NAME",
"arguments": {}
}
}'
IAM または JWT のインバウンド認証を使用する Gateway の場合は、Gateway を呼び出す際に対応する認証を付与してください。
これで Gateway を任意の MCP クライアントに接続でき、Kuroco MCP サーバを利用できるようになります。
関連ドキュメント
- Model Context Protocol (MCP) と Kuroco の連携 — このチュートリアルの前提となる、Kuroco API エンドポイントで MCP サーバを有効にする方法
- MCP サーバ リファレンス — Client API MCP サーバと Admin MCP サーバのエンドポイント、認証方式、ツール構造
- MCP クライアント設定リファレンス — 他の MCP クライアント向けの OAuth Authorization Server の設定(CIMD とクライアントの手動登録)
- Claude.ai での MCP コネクタの登録方法 — Kuroco の OAuth Authorization Server とクライアントを登録するもう 1 つの手順。
client_credentialsではなくauthorization_codeグラントを使用します - API セキュリティ — このチュートリアルの前提条件で参照している API セキュリティ設定の詳細
サポート
お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Slackコミュニティにご参加ください。