Autentikasi OAuth MCP
Bob Shell mendukung OAuth 2.1 untuk MCP server yang memerlukan akses yang didelegasikan oleh pengguna. Bob menangani alur autentikasi secara otomatis, termasuk refresh token, sehingga kamu tidak perlu mengelola token secara manual.
Untuk konfigurasi MCP umum, lihat Konfigurasi MCP server.
Ikhtisar
Beberapa MCP server perlu bertindak atas nama kamu sebagai pengguna, misalnya untuk membaca repositori GitHub kamu atau mengakses file Google Drive kamu. Server-server ini menggunakan OAuth 2.1 untuk meminta persetujuan kamu sebelum mengakses data apa pun.
Bob menangani alur OAuth penuh secara otomatis. Saat kamu terhubung ke server yang memerlukan OAuth, Bob membuka alur otorisasi di browser kamu. Setelah kamu mengotorisasi, Bob mengelola penyimpanan token dan refresh tanpa langkah manual lebih lanjut.
Ini berbeda dari metode autentikasi statis seperti Bearer token di headers atau API key di env, yang cocok untuk akun layanan atau token yang tidak kedaluwarsa. Gunakan OAuth saat:
- Server memerlukan akses ke sumber daya yang dimiliki oleh akun pengguna kamu
- Server otorisasi server mengeluarkan token berumur pendek yang harus di-refresh
- Kamu ingin menghindari penyimpanan rahasia berumur panjang di file konfigurasi MCP kamu
Cara kerja alur autentikasi
- Kamu menambahkan MCP server yang mendukung OAuth ke file konfigurasi kamu (tidak diperlukan kredensial
headersatauenv) - Saat Bob pertama kali terhubung ke server, Bob mendeteksi metadata otorisasi OAuth server
- Bob membuka prompt autentikasi berbasis browser yang meminta kamu untuk masuk dan memberikan persetujuan
- Setelah kamu mengotorisasi, Bob menyimpan access token dan refresh token dengan aman di seluruh sesi
- Bob secara otomatis me-refresh token sebelum kedaluwarsa. Kamu tidak akan diminta lagi kecuali refresh gagal.
Bob Shell Authorization Server MCP Server
| | |
|-- connect to server ---------->| |
|<-- OAuth metadata (401) -------| |
|-- open auth prompt ----------->| |
| (user signs in & consents) | |
|<-- authorization code ---------| |
|-- exchange for tokens -------->| |
|<-- access + refresh tokens ----| |
|-- authenticated requests ---------------------------------> |
| (auto-refresh when needed) |Konfigurasi server yang mendukung OAuth
MCP server yang mendukung OAuth mengiklankan persyaratan otorisasinya secara otomatis. Dalam kebanyakan kasus kamu hanya memerlukan URL server — field OAuth bersifat opsional. Bob juga mendukung properti OAuth opsional berikut:
oauth: Atur kefalseuntuk menonaktifkan OAuth untuk server, atautrueuntuk mengaktifkannya secara eksplisitclientId: Client ID OAuth, jika diperlukan oleh authorization serverclientSecret: Client secret OAuth, jika diperlukan oleh authorization serverscope: Daftar scope OAuth yang dipisahkan spasi untuk diminta
Contoh konfigurasi di ~/.bob/mcp_settings.json (global) atau .bob/mcp.json (proyek):
{
"mcpServers": {
"my-oauth-server": {
"url": "https://your-server-url.com/mcp"
}
}
}Bob mendeteksi persyaratan OAuth saat terhubung dan memulai alur. Tidak diperlukan kredensial headers atau env.
Menambahkan header Authorization statis ke server yang mendukung OAuth menonaktifkan OAuth otomatis sepenuhnya. Bob tidak mencoba alur OAuth. Sebaliknya, saat OAuth aktif, Bob menghapus header Authorization statis apa pun sebelum mengirim permintaan. Gunakan hanya satu metode.
Autentikasi saat diminta
Saat Bob terhubung ke server yang mendukung OAuth untuk pertama kalinya:
- Jendela browser terbuka dengan prompt otorisasi
- Tinjau izin yang diminta oleh server
- Masuk dengan akun yang diperlukan dan berikan persetujuan
- Bob menyimpan token dan menyelesaikan koneksi secara otomatis
Prompt terbuka di browser default kamu. Setelah kamu menyelesaikan otorisasi, Bob Shell melanjutkan koneksi secara otomatis.
Pemecahan masalah
Prompt autentikasi tidak muncul
- Konfirmasi server tidak ditandai sebagai dinonaktifkan dalam konfigurasi kamu
- Restart Bob Shell untuk memulai ulang koneksi server
- Periksa bahwa browser kamu tidak memblokir halaman otorisasi
Autentikasi berhasil tetapi server gagal terhubung
- Verifikasi URL server sudah benar dan dapat dijangkau
- Periksa bahwa kamu memberikan semua izin yang diperlukan selama langkah persetujuan
- Tinjau dokumentasi server untuk persyaratan penyiapan tambahan
Token sering kedaluwarsa dan autentikasi ulang diperlukan
- Konfirmasi authorization server mendukung refresh token. Beberapa server hanya mengeluarkan access token dengan masa hidup singkat.
- Periksa bahwa jam sistem kamu akurat, karena perbedaan jam dapat menyebabkan kedaluwarsa token prematur
Kamu ingin keluar atau berganti akun
Hapus atau ganti nama entri server di file konfigurasi kamu dan tambahkan lagi. Ini menyebabkan Bob memperlakukannya sebagai server baru dan memicu prompt autentikasi baru pada koneksi berikutnya.