Target server MCP
Server MCP menyediakan alat lokal, akses data, atau fungsi khusus untuk interaksi Anda dengan model dan agen di Bedrock AgentCore. Di Bedrock AgentCore, Anda dapat menentukan server MCP yang telah dikonfigurasi sebagai target saat membuat gateway.
Server MCP meng-host 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: Vibe coding dengan asisten pengkodean Anda.
Topik
Pertimbangan dan keterbatasan utama
Mode Daftar
ListingMode dapat diatur sebagai DYNAMIC atau DEFAULT untuk target server MCP.
-
Dalam mode DYNAMIC, klien menemukan kemampuan server MCP ketika pengguna memanggil operasi MCP. Gateway mengambil kemampuan server dengan meneruskan permintaan ke server MCP. Saat ini mode DYNAMIC tidak dapat dioperasikan dengan pencarian semantik atau OAuth berkaki tiga keluar (3LO).
-
Kecuali diubah, Mode Daftar diatur ke DEFAULT. Dalam mode DEFAULT, klien menemukan kemampuan server MCP melalui operasi sinkronisasi yang disediakan oleh API. SynchronizeGatewayTargets
Sinkronisasi Implisit
Untuk target dalam mode DEFAULT, CreateGatewayTarget dan UpdateGatewayTarget operasi secara otomatis memicu penemuan kemampuan dan pengindeksan. Ketika salah satu operasi dipanggil, Gateway mengambil alat yang tersedia menggunakan tools/list kemampuan MCP, meminta penggunaan, sumber daya menggunakan resources/list dan prompts/listresources/templates/list, dan menambahkan kemampuan yang dikembalikan ke katalog terpadu.
Sinkronisasi Eksplisit
Katalog kemampuan untuk Target dalam mode DEFAULT, dapat disegarkan secara manual dengan memanggil API. SynchronizeGatewayTargets Ketika dipanggil, itu memperbarui daftar kemampuan yang tersedia Gateway. Anda harus memanggil API kapan saja 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 memodifikasi kemampuan mereka secara independen.
Kapan harus menelepon SynchronizeGatewayTargets
Setiap kali target server MCP memiliki Mode Pencatatan 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 mempertahankan 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} /sinkronisasi dengan ID target di badan permintaan. API segera mengembalikan respons 202 dan memproses sinkronisasi secara asinkron. Pantau status target GetGatewayTarget untuk melacak kemajuan sinkronisasi, karena operasi dapat memakan waktu beberapa menit untuk set kemampuan besar.
Strategi otorisasi
Jenis strategi otorisasi berikut didukung.
-
Tidak ada otorisasi — Gateway memanggil server MCP tanpa otorisasi yang telah dikonfigurasi sebelumnya. Pendekatan ini tidak disarankan.
-
OAuth — Gateway mendukung OAuth berkaki dua (jenis hibah Kredensial Klien) dan OAuth berkaki tiga (jenis hibah Kode Otorisasi). Anda mengonfigurasi penyedia otorisasi di Amazon Bedrock AgentCore Identity di akun dan Wilayah yang sama agar gateway melakukan panggilan ke server MCP.
-
IAM (AWS Signature Version 4 (Sig V4)) - Gateway menandatangani permintaan ke server MCP menggunakan SiGv4 dengan kredenal peran layanan gateway. Anda mengonfigurasi nama layanan
IamCredentialProvideryang diperlukan untuk penandatanganan SigV4 dan Region opsional (default ke Region gateway). -
Kunci API — Gateway menggunakan penyedia kredensi kunci API untuk mengautentikasi 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 di-host 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 Dasar Amazon AgentCore
-
Amazon Bedrock AgentCore Runtime (lihat Menerapkan server MCP di Runtime) AgentCore
-
Amazon API Gateway
-
URL Fungsi Lambda
Layanan yang tidak memverifikasi tanda tangan Sigv4 secara native, seperti Application Load Balancer atau titik akhir Amazon EC2 langsung, tidak kompatibel dengan otorisasi keluar IAM. Jika server MCP Anda di-host 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 - 2025-06-18, 2025-03-26, dan 2025-11-25.
-
Untuk yang disediakan URL/endpoint server, URL harus dikodekan. Gateway akan menggunakan URL yang sama untuk memanggil server.
Tip
Jika server MCP Anda di-host di AgentCore Runtime, aktifkan sesi MCP di gateway Anda atau tambahkan Mcp-Session-Id sebagai header permintaan dan respons yang diizinkan di target. metadataConfiguration Ini menghindari inisialisasi berulang dengan server MCP pada setiap permintaan dan menghasilkan latensi yang lebih rendah untuk panggilan alat berikutnya.
Menghubungkan ke server OAuth-protected MCP menggunakan alur Kode Otorisasi
Untuk mendukung jenis hibah Kode Otorisasi (OAuth berkaki tiga) dengan target server MCP, Amazon AgentCore Bedrock 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. 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_AUTH,UPDATE_PENDING_AUTH, atauSYNCHRONIZE_PENDING_AUTH). Tunggu otorisasi selesai atau gagal sebelum melakukan operasi lebih lanjut pada target.
Berikan 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 mem-parsing skema yang disediakan dan menyimpan definisi alat.
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 ini kemudian bertanggung jawab untuk memanggil CompleteResourceTokenAuthAPI, 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 kepada 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, CompleteResourceTokenAuthpanggilan 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/*" } ] }