Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Kontrak protokol MCP
Memahami persyaratan untuk menerapkan Model Context Protocol (MCP) sehingga agen dapat memanggil alat dan server agen.
Misalnya kode, lihat Menye barkan server MCP di AgentCore Runtime.
Topik
Persyaratan implementasi protokol
Server MCP Anda harus menerapkan persyaratan protokol khusus ini:
-
Transpor tasi: Streamable-http transportasi diperlukan. Secara default, gunakan stateless mode (
stateless_http=True) untuk kompatibilitas dengan manajemen AWS sesi dan penyeimbangan beban. -
Manajemen S esi: Platform secara otomatis menambahkan
Mcp-Session-Idheader untuk isolasi sesi. Dalam mode stateless, server harus mendukung operasi stateless agar tidak menolak header yang dihasilkanMcp-Session-Idplatform.
Tip
Amazon Bedrock AgentCore juga mendukung server MCP stateful (stateless_http=False) yang memungkinkan kemampuan seperti elicitation (interaksi pengguna multi-turn) dan sampling (konten). LLM-generated Untuk versi protokol MCP 2025-11-25 dan sebelumnya, mode stateful diperlukan untuk elicitation dan sampling, karena server mengirimkan permintaan ini melalui sesi terbuka. Untuk versi 2026-07-28 dan yang lebih baru, elisitasi dan pengambilan sampel menggunakan pola permintaan multi pulang pergi (MRTR), yang tidak memerlukan mode stateful. Untuk informasi selengkapnya tentang MRTR, lihat Permintaan multi pulang-pergi
Mode stateful membawa status dalam sesi MCP di beberapa permintaan. Server MCP stateless menyimpan status di penyimpanan cadangan yang dikelola aplikasi Anda, seperti database. Ini menggunakan pegangan status eksplisit untuk mereferensikan status itu. Server mengembalikan pengidentifikasi status dalam hasil alat, dan klien meneruskannya kembali pada panggilan alat nanti untuk memasukkan kunci ke toko. Untuk informasi selengkapnya tentang penanganan status eksplisit, lihat pegangan status eksplisit
Manajemen sesi MCP dan kelengketan microVM
Model Context Protocol (MCP) menggunakan Mcp-Session-Id header untuk mengelola status sesi dan permintaan rute. Untuk spesifikasi MCP, lihat Transportasi HTTP Stream able MCP.
MicroVM Stickiness: Amazon Bedrock AgentCore menggunakan Mcp-Session-Id header untuk merutekan permintaan ke instance microVM yang sama. Klien harus menangkap yang Mcp-Session-Id dikembalikan dalam respons dan memasukkannya ke dalam semua permintaan berikutnya untuk memastikan afinitas sesi. Tanpa ID sesi yang konsisten, setiap permintaan dapat dialihkan ke microVM baru, yang dapat mengakibatkan latensi tambahan karena cold start.
MCP tanpa kewarganegaraan (): stateless_http=True
-
Platform menghasilkan
Mcp-Session-Iddan memasukkannya dalam permintaan ke server MCP Anda. -
Server MCP Anda harus menerima ID sesi yang disediakan platform (jangan menolaknya).
-
Platform mengembalikan hal yang sama
Mcp-Session-Idkepada klien dalam tanggapan. -
Klien harus menyertakan ID sesi ini di semua permintaan selanjutnya untuk afinitas microVM.
MCP yang berkeadaan (): stateless_http=False
-
Klien mengirimkan permintaan inisialisasi tanpa
Mcp-Session-Idheader. -
Platform kembali
Mcp-Session-Iddalam tanggapan. -
Klien harus menyertakan ini
Mcp-Session-Iddalam semua permintaan berikutnya untuk status sesi dan afinitas microVM.
Untuk detail selengkapnya tentang manajemen sesi MCP stateful, lihat spesifikasi manajemen sesi MCP.
catatan
Dalam kedua mode, Amazon Bedrock AgentCore selalu mengembalikan Mcp-Session-Id header ke klien. Selalu tangkap dan gunakan kembali header ini untuk kinerja optimal.
Persyaratan kontainer
Server MCP Anda harus digunakan sebagai aplikasi kontainer yang memenuhi spesifikasi berikut:
-
Tuan rumah:
0.0.0.0 -
Port:
8000- Port standar untuk komunikasi server MCP (berbeda dari protokol HTTP) -
Platform: wadah ARM64 - Diperlukan untuk kompatibilitas dengan lingkungan AWS runtime Amazon Bedrock AgentCore
Persyaratan jalur
/mcp - POSTING
Tujuan
Menerima pesan MCP RPC dan memprosesnya melalui kemampuan alat agen Anda, menyelesaikan pass-through payload InvokeAgentRuntime API dengan pesan MCP RPC standar
Format tanggapan
JSON-RPC request/response format berbasis, mendukung keduanya application/json dan text/event-stream sebagai tipe konten respons
Kasus penggunaan
T /mcp itik akhir melayani beberapa tujuan utama:
-
Pemanggilan dan manajemen alat
-
Penemuan kemampuan agen
-
Akses dan manipulasi sumber daya
-
Multi-step alur kerja agen
Penanganan kesalahan
Server MCP mengembalikan kesalahan sebagai respons kesalahan JSON-RPC 2.0 standar. Sebagian besar kesalahan dibawa dalam JSON-RPC error objek dengan kode status HTTP 200, seperti yang dipersyaratkan oleh spesifikasi MCP. Hanya kesalahan otentikasi, otorisasi, dan permintaan tingkat protokol yang menggunakan kode status HTTP non-200. Tabel berikut memetakan setiap pengecualian runtime ke kode JSON-RPC kesalahan, kode status HTTP, dan pesan. Beberapa pengecualian berbagi kode JSON-RPC kesalahan tetapi mengembalikan pesan yang berbeda, sehingga mereka terdaftar sebagai baris terpisah.
| JSON-RPC Kode Kesalahan | Pengecualian Runtime | Kode Kesalahan HTTP | Pesan Kesalahan |
|---|---|---|---|
|
-32001 |
UnauthorizedException |
401 |
Kesalahan otentikasi - KredenSIAL tidak valid |
|
-32002 |
AccessDeniedException |
403 |
Kesalahan otorisasi - Izin tidak memadai |
|
-32003 |
ThrottlingException |
200 |
Batas tarif terlampaui - Terlalu banyak permintaan |
|
-32003 |
ServiceQuotaExceededException |
200 |
Batas tarif terlampaui - Terlalu banyak permintaan |
|
-32004 |
ResourceNotFoundException |
200 |
Sumber daya tidak ditemukan - Sumber daya yang diminta tidak ada |
|
-32005 |
ConflictException |
200 |
Konflik sumber daya - Sumber daya sudah ada |
|
-32005 |
RetryableConflictException |
200 |
Operasi sesi sedang berlangsung, silakan coba lagi |
|
-32006 |
ValidationException |
200 |
Kesalahan validasi - Data permintaan tidak valid |
|
-32010 |
RuntimeClientError |
200 |
Kesalahan eksekusi alat - Silakan periksa CloudWatch log Anda untuk informasi lebih lanjut |
|
-32011 |
McpRequestUnacceptableException |
406 |
Terima Kesalahan Header - Protokol MCP membutuhkan header Terima: application/json, text/event -stream |
|
-32603 |
Pengecualian lainnya |
200 |
Kesalahan internal - Kesalahan server |
ConflictExceptiondan RetryableConflictException keduanya menggunakan kode JSON-RPC kesalahan -32005 (HTTP 200) tetapi dibedakan oleh pesan mereka. Layanan mengembalikan RetryableConflictException (Session operation in progress, please retry) ketika operasi kedua menargetkan sesi saat layanan menyediakan atau menghancurkan sesi itu. Karena MCP mengembalikan HTTP 200 dengan kesalahan dalam JSON-RPC tubuh, pemanggil harus memeriksa badan respons dan mencoba lagi dengan backoff eksponensial pendek — klien MCP tidak mencobanya ulang secara otomatis.
Contoh respons kesalahan:
{ "jsonrpc": "2.0", "id": "req-001", "error": { "code": -32005, "message": "Session operation in progress, please retry" } }
Tanggapan otentikasi OAuth
OAuth-configured agen mengikuti standar otentikasi RFC 6749 (OAuth 2.0).
401 Tidak sah
Dikembalikan ketika header Otorisasi hilang atau kosong.
Tanggapan termasuk WWW-Authenticate header:
WWW-Authenticate: Bearer resource_metadata="https://bedrock-agentcore.{region}.amazonaws.com/runtimes/{ESCAPED_ARN}/invocations/.well-known/oauth-protected-resource?qualifier={QUALIFIER}"
catatan
SigV4-configured agen mengembalikan HTTP 403 dengan ACCESS_DENIED kesalahan dan tidak menyertakan WWW-Authenticate header.