Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Target server MCP
Server MCP menyediakan alat lokal, akses data, atau fungsi khusus untuk interaksi Anda dengan model dan agen di Bed AgentCore rock. Di Bedrock AgentCore, Anda dapat menentukan server MCP yang telah dikonfigurasi sebelumnya sebagai target saat membuat gateway.
Server MCP menghosting alat, petunjuk, dan sumber daya yang dapat ditemukan dan digunakan agen. Di Bedrock AgentCore, Anda menggunakan gateway untuk mengaitkan target dengan kemampuan ini dan menghubungkannya ke runtime agen Anda. Anda terhubung dengan server MCP eksternal melalui SynchronizeGatewayTargets API yang melakukan jabat tangan protokol dan mengindeks kemampuan yang tersedia. Untuk informasi selengkapnya tentang menginstal dan menggunakan server MCP, lihat Amazon Bedrock AgentCore MCP Server: Pengkodean Vibe dengan asisten pengkodean Anda.
Topik
Pertimbangan dan batasan utama
Modus Listing
ListingMode dapat diatur sebagai DYNAMIC atau DEFAULT untuk target server MCP.
-
Dalam mode DINAMIS, klien menemukan kemampuan server MCP ketika pengguna memanggil operasi MCP. Gateway mengambil kemampuan server dengan meneruskan permintaan ke server MCP. Saat ini mode DINAMIS tidak dapat dioperasikan dengan pencarian semantik atau OAuth tiga kaki keluar (3LO).
-
Kecuali diubah, Mode Listing diatur ke DEFAULT. Dalam mode DEFAULT, klien menemukan kemampuan server MCP melalui operasi sinkronisasi yang disediakan oleh SynchronizeGatewayTargets API.
Sinkronisasi implisit
Untuk target dalam mode DEFAULT, CreateGatewayTarget dan UpdateGatewayTarget operasi secara otomatis memicu penemuan dan pengindeksan kemampuan. Ketika salah satu operasi dipanggil, Gateway mengambil alat yang tersedia menggunakan tools/list kemampuan MCP, meminta penggunaanprompts/list, menggunakan sumber dayaresources/templates/list, resources/list dan menambahkan kemampuan yang dikembalikan ke katalog terpadu.
Sinkronisasi Eksplisit
Katalog kemampuan untuk Target dalam mode DEFAULT, dapat diperbarui secara manual dengan memanggil SynchronizeGatewayTargets API. Saat dipanggil, itu memperbarui daftar kemampuan Gateway yang tersedia. Anda harus memanggil API setiap kali alat server MCP, prompt, definisi sumber daya berubah.
Sinkronisasi adalah mekanisme penting untuk mempertahankan katalog kemampuan yang akurat saat mengintegrasikan server MCP. Sinkronisasi implisit terjadi secara otomatis selama pembuatan dan pembaruan target, di mana Gateway segera menemukan dan mengindeks alat, petunjuk, dan sumber daya dari server MCP untuk memastikan kemampuan tersedia untuk pencarian semantik dan daftar terpadu. Sinkronisasi eksplisit dilakukan sesuai permintaan melalui SynchronizeGatewayTargets API, memungkinkan penemuan katalog kemampuan MCP ketika server MCP secara independen memodifikasi kemampuan mereka.
Kapan harus menelepon SynchronizeGatewayTargets
Setiap kali target server MCP memiliki Mode Listing disetel ke DEFAULT, gunakan SynchronizeGatewayTargets API setelah alat, prompt, atau sumber daya ditambahkan, dihapus, atau dimodifikasi. Karena Gateway melakukan pra-perhitungan penyematan vektor untuk pencarian semantik dan memelihara katalog kemampuan yang dinormalisasi, sinkronisasi diperlukan untuk memastikan pengguna Anda dapat menemukan dan memanggil alat, petunjuk, dan sumber daya terbaru yang tersedia.
Cara memanggil API
Buat permintaan PUT ke /gateways/ {gatewayIdentifier} /sync dengan ID target di badan permintaan. API mengembalikan respons 202 segera dan memproses sinkronisasi secara asinkron. Pantau status target GetGatewayTarget untuk melacak kemajuan sinkronisasi, karena operasi dapat memakan waktu beberapa menit untuk set kemampuan yang besar.
Strategi otorisasi
Jenis strategi otorisasi berikut didukung.
-
Tidak ada otorisasi — Gateway memanggil server MCP tanpa otorisasi yang telah dikonfigurasi sebelumnya. Pendekatan ini tidak dianjurkan.
-
OAuth — Gateway mendukung OAuth berkaki dua (jenis
CLIENT_CREDENTIALShibah), OAuth tiga kaki (jenis hibah), dan pertukaran token on-AUTHORIZATION_CODEbehalf of (jenis hibah).TOKEN_EXCHANGEAnda mengonfigurasi penyedia otorisasi di Amazon Bedrock AgentCore Identity di akun dan Wilayah yang sama untuk gateway untuk melakukan panggilan ke server MCP. Jika Anda menggunakan pertukaran token on-behalf of, tinjau pertimbangan pertukaran token on-behalf of untuk jenis target ini. -
IAM (AWS Signature Version 4 (Sig V4)) - Gateway menandatangani permintaan ke server MCP menggunakan SIGv4 dengan kredentif peran layanan gateway. Anda mengonfigurasi
IamCredentialProviderdengan nama layanan yang diperlukan untuk penandatanganan SIGv4 dan Wilayah opsional (default ke Wilayah gateway). -
Kunci API — Gateway menggunakan penyedia kredensia kunci API untuk mengotentikasi dengan server MCP. Anda mengonfigurasi penyedia kunci API di Amazon Bedrock AgentCore Identity di akun dan Wilayah yang sama dengan gateway.
penting
Otorisasi keluar IAM (SIGv4) mengharuskan server MCP dihosting di belakang AWS layanan yang secara native mendukung otentikasi IAM. Gateway menandatangani permintaan keluar dengan SIGv4 tetapi tidak mengubah konfigurasi otentikasi pada target. Layanan target harus dapat memverifikasi tanda tangan SIGv4.
AWS Layanan berikut secara native mendukung otentikasi IAM dan kompatibel dengan otorisasi keluar IAM untuk target server MCP:
-
Gerbang Dasar AgentCore Amazon
-
Amazon Bedrock AgentCore Runtime (lihat Menye barkan server MCP di AgentCore Runtime)
-
Amazon API Gateway
-
URL Fungsi Lambda
Layanan yang tidak memverifikasi tanda tangan SIGv4 secara asli, seperti Application Load Balancer atau titik akhir Amazon EC2 langsung, tidak kompatibel dengan otorisasi keluar IAM. Jika server MCP Anda dihosting di belakang salah satu layanan ini, gunakan otorisasi kunci OAuth atau API sebagai gantinya.
Pertimbangan konfigurasi untuk target server MCP
Berikut ini harus dikonfigurasi.
-
Server MCP harus memiliki kemampuan alat. Kemampuan prompt dan sumber daya bersifat opsional dan disinkronkan secara otomatis saat server mengiklankannya.
-
Versi protokol MCP yang didukung adalah - 2026-07-28, 202 5-11-25, 2025-06-18, dan 2025-03-26.
-
Untuk yang disediakan URL/endpoint server, URL harus dikodekan. Gateway akan menggunakan URL yang sama untuk memanggil server.
catatan
Untuk akun yang diaktifkan untuk pembaruan versi MCP, Anda dapat memodifikasi versi protokol gateway yang didukung dengan UpdateGateway operasi. Jika tidak, versi yang didukung diperbaiki saat Anda membuat gateway.
Tip
Jika server MCP Anda dihosting pada AgentCore Runtime, Anda dapat menghindari inisialisasi berulang dengan server MCP pada setiap permintaan. Akti fkan sesi MCP di gateway Anda, atau tambahkan Mcp-Session-Id sebagai header permintaan dan respons yang diizinkan di target. metadataConfiguration Ini menghasilkan latensi yang lebih rendah untuk panggilan alat berikutnya. Panduan ini berlaku untuk versi 2025-11-25 dan sebelumnya. Versi 2026-07-28 stateless dan tidak menggunakan Mcp-Session-Id header.
On-behalf-of pertimbangan pertukaran token
Batasan berikut berlaku saat Anda menggunakan pertukaran token on-behalf of (jenis TOKEN_EXCHANGE hibah) sebagai otorisasi keluar untuk target server MCP:
-
Server otorisasi dengan dukungan 2LO - Jika server otorisasi Anda mengizinkan otentikasi mesin-ke-mesin (
CLIENT_CREDENTIALShibah, juga dikenal sebagai OAuth berkaki dua), Anda dapat menggunakan mode daftar DEFAULT. Dalam mode daftar DEFAULT, gateway menjalankan sinkronisasi latar belakang selamaCreateGatewayTargetUpdateGatewayTarget,, danSynchronizeGatewayTargetsuntuk mengambil alat server MCP (menggunakantools/list), prompt, dan sumber daya. Tidak ada token pengguna masuk selama operasi bidang kontrol ini, jadi sinkronisasi menggunakan token mesin-ke-mesin alih-alih pertukaran token on-behalf of. -
Server otorisasi tanpa dukungan 2LO — Jika server otorisasi Anda tidak mendukung otentikasi mesin-ke-mesin, gunakan mode daftar DINAMIS sebagai gantinya. Dalam mode DINAMIS, gateway menemukan kemampuan server MCP pada waktu pemanggilan. Karena token pengguna masuk hadir dan dapat ditukar pada saat itu, gateway tidak memerlukan sinkronisasi latar belakang bidang kontrol.
Mengamankan status permintaan untuk elisitasi dan pengambilan sampel (versi 2026-07-28 dan yang lebih baru)
Pada versi 2026-07-28 dan yang lebih baru, elicitasi dan pengambilan sampel menggunakan pola permintaan multi pulang pergi (MRTR). Target server MCP Anda menghasilkan requestState nilai dalam input_required hasil; gateway memperlakukan nilai ini sebagai buram. Gateway tidak menyimpanrequestState. Ini menyimpan nilai dalam memori hanya saat meneruskannya tidak berubah antara klien Anda dan target server MCP Anda, dan membuangnya ketika permintaan selesai.
AgentCore Gateway dan target server MCP Anda berbagi tanggung jawab untuk mengamankan status permintaan:
-
AgentCore Gateway mengotentikasi dan mengotorisasi setiap permintaan terhadap konfigurasi otorisasi masuk gateway Anda, termasuk percobaan ulang yang membawa a.
requestStatePenelepon yang tidak dapat mengotentikasi ke gateway Anda tidak dapat menampilkan status permintaan sama sekali. Untuk informasi selengkapnya, lihat Mengatur otorisasi masuk untuk gateway Anda. -
Target server MCP Anda bertanggung jawab untuk memvalidasi yang diter
requestStateimanya, karena nilai pulang-pergi melalui klien. Spesifikasi MCP mengharuskan server untuk memperlakukan klien sebagai perantara yang tidak tepercaya dan untuk selalu memvalidasi status permintaan. Jika status berisi data khusus untuk pengguna asli, spesifikasi mengharuskan server untuk mengikat data tersebut secara kriptografis ke pengguna. Pada percobaan ulang, server harus memverifikasi bahwa status milik pengguna yang saat ini diautentikasi. Gateway tidak memverifikasi bahwa penelepon yang menyajikan arequestStateadalah penelepon yang sama yang menerimanya. Mencegah satu pengguna memutar ulang status permintaan pengguna lain adalah tanggung jawab server MCP Anda.
Untuk melindungi status permintaan, ikuti panduan dalam spesifikasi MCP. Enkripsi atau tanda tangani status (misalnya, dengan AES-GCM atau JWT yang ditandatangani) untuk memastikan kerahasiaan dan integritas. Ikat status khusus pengguna ke pengguna asal, kedaluwarsa status, dan perlakukan nilai status plaintext apa pun sebagai input yang tidak tepercaya. Untuk informasi selengkapnya, lihat Per mintaan multi pulang-
Menghubungkan ke server OAuth-protected MCP menggunakan aliran Kode Otorisasi
Untuk mendukung jenis pemberian Kode Otorisasi (OAuth berkaki tiga) dengan target server MCP, Amazon Bedrock AgentCore Gateway menyediakan dua metode untuk pembuatan target.
Sinkronisasi implisit selama pembuatan target server MCP
Dengan metode ini, pengguna admin menyelesaikan aliran kode otorisasi selamaCreateGatewayTarget,UpdateGatewayTarget, atau SynchronizeGatewayTargets operasi menggunakan URL otorisasi yang dikembalikan dalam respons. Hal ini memungkinkan Amazon Bedrock AgentCore Gateway untuk menemukan dan menyimpan alat server MCP di muka.
catatan
Anda tidak dapat menghapus, memperbarui, atau menyinkronkan target yang berada dalam status otorisasi tertunda (CREATE_PENDING_AUTHUPDATE_PENDING_AUTH,, atauSYNCHRONIZE_PENDING_AUTH). Tunggu otorisasi selesai atau gagal sebelum melakukan operasi lebih lanjut pada target.
Menyediakan skema di muka selama pembuatan target server MCP
Dengan metode ini, pengguna admin menyediakan skema alat secara langsung selama CreateGatewayTarget atau UpdateGatewayTarget operasi menggunakan mcpToolSchema bidang, daripada Amazon Bedrock AgentCore Gateway mengambilnya secara dinamis dari server MCP. Amazon Bedrock AgentCore Gateway mengurai skema yang disediakan dan menyimpan definisi alat dalam cache.
catatan
Anda tidak dapat menyinkronkan target yang memiliki skema alat statis (mcpToolSchema) yang dikonfigurasi. Hapus skema statis melalui UpdateGatewayTarget panggilan untuk mengaktifkan sinkronisasi alat dinamis.
Pengikatan Sesi URL
Pengikatan sesi URL otorisasi OAuth 2.0 memverifikasi bahwa pengguna yang memulai permintaan otorisasi OAuth adalah pengguna yang sama yang memberikan persetujuan. Setelah pengguna menyelesaikan persetujuan, browser mengalihkan kembali ke URL pengembalian yang dikonfigurasi pada target dengan URI sesi unik. Aplikasi kemudian bertanggung jawab untuk memanggil CompleteResourceTokenAuth API, menyajikan identitas pengguna dan URI sesi. Amazon Bedrock AgentCore Identity memvalidasi bahwa pengguna yang memulai alur adalah pengguna yang sama yang menyelesaikannya sebelum menukar kode otorisasi dengan token akses.
Ini mencegah skenario di mana pengguna secara tidak sengaja membagikan URL otorisasi dan orang lain menyelesaikan persetujuan, yang akan memberikan token akses ke pihak yang salah. URL otorisasi dan URI sesi hanya berlaku selama 10 menit, yang selanjutnya membatasi jendela untuk penyalahgunaan. Pengikatan sesi berlaku selama pembuatan target (sinkronisasi implisit) dan selama pemanggilan alat.
catatan
Saat melakukan operasi target (Buat, Perbarui, atau Sinkronisasi) dan otorisasi melalui Konsol AWS Manajemen, CompleteResourceTokenAuth panggilan dilakukan atas nama pemilik sumber daya, tidak memerlukan tindakan lebih lanjut setelah otorisasi.
Mengonfigurasi izin
Peran IAM yang Anda gunakan untuk membuat, memperbarui, atau menyinkronkan target server MCP harus memiliki izin yang ditunjukkan dalam contoh berikut.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "bedrock-agentcore:CreateGateway", "bedrock-agentcore:GetGateway", "bedrock-agentcore:CreateGatewayTarget", "bedrock-agentcore:GetGatewayTarget", "bedrock-agentcore:SynchronizeGatewayTargets", "bedrock-agentcore:UpdateGatewayTarget" ], "Resource": "arn:aws:bedrock-agentcore:*:*:*gateway*" }, { "Effect": "Allow", "Action": [ "bedrock-agentcore:CreateWorkloadIdentity", "bedrock-agentcore:GetWorkloadAccessToken", "bedrock-agentcore:GetWorkloadAccessTokenForUserId", "bedrock-agentcore:GetResourceOauth2Token", "bedrock-agentcore:GetResourceApiKey", "bedrock-agentcore:CompleteResourceTokenAuth", "secretsmanager:GetSecretValue" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "kms:EnableKeyRotation", "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey*", "kms:ReEncrypt*", "kms:CreateAlias", "kms:DisableKey", "kms:*" ], "Resource": "arn:aws:kms:*:123456789012:key/*" } ] }