Server Firebase MCP

Anda dapat menggunakan server Firebase MCP untuk memberi alat pengembangan yang didukung AI kemampuan untuk bekerja dengan project Firebase dan codebase aplikasi Anda.

Server Firebase MCP berfungsi dengan alat apa pun yang dapat bertindak sebagai klien MCP, termasuk: Firebase Studio, Gemini CLI dan Gemini Code Assist, Claude Code dan Claude Desktop, Cline, Cursor, VS Code Copilot, Windsurf, dan lainnya.

Langsung ke petunjuk penyiapan

Manfaat server MCP

Editor yang dikonfigurasi untuk menggunakan server Firebase MCP dapat menggunakan kemampuan AI-nya untuk membantu Anda:

  • Membuat dan mengelola project Firebase
  • Mengelola pengguna Firebase Authentication
  • Menggunakan data di Cloud Firestore dan Firebase Data Connect
  • Mengambil skema Firebase Data Connect
  • Memahami aturan keamanan untuk Firestore dan Cloud Storage for Firebase
  • Mengirim pesan dengan Firebase Cloud Messaging

Beberapa alat menggunakan Gemini di Firebase untuk membantu Anda:

  • Membuat skema dan operasi Firebase Data Connect
  • Berkonsultasi dengan Gemini tentang produk Firebase

Ini hanyalah sebagian dari daftar; lihat bagian kemampuan server untuk mengetahui daftar lengkap alat yang tersedia bagi editor Anda.

Menyiapkan klien MCP

Server Firebase MCP dapat berfungsi dengan klien MCP apa pun yang mendukung I/O standar (stdio) sebagai media transpor.

Saat melakukan panggilan alat, server Firebase MCP menggunakan kredensial pengguna yang sama yang mengizinkan Firebase CLI di lingkungan tempat server tersebut berjalan. Hal ini dapat berupa pengguna yang login atau Kredensial Default Aplikasi, bergantung pada lingkungan.

Sebelum memulai

Pastikan Anda memiliki penginstalan Node.js dan npm yang berfungsi.

Konfigurasi dasar

Berikut petunjuk konfigurasi dasar untuk menggunakan server Firebase MCP dengan beberapa alat bantu AI populer:

Firebase Studio

Untuk mengonfigurasi Firebase Studio agar menggunakan server Firebase MCP, edit atau buat file konfigurasi: .idx/mcp.json

Jika file belum ada, buat dengan mengklik kanan direktori induk dan memilih New file. Tambahkan konten berikut ke file:

{
  "mcpServers": {
    "firebase": {
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "mcp"]
    }
  }
}

Gemini CLI

Cara yang direkomendasikan untuk menyiapkan Gemini CLI agar menggunakan server Firebase MCP adalah dengan menginstal ekstensi Firebase untuk Gemini CLI:

gemini extensions install https://github.com/gemini-cli-extensions/firebase/

Menginstal ekstensi Firebase akan otomatis mengonfigurasi server MCP Firebase dan juga dilengkapi dengan file konteks yang dapat meningkatkan performa pengembangan aplikasi Firebase Gemini.

Atau, Anda dapat mengonfigurasi Gemini CLI agar menggunakan server Firebase MCP (tetapi bukan file konteks ekstensi Firebase), dengan mengedit atau membuat salah satu file konfigurasi:

  • Di project Anda: .gemini/settings.json
  • Di direktori utama Anda: ~/.gemini/settings.json

Jika file belum ada, buat dengan mengklik kanan direktori induk dan memilih New file. Tambahkan konten berikut ke file:

{
  "mcpServers": {
    "firebase": {
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "mcp"]
    }
  }
}

Gemini Code Assist

Cara yang direkomendasikan untuk menyiapkan Gemini Code Assist agar menggunakan server Firebase MCP adalah dengan menginstal ekstensi Firebase untuk Gemini CLI:

gemini extensions install https://github.com/gemini-cli-extensions/firebase/

Menginstal ekstensi Firebase akan otomatis mengonfigurasi server MCP Firebase dan juga dilengkapi dengan file konteks yang dapat meningkatkan performa pengembangan aplikasi Firebase Gemini.

Atau, Anda dapat mengonfigurasi Gemini Code Assist untuk menggunakan server Firebase MCP (tetapi bukan file konteks ekstensi Firebase), dengan mengedit atau membuat salah satu file konfigurasi:

  • Di project Anda: .gemini/settings.json
  • Di direktori utama Anda: ~/.gemini/settings.json

Jika file belum ada, buat dengan mengklik kanan direktori induk dan memilih New file. Tambahkan konten berikut ke file:

{
  "mcpServers": {
    "firebase": {
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "mcp"]
    }
  }
}

Claude

Claude Code

Untuk mengonfigurasi Claude Code agar menggunakan server MCP Firebase, jalankan perintah berikut di folder aplikasi Anda:

claude mcp add firebase npx -- -y firebase-tools@latest mcp

Anda dapat memverifikasi penginstalan dengan menjalankan:

claude mcp list

Tulisan yang akan muncul:

firebase: npx -y firebase-tools@latest mcp - ✓ Connected

Claude Desktop

Untuk mengonfigurasi Claude Desktop agar menggunakan server Firebase MCP, edit file claude_desktop_config.json. Anda dapat membuka atau membuat file ini dari menu Claude > Settings. Pilih tab Developer, lalu klik Edit Config.

{
  "mcpServers": {
    "firebase": {
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "mcp"]
    }
  }
}

Cline

Untuk mengonfigurasi Cline agar menggunakan server Firebase MCP, edit file cline_mcp_settings.json. Anda dapat membuka atau membuat file ini dengan mengklik ikon Server MCP di bagian atas panel Cline, lalu mengklik tombol Configure MCP Servers.

{
  "mcpServers": {
    "firebase": {
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "mcp"],
      "disabled": false
    }
  }
}

Kursor

Untuk mengonfigurasi Cursor agar menggunakan server Firebase MCP, edit file .cursor/mcp.json (untuk mengonfigurasi project tertentu saja) atau file ~/.cursor/mcp.json (untuk menyediakan server MCP di semua project):

"mcpServers": {
  "firebase": {
    "command": "npx",
    "args": ["-y", "firebase-tools@latest", "mcp"]
  }
}

Copilot VS Code

Untuk mengonfigurasi satu project, edit file .vscode/mcp.json di ruang kerja Anda:

"servers": {
  "firebase": {
    "type": "stdio",
    "command": "npx",
    "args": ["-y", "firebase-tools@latest", "mcp"]
  }
}

Agar server tersedia di setiap project yang Anda buka, edit setelan pengguna:

"mcp": {
  "servers": {
    "firebase": {
      "type": "stdio",
      "command": "npx",
      "args": ["-y", "firebase-tools@latest", "mcp"]
    }
  }
}

Selancar Angin

Untuk mengonfigurasi Windsurf Editor, edit file ~/.codeium/windsurf/mcp_config.json:

"mcpServers": {
  "firebase": {
    "command": "npx",
    "args": ["-y", "firebase-tools@latest", "mcp"]
  }
}

Konfigurasi opsional

Selain konfigurasi dasar untuk setiap klien, yang ditampilkan sebelumnya, ada dua parameter opsional yang dapat Anda tentukan:

  • --dir ABSOLUTE_DIR_PATH: Jalur absolut direktori yang berisi firebase.json, untuk menetapkan konteks project untuk server MCP. Jika tidak ditentukan, alat get_project_directory dan set_project_directory akan tersedia dan direktori default akan menjadi direktori kerja tempat server MCP dimulai.

  • --only FEATURE_1,FEATURE_2: Daftar grup fitur yang dipisahkan koma untuk diaktifkan. Gunakan ini untuk membatasi alat yang ditampilkan hanya ke fitur yang Anda gunakan secara aktif. Perhatikan bahwa alat inti selalu tersedia

Contoh:

"firebase": {
  "command": "npx",
  "args": [
    "-y",
    "firebase-tools@latest", "mcp",
    "--dir", "/Users/turing/my-project",
    "--only", "auth,firestore,storage"
  ]
}

Kemampuan server MCP

Server MCP Firebase menyediakan tiga kategori fitur MCP yang berbeda:

  • Perintah: Kumpulan perintah yang telah ditulis sebelumnya yang dapat Anda jalankan; perintah ini dioptimalkan untuk mengembangkan dan menjalankan aplikasi dengan Firebase

  • Alat: Sekumpulan alat yang ditujukan untuk digunakan oleh LLM yang membantu LLM bekerja secara langsung dengan project Firebase Anda (dengan persetujuan Anda).

  • Referensi: File dokumentasi yang ditujukan untuk digunakan oleh LLM guna memberikan lebih banyak panduan dan konteks untuk menyelesaikan tugas atau sasaran

Perintah

Server Firebase MCP dilengkapi dengan library perintah yang telah ditulis sebelumnya dan dioptimalkan untuk mengembangkan dan menjalankan aplikasi dengan Firebase. Anda dapat menjalankan perintah ini untuk menyelesaikan berbagai tugas atau sasaran umum.

Tabel berikut menjelaskan perintah yang disediakan oleh server MCP.

Sebagian besar alat pengembangan yang mendukung MCP menyediakan cara mudah untuk menjalankan perintah ini. Misalnya, Gemini CLI menyediakan perintah ini sebagai perintah garis miring:

/firebase:init

Di Gemini CLI, mulai ketik /firebase: untuk melihat daftar perintah yang tersedia.

Nama Perintah Grup Fitur Deskripsi
firebase:deploy inti Gunakan perintah ini untuk men-deploy resource ke Firebase.

Argumen:
<prompt> (opsional): petunjuk spesifik yang ingin Anda berikan tentang deployment
firebase:init inti Gunakan perintah ini untuk menyiapkan layanan Firebase, seperti fitur backend dan AI.
firebase:consult inti Gunakan perintah ini untuk berkonsultasi dengan Firebase Assistant dengan akses ke dokumentasi terbaru yang mendetail untuk platform Firebase.

Argumen:
<prompt>: pertanyaan yang akan diteruskan ke model Gemini di Firebase
crashlytics:connect crashlytics Mengakses data Crashlytics aplikasi Firebase.

Alat

Server MCP Firebase juga menyediakan sejumlah alat yang ditujukan untuk digunakan oleh LLM yang membantu LLM bekerja secara langsung dengan project Firebase Anda (dengan persetujuan Anda). Tidak seperti perintah, Anda tidak memanggil alat ini secara langsung; melainkan, model yang mendukung panggilan alat (seperti Gemini, Claude, dan GPT) dapat memanggil alat ini secara otomatis untuk melakukan tugas pengembangan jika diperlukan.

Tabel berikut menjelaskan alat yang disediakan oleh server MCP.

Nama Alat Grup Fitur Deskripsi
firebase_login inti Gunakan ini untuk login pengguna ke Firebase CLI dan server Firebase MCP. Tindakan ini memerlukan Akun Google, dan login diperlukan untuk membuat dan menggunakan Project Firebase.
firebase_logout inti Gunakan ini untuk logout pengguna dari Firebase CLI dan server Firebase MCP.
firebase_validate_security_rules inti Gunakan alat ini untuk memeriksa error sintaksis dan validasi pada Aturan Keamanan Firebase untuk Firestore, Storage, atau Realtime Database.
firebase_get_project inti Gunakan ini untuk mengambil informasi tentang Project Firebase yang saat ini aktif.
firebase_list_apps inti Gunakan ini untuk mengambil daftar Aplikasi Firebase yang terdaftar di project Firebase yang saat ini aktif. Aplikasi Firebase dapat berupa iOS, Android, atau Web.
firebase_list_projects inti Gunakan ini untuk mengambil daftar Project Firebase yang dapat diakses oleh pengguna yang login.
firebase_get_sdk_config inti Gunakan ini untuk mengambil informasi konfigurasi Firebase untuk Aplikasi Firebase. Anda harus menentukan EITHER platform ATAU ID Aplikasi Firebase untuk Aplikasi Firebase yang terdaftar di Project Firebase yang saat ini aktif.
firebase_create_project inti Gunakan ini untuk membuat Project Firebase baru.
firebase_create_app inti Gunakan ini untuk membuat Aplikasi Firebase baru di Project Firebase yang saat ini aktif. Aplikasi Firebase dapat berupa iOS, Android, atau Web.
firebase_create_android_sha inti Gunakan ini untuk menambahkan hash sertifikat SHA yang ditentukan ke Aplikasi Android Firebase yang ditentukan.
firebase_get_environment inti Gunakan ini untuk mengambil konfigurasi lingkungan Firebase saat ini untuk Firebase CLI dan server Firebase MCP, termasuk pengguna yang diautentikasi saat ini, direktori project, Project Firebase aktif, dan lainnya.
firebase_update_environment inti Gunakan ini untuk mengupdate konfigurasi lingkungan untuk Firebase CLI dan server Firebase MCP, seperti direktori project, project aktif, akun pengguna aktif, menyetujui persyaratan layanan, dan lainnya. Gunakan firebase_get_environment untuk melihat lingkungan yang saat ini dikonfigurasi.
firebase_init inti Gunakan ini untuk melakukan inisialisasi layanan Firebase yang dipilih di ruang kerja (database Cloud Firestore, Firebase Data Connect, Firebase Realtime Database, Firebase AI Logic). Semua layanan bersifat opsional; hanya tentukan produk yang ingin Anda siapkan. Anda dapat melakukan inisialisasi fitur baru ke direktori project yang ada, tetapi melakukan inisialisasi ulang fitur yang ada dapat menimpa konfigurasi. Untuk men-deploy fitur yang diinisialisasi, jalankan perintah firebase deploy setelah alat firebase_init.
firebase_get_security_rules inti Gunakan ini untuk mengambil aturan keamanan untuk layanan Firebase tertentu. Jika ada beberapa instance layanan tersebut dalam produk, aturan untuk instance default akan ditampilkan.
firebase_read_resources inti Gunakan ini untuk membaca konten resource firebase:// atau mencantumkan resource yang tersedia
firestore_delete_document firestore Gunakan ini untuk menghapus dokumen Firestore dari database di project saat ini berdasarkan jalur dokumen lengkap. Gunakan ini jika Anda mengetahui jalur persis dokumen.
firestore_get_documents firestore Gunakan ini untuk mengambil satu atau beberapa dokumen Firestore dari database dalam project saat ini berdasarkan jalur dokumen lengkap. Gunakan ini jika Anda mengetahui jalur persis dokumen.
firestore_list_collections firestore Gunakan ini untuk mengambil daftar koleksi dari database Firestore dalam project saat ini.
firestore_query_collection firestore Gunakan ini untuk mengambil satu atau beberapa dokumen Firestore dari koleksi adalah database dalam project saat ini berdasarkan koleksi dengan jalur dokumen lengkap. Gunakan ini jika Anda mengetahui jalur persis koleksi dan klausa pemfilteran yang Anda inginkan untuk dokumen.
auth_get_users auth Gunakan ini untuk mengambil satu atau beberapa pengguna Firebase Auth berdasarkan daftar UID atau daftar email.
auth_update_user auth Gunakan ini untuk menonaktifkan, mengaktifkan, atau menetapkan klaim kustom di akun pengguna tertentu.
auth_set_sms_region_policy auth Gunakan ini untuk menetapkan kebijakan region SMS untuk Firebase Authentication guna membatasi region yang dapat menerima pesan teks berdasarkan daftar kode negara ALLOW atau DENY. Kebijakan ini akan menggantikan kebijakan yang ada saat ditetapkan.
dataconnect_build dataconnect Gunakan alat ini untuk mengompilasi skema, operasi, dan/atau konektor Firebase Data Connect serta memeriksa error build.
dataconnect_generate_schema dataconnect Gunakan ini untuk membuat Skema Firebase Data Connect berdasarkan deskripsi aplikasi pengguna.
dataconnect_generate_operation dataconnect Gunakan alat ini untuk membuat satu kueri atau mutasi Firebase Data Connect berdasarkan skema yang saat ini di-deploy dan perintah yang diberikan.
dataconnect_list_services dataconnect Gunakan ini untuk mencantumkan layanan Firebase Data Connect lokal dan backend yang ada
dataconnect_execute dataconnect Gunakan ini untuk menjalankan operasi GraphQL terhadap layanan Data Connect atau emulatornya.
storage_get_object_download_url storage Gunakan ini untuk mengambil URL download objek di bucket Cloud Storage untuk Firebase.
messaging_send_message fitur pesan Gunakan ini untuk mengirim pesan ke token atau topik pendaftaran Firebase Cloud Messaging. HANYA SATU dari registration_token atau topic yang dapat diberikan dalam panggilan tertentu.
functions_get_logs functions Gunakan ini untuk mengambil halaman entri log Cloud Functions menggunakan filter lanjutan Google Cloud Logging.
remoteconfig_get_template remoteconfig Gunakan ini untuk mengambil template Firebase Remote Config yang ditentukan dari Project Firebase yang saat ini aktif.
remoteconfig_update_template remoteconfig Gunakan ini untuk memublikasikan template konfigurasi jarak jauh baru atau melakukan rollback ke versi tertentu untuk project
crashlytics_create_note crashlytics Menambahkan catatan ke suatu masalah dari Crashlytics.
crashlytics_delete_note crashlytics Menghapus catatan dari masalah Crashlytics.
crashlytics_get_issue crashlytics Mendapatkan data untuk masalah Crashlytics, yang dapat digunakan sebagai titik awal untuk proses debug.
crashlytics_list_events crashlytics Gunakan ini untuk mencantumkan peristiwa terbaru yang cocok dengan filter yang diberikan.
Dapat digunakan untuk mengambil contoh error dan pengecualian untuk suatu masalah,
yang akan mencakup stack trace dan data lain yang berguna untuk proses debug.
crashlytics_batch_get_events crashlytics Mendapatkan peristiwa tertentu berdasarkan nama resource.
Dapat digunakan untuk mengambil contoh error dan pengecualian untuk suatu masalah,
yang akan mencakup stack trace dan data lain yang berguna untuk proses debug.
crashlytics_list_notes crashlytics Gunakan ini untuk mencantumkan semua catatan untuk suatu masalah di Crashlytics.
crashlytics_get_top_issues crashlytics Gunakan ini untuk menghitung peristiwa dan pengguna unik yang terpengaruh, yang dikelompokkan menurut masalah.
Grup diurutkan berdasarkan jumlah peristiwa, dari yang paling banyak ke paling sedikit.
Hanya menghitung peristiwa yang cocok dengan filter tertentu.
crashlytics_get_top_variants crashlytics Menghitung peristiwa dan pengguna yang terpengaruh yang berbeda, yang dikelompokkan menurut varian masalah.
Grup diurutkan berdasarkan jumlah peristiwa, dari yang paling banyak ke paling sedikit.
Hanya menghitung peristiwa yang cocok dengan filter tertentu.
crashlytics_get_top_versions crashlytics Menghitung peristiwa dan pengguna yang terpengaruh yang berbeda, dikelompokkan menurut versi.
Grup diurutkan berdasarkan jumlah peristiwa, dari yang paling banyak ke paling sedikit.
Hanya menghitung peristiwa yang cocok dengan filter tertentu.
crashlytics_get_top_apple_devices crashlytics Menghitung peristiwa dan pengguna yang terpengaruh yang berbeda, dikelompokkan menurut perangkat Apple.
Grup diurutkan berdasarkan jumlah peristiwa, dari yang paling banyak ke paling sedikit.
Hanya menghitung peristiwa yang cocok dengan filter tertentu.
Hanya relevan untuk aplikasi iOS, iPadOS, dan MacOS.
crashlytics_get_top_android_devices crashlytics Menghitung peristiwa dan pengguna yang terpengaruh yang berbeda, dikelompokkan menurut perangkat Android.
Grup diurutkan berdasarkan jumlah peristiwa, dari yang paling banyak ke paling sedikit.
Hanya menghitung peristiwa yang cocok dengan filter tertentu.
Hanya relevan untuk aplikasi Android.
crashlytics_get_top_operating_systems crashlytics Menghitung peristiwa dan pengguna yang terpengaruh yang berbeda, dikelompokkan menurut sistem operasi.
Grup diurutkan berdasarkan jumlah peristiwa, dari yang paling banyak ke paling sedikit.
Hanya menghitung peristiwa yang cocok dengan filter tertentu.
crashlytics_update_issue crashlytics Gunakan ini untuk memperbarui status masalah Crashlytics.
apphosting_fetch_logs apphosting Gunakan ini untuk mengambil log terbaru untuk backend App Hosting yang ditentukan. Jika buildLogs ditentukan, log dari proses build untuk build terbaru akan ditampilkan. Log terbaru dicantumkan di urutan pertama.
apphosting_list_backends apphosting Gunakan ini untuk mengambil daftar backend App Hosting dalam project saat ini. Daftar kosong berarti tidak ada backend. uri adalah URL publik backend. Backend yang berfungsi akan memiliki array managed_resources yang akan berisi entri run_service. run_service.service tersebut adalah nama resource layanan Cloud Run yang menayangkan backend App Hosting. Segmen terakhir dari nama tersebut adalah ID layanan. domains adalah daftar domain yang terkait dengan backend. Domain tersebut memiliki jenis CUSTOM atau DEFAULT. Setiap backend harus memiliki domain DEFAULT. Domain sebenarnya yang akan digunakan pengguna untuk terhubung ke backend adalah parameter terakhir dari nama resource domain. Jika disiapkan dengan benar, domain kustom akan memiliki status yang berakhiran ACTIVE.
realtimedatabase_get_data realtimedatabase Gunakan ini untuk mengambil data dari lokasi yang ditentukan di Firebase Realtime Database.
realtimedatabase_set_data realtimedatabase Gunakan ini untuk menulis data ke lokasi yang ditentukan di Firebase Realtime Database.

Resource

Server MCP menyediakan resource, yang merupakan file dokumentasi yang ditujukan untuk digunakan oleh LLM. Model yang mendukung penggunaan resource akan otomatis menyertakan resource yang relevan dalam konteks sesi.

Tabel berikut menjelaskan resource yang disediakan oleh server MCP.

Nama Resource Deskripsi
backend_init_guide Panduan Inisialisasi Backend Firebase: memandu agen coding dalam mengonfigurasi layanan backend Firebase di project saat ini
ai_init_guide Panduan Inisialisasi GenAI Firebase: memandu agen pengodean dalam mengonfigurasi kemampuan GenAI di project saat ini menggunakan Firebase
data_connect_init_guide Panduan Inisialisasi Firebase Data Connect: memandu agen pengodean dalam mengonfigurasi akses Data Connect untuk PostgreSQL di project saat ini
firestore_init_guide Panduan Inisialisasi Firestore: memandu agen coding dalam mengonfigurasi Firestore di project saat ini
firestore_rules_init_guide Panduan Inisialisasi Aturan Firestore: memandu agen pengodean dalam menyiapkan aturan keamanan Firestore dalam project
rtdb_init_guide Panduan Inisialisasi Firebase Realtime Database: memandu agen coding dalam mengonfigurasi Realtime Database di project saat ini
auth_init_guide Panduan Inisialisasi Firebase Authentication: memandu agen coding dalam mengonfigurasi Firebase Authentication di project saat ini
hosting_init_guide Panduan Deployment Firebase Hosting: memandu agen coding melakukan deployment ke Firebase Hosting di project saat ini
dokumen Dokumen Firebase: memuat konten teks biasa dari dokumentasi Firebase, misalnya https://firebase.google.com/docs/functions menjadi firebase://docs/functions