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.

Catatan:

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

  1. Kamu menambahkan MCP server yang mendukung OAuth ke file konfigurasi kamu (tidak diperlukan kredensial headers atau env)
  2. Saat Bob pertama kali terhubung ke server, Bob mendeteksi metadata otorisasi OAuth server
  3. Bob membuka prompt autentikasi berbasis browser yang meminta kamu untuk masuk dan memberikan persetujuan
  4. Setelah kamu mengotorisasi, Bob menyimpan access token dan refresh token dengan aman di seluruh sesi
  5. 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 ke false untuk menonaktifkan OAuth untuk server, atau true untuk mengaktifkannya secara eksplisit
  • clientId: Client ID OAuth, jika diperlukan oleh authorization server
  • clientSecret: Client secret OAuth, jika diperlukan oleh authorization server
  • scope: 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.

Peringatan:

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:

  1. Jendela browser terbuka dengan prompt otorisasi
  2. Tinjau izin yang diminta oleh server
  3. Masuk dengan akun yang diperlukan dan berikan persetujuan
  4. 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.

Bagaimana topik ini?