Gunakan sesi MCP dengan gateway Anda AgentCore
Sesi MCP memungkinkan interaksi stateful antara klien dan gateway Anda. AgentCore Saat sesi diaktifkan, gateway menghasilkan pengenal sesi unik selama inisialisasi dan mempertahankan status di beberapa permintaan, memungkinkan fitur MCP tingkat lanjut seperti elicitation dan sampling.
Manfaat menggunakan sesi
- Interaksi target server MCP stateful
-
Gateway menyimpan ID sesi target server MCP dan menggunakannya kembali pada panggilan alat berikutnya. Ini menghindari inisialisasi ulang pada setiap permintaan dan memungkinkan target mempertahankan konteks di seluruh panggilan.
- Respons lebih cepat dengan target AgentCore Runtime
-
Saat sesi target digunakan kembali, AgentCore Runtime tidak perlu memulai koneksi server MCP baru pada setiap permintaan, sehingga waktu respons lebih cepat.
- Mengaktifkan fitur MCP tingkat lanjut
-
Sesi adalah prasyarat untuk elisitasi dan pengambilan sampel, yang memerlukan status pelacakan di beberapa permintaan.
- User-scoped keamanan (gateway yang diautentikasi)
-
Untuk gateway dengan otentikasi masuk, sesi terikat pada identitas pengguna yang diverifikasi, mencegah pembajakan sesi.
Aktifkan sesi di gateway Anda
Untuk mengaktifkan sesi, tentukan sessionConfiguration di protocolConfiguration.mcp bidang saat membuat atau memperbarui gateway Anda.
{ "protocolConfiguration": { "mcp": { "sessionConfiguration": { "sessionTimeoutInSeconds": 3600 } } } }
Parameter sessionTimeoutInSeconds bersifat opsional. Jika dihilangkan, batas waktu default adalah 3600 detik (1 jam). Rentang yang valid adalah 900 (15 menit) hingga 28800 (8 jam). Batas waktu mutlak, dihitung dari initialize permintaan pertama.
Untuk juga mengaktifkan fitur yang bergantung pada sesi seperti elisitasi dan pengambilan sampel, Anda juga harus mengaktifkan streaming respons:
{ "protocolConfiguration": { "mcp": { "sessionConfiguration": { "sessionTimeoutInSeconds": 3600 }, "streamingConfiguration": { "enableResponseStreaming": true } } } }
catatan
Saat sesi diaktifkan di gateway, Anda tidak dapat memasukkan Mcp-Session-Id dalam metadataConfiguration pengaturan propagasi header target gateway. Gateway mengelola ID sesi secara internal. Mencoba melakukannya mengembalikan kesalahan Permintaan Buruk HTTP 400.
Siklus hidup sesi
Siklus hidup sesi mengikuti alur inisialisasi protokol MCP:
-
Klien mengirimkan
initializepermintaan ke gateway. -
Gateway membuat sesi, menyimpan metadata sesi, dan mengembalikan unik
Mcp-Session-Iddi header respons. -
Klien menyertakan
Mcp-Session-Idheader dalam semua permintaan berikutnya. -
Gateway memvalidasi keberadaan sesi, kedaluwarsa, dan identitas pengguna (untuk gateway yang diautentikasi) pada setiap permintaan.
-
Ketika waktu sesi habis atau klien terputus, sesi berakhir.
Pada panggilan alat pertama ke target server MCP dalam sesi, gateway menginisialisasi koneksi dengan target dan menyimpan ID sesi target. Panggilan alat berikutnya ke target yang sama menggunakan kembali ID sesi yang disimpan ini, menghindari inisialisasi berulang.
Identitas pengguna dan pelingkupan sesi
Sesi dicakup ke identitas pengguna yang diautentikasi untuk mencegah pembajakan sesi. Gateway memperoleh identitas pengguna secara berbeda tergantung pada metode otentikasi masuk yang dikonfigurasi pada gateway Anda:
| Metode otentikasi | Pengenal pengguna | Perilaku |
|---|---|---|
|
OAuth/OIDC |
|
Sepenuhnya tercakup. Hanya pengguna yang membuat sesi yang dapat menggunakannya. |
|
AWS IAM (SiGv4) |
ARN Utama |
Sepenuhnya tercakup. Hanya kepala sekolah IAM yang membuat sesi yang dapat menggunakannya. Principal ARN secara global unik di seluruh dunia AWS, tidak dapat diubah untuk masa pakai entitas IAM. Contoh: |
|
Tidak ada otentikasi |
Tidak ada |
Tidak ada pelingkupan pengguna. Sesi tersedia tetapi tidak terikat pada identitas apa pun. Siapa pun yang memiliki ID sesi dapat berinteraksi dengan sesi tersebut. |
penting
Untuk gateway tanpa otentikasi masuk, sesi membawa risiko pembajakan sesi seperti yang dijelaskan dalam pertimbangan keamanan spesifikasi MCP.
Untuk gateway yang diautentikasi, jika pengguna lain mencoba menggunakan ID sesi yang ada, gateway mengembalikan HTTP 404 Not Found — sesi tidak terlihat oleh pengguna lain.
Batas waktu sesi dan kedaluwarsa
Batas waktu sesi dihitung dari initialize permintaan pertama. Setelah periode batas waktu, sesi berakhir dan tidak dapat digunakan.
-
Batas waktu default: 3600 detik (1 jam)
-
Rentang yang dapat dikonfigurasi: 900 detik (15 menit) hingga 28800 detik (8 jam)
Jika sesi target server MCP kedaluwarsa sebelum batas waktu sesi gateway, gateway secara transparan menginisialisasi ulang dengan target dan memperbarui ID sesi target yang disimpan. Sesi gateway tetap aktif.
Penanganan kesalahan
| Skenario | Status HTTP | Deskripsi |
|---|---|---|
|
|
400 Permintaan Buruk |
Semua permintaan setelah |
|
ID sesi tidak valid atau kedaluwarsa |
404 Tidak Ditemukan |
Sesi tidak ada atau telah habis waktu. |
|
Pengguna yang berbeda mencoba menggunakan sesi pengguna lain (gateway yang diautentikasi) |
404 Tidak Ditemukan |
Sesi ini tidak terlihat oleh pengguna lain. |
|
|
400 Permintaan Buruk |
Kembali di bidang kontrol saat membuat atau memperbarui target. |