Autentikasi OAuth MCP

Terhubung ke server MCP yang memerlukan akses yang didelegasikan oleh pengguna dengan OAuth 2.1. Bob mengelola proses autentikasi dan token refresh sehingga kamu tidak perlu mengelola token secara manual.

Untuk konfigurasi MCP umum, lihat Menggunakan MCP di Bob.

Gambaran umum

Kamu dapat menghubungkan Bob ke server Model Context Protocol (MCP) yang bertindak atas namamu, seperti mengakses repositori kode, layanan cloud, atau alat internal milikmu. Server ini menggunakan OAuth 2.1 sehingga kamu dapat sign in dan menyetujui akses.

Bob mengelola alur autentikasi secara langsung. Saat kamu mengonfigurasi server yang memerlukan OAuth, Bob menampilkan permintaan autentikasi di pengaturan MCP. Kamu dapat mengeklik tombol untuk membuka identity provider di jendela browser, menyelesaikan sign-in, dan menyetujui izin. Bob menyimpan dan me-refresh token aksesmu tanpa mengharuskanmu menangani kredensial secara manual.

Gunakan OAuth ketika:

  • Kamu perlu mengakses resource yang terkait dengan akun pengguna pribadi atau enterprise milikmu
  • Server menggunakan token berumur pendek yang memerlukan token refresh otomatis
  • Kamu ingin menjaga kredensial statis dan secret tetap berada di luar file konfigurasi

Ketika kamu sudah memiliki token API statis atau personal access token yang tidak kedaluwarsa, kamu dapat menggunakan Bearer token di headers sebagai gantinya.

Cara kerja alur autentikasi

  1. Kamu menambahkan URL remote server MCP ke file konfigurasi tanpa kredensial headers atau env.
  2. Saat Bob terhubung ke server, Bob mendeteksi persyaratan OAuth.
  3. Bob membuka jendela sign-in browser tempat kamu meninjau izin yang diminta dan menyetujui akses.
  4. Bob menerima token otorisasi dan menyimpannya secara aman lintas sesimu.
  5. Bob secara otomatis me-refresh token sebelum kedaluwarsa sehingga kamu dapat bekerja tanpa gangguan.
Bob IDE                     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)                                   |

Mengonfigurasi server yang mendukung OAuth

Kamu dapat mengonfigurasi server MCP baik di konfigurasi global (~/.bob/mcp_settings.json) maupun konfigurasi proyek (.bob/mcp.json).

Konfigurasi minimal (penemuan otomatis)

Saat server MCP menyediakan penemuan metadata OAuth otomatis, kamu hanya perlu menentukan url:

{
  "mcpServers": {
    "my-oauth-server": {
      "url": "https://mcp.example.com/mcp"
    }
  }
}

Bob mendeteksi persyaratan OAuth saat koneksi dan memandumu melalui proses sign-in browser.

Parameter OAuth kustom

Saat identity provider memerlukan client ID yang telah didaftarkan sebelumnya, scope kustom, atau client secret, konfigurasikan objek oauth:

{
  "mcpServers": {
    "my-oauth-server": {
      "url": "https://mcp.example.com/mcp",
      "oauth": {
        "enabled": true,
        "clientId": "your-client-id-from-idp",
        "clientSecret": "your-client-secret-if-required",
        "scope": "mcp:connect read:data"
      }
    }
  }
}

Properti konfigurasi

PropertiTipeDeskripsi
urlstringURL endpoint remote MCP (wajib).
oauth.enabledbooleanSet ke false untuk menonaktifkan OAuth, atau true untuk mewajibkan OAuth. Diaktifkan secara default saat tidak ada header Authorization.
oauth.clientIdstringClient ID OAuth yang telah didaftarkan sebelumnya yang diterbitkan oleh identity provider-mu.
oauth.clientSecretstringOAuth client secret, jika authorization server-mu memerlukannya untuk confidential client.
oauth.scopestringDaftar scope OAuth yang dipisahkan spasi yang ingin kamu minta.
Peringatan:

Menambahkan header Authorization statis ke konfigurasi server MCP akan mematikan OAuth. Saat header Authorization ada, Bob tidak memulai alur OAuth. Saat OAuth aktif, Bob menghapus header Authorization statis sebelum mengirim permintaan. Gunakan hanya satu metode autentikasi per server.

Mendaftarkan Bob dengan identity provider kamu

Saat identity provider (IdP) mengharuskanmu mendaftarkan Bob sebagai aplikasi klien sebelum terhubung, gunakan pengaturan aplikasi berikut:

PengaturanNilai
Tipe aplikasi atau klienPublic, Native, atau Loopback (Authorization Code dengan PKCE)
Redirect URIhttp://127.0.0.1:33418/callback
Redirect URI tambahanhttp://127.0.0.1:33419/callback hingga http://127.0.0.1:33427/callback (direkomendasikan jika port 33418 sedang digunakan)
Grant typeAuthorization Code (authorization_code) dan Refresh Token (refresh_token)
ScopeScope yang ditentukan dalam dokumentasi server MCP milikmu

Salin client ID yang diterbitkan ke dalam oauth.clientId di file konfigurasi kamu.

Autentikasi saat diminta

Saat kamu terhubung ke server yang mendukung OAuth untuk pertama kalinya:

  1. Tinjau prompt autentikasi yang terbuka di IDE atau browser kamu.
  2. Verifikasi izin yang diminta server.
  3. Sign in ke akunmu dan setujui akses.
  4. Bob menyimpan kredensialmu dan terhubung ke tool server.

Melihat dan mengelola status autentikasi

Kamu dapat memeriksa atau mengubah autentikasi untuk server MCP:

  1. Klik ikon di panel Bob.
  2. Pilih tab MCP.
  3. Temukan server dalam daftar.

Server yang terhubung menampilkan indikator status. Saat autentikasi kedaluwarsa atau izin berubah, kamu dapat memperbarui koneksimu.

Untuk autentikasi ulang: Klik di samping nama server untuk memulai ulang koneksi dan sign in lagi.

Pemecahan masalah

Prompt autentikasi tidak terbuka

  • Verifikasi bahwa kamu tidak menandai server sebagai dinonaktifkan dalam konfigurasi kamu.
  • Periksa bahwa file konfigurasi kamu tidak menyertakan header Authorization statis di headers.
  • Restart server dari tab pengaturan MCP.
  • Periksa bahwa browser atau firewall kamu tidak memblokir koneksi loopback lokal pada 127.0.0.1.

Identity provider mengembalikan error ketidakcocokan redirect URI

  • Verifikasi bahwa pendaftaran klien identity provider kamu menyertakan http://127.0.0.1:33418/callback.
  • Jika port 33418 sedang sibuk, daftarkan port tambahan dari 33419 hingga 33427.

Autentikasi berhasil tetapi server gagal terhubung

  • Verifikasi bahwa URL server sudah benar dan dapat diakses dari jaringanmu.
  • Periksa bahwa kamu telah menyetujui semua scope yang diperlukan selama langkah sign-in.
  • Tinjau log server atau dokumentasi untuk peran atau izin pengguna prasyarat.

Token sering kedaluwarsa dan kamu harus mengautentikasi ulang

  • Konfirmasikan bahwa authorization server kamu menerbitkan refresh token.
  • Periksa bahwa jam sistemmu telah disinkronkan untuk mencegah kedaluwarsa token sebelum waktunya.

Kamu ingin sign out atau beralih akun

Hapus atau ganti nama entri server di file konfigurasi kamu dan tambahkan lagi. Tindakan ini menyebabkan Bob memperlakukannya sebagai server baru dan memintamu untuk sign in pada koneksi berikutnya.

Bagaimana topik ini?