Server Firebase MCP

Anda dapat menggunakan server Firebase MCP untuk memberi alat pengembangan berteknologi AI kemampuan agar dapat berfungsi 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 banyak lagi.

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 lingkungannya.

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 populer yang didukung AI:

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 dapat menggunakan server Firebase MCP adalah dengan menginstal ekstensi Firebase untuk Gemini CLI:

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

Setelah ekstensi Firebase diinstal, server Firebase MCP akan otomatis dikonfigurasi. Selain itu, ekstensi tersebut juga dilengkapi file konteks yang dapat meningkatkan performa pengembangan aplikasi Firebase dari Gemini.

Anda juga 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 dapat menggunakan server Firebase MCP adalah dengan menginstal ekstensi Firebase untuk Gemini CLI:

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

Setelah ekstensi Firebase diinstal, server Firebase MCP akan otomatis dikonfigurasi. Selain itu, ekstensi tersebut juga dilengkapi file konteks yang dapat meningkatkan performa pengembangan aplikasi Firebase dari Gemini.

Anda juga dapat mengonfigurasi Gemini Code Assist 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"]
    }
  }
}

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 di 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"]
    }
  }
}

Windsurf

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 Firebase MCP menyediakan tiga kategori fitur MCP yang berbeda:

  • Prompt: Kumpulan prompt preset yang dapat Anda jalankan. Prompt ini dioptimalkan untuk mengembangkan dan menjalankan aplikasi dengan Firebase

  • Alat: Sekumpulan alat yang ditujukan untuk digunakan oleh LLM yang membantunya agar dapat berfungsi langsung dengan project Firebase Anda (dengan persetujuan Anda)

  • Resource: File dokumentasi yang ditujukan untuk digunakan oleh LLM sehingga LLM memiliki lebih banyak panduan dan konteks untuk menyelesaikan suatu tugas atau tujuan

Perintah

Server Firebase MCP dilengkapi dengan kumpulan prompt preset dan dioptimalkan untuk mengembangkan dan menjalankan aplikasi dengan Firebase. Anda dapat menjalankan prompt ini untuk menyelesaikan berbagai tugas atau tujuan umum.

Tabel berikut menjelaskan prompt yang disediakan oleh server MCP.

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

/firebase:init

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

Nama Prompt 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 AI dan backend.
firebase:consult inti Gunakan perintah ini untuk berkonsultasi dengan Firebase Assistant, yang dilengkapi akses ke dokumentasi terbaru dan mendetail untuk platform Firebase.

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

Alat

Server Firebase MCP juga menyediakan sejumlah alat yang ditujukan untuk digunakan oleh LLM yang membantunya agar dapat berfungsi langsung dengan project Firebase Anda (dengan persetujuan Anda). Tidak seperti prompt, Anda tidak memanggil alat ini secara langsung. Namun, dalam kasus ini, model yang mendukung pemanggilan alat (seperti Gemini, Claude, dan GPT) dapat otomatis memanggil alat ini untuk menjalankan tugas pengembangan jika diperlukan.

Tabel berikut menjelaskan berbagai alat yang disediakan oleh server MCP.

Nama Alat Grup Fitur Deskripsi
firebase_login inti Gunakan alat ini agar pengguna dapat login ke server Firebase MCP dan Firebase CLI. Alat ini hanya bisa digunakan jika ada Akun Google dan jika login memang diperlukan untuk membuat dan menggunakan Project Firebase.
firebase_logout inti Gunakan alat ini agar pengguna dapat logout dari server Firebase MCP dan Firebase CLI.
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 alat ini untuk mengambil informasi tentang Project Firebase yang saat ini aktif.
firebase_list_apps inti Gunakan alat 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 alat ini untuk mengambil daftar Project Firebase yang dapat diakses oleh pengguna yang login.
firebase_get_sdk_config inti Gunakan alat ini untuk mengambil informasi konfigurasi Firebase untuk Aplikasi Firebase. Anda harus menentukan SALAH SATU, yakni ID Aplikasi Firebase ATAU platform untuk Aplikasi Firebase yang terdaftar di Project Firebase yang saat ini aktif.
firebase_create_project inti Gunakan alat ini untuk membuat Project Firebase baru.
firebase_create_app inti Gunakan alat 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 alat ini untuk menambahkan hash sertifikat SHA tertentu ke Aplikasi Android Firebase yang ditentukan.
firebase_get_environment inti Gunakan alat ini untuk mengambil konfigurasi lingkungan Firebase saat ini untuk server Firebase MCP dan Firebase CLI, termasuk Project Firebase aktif, direktori project, pengguna yang diautentikasi saat ini, dan lainnya.
firebase_update_environment inti Gunakan alat ini untuk mengubah konfigurasi lingkungan untuk server Firebase MCP dan Firebase CLI, 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 alat 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, jadi tentukan produk yang ingin Anda siapkan saja. 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 alat 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 alat ini untuk membaca isi resource firebase:// atau menampilkan daftar resource yang tersedia
firestore_delete_document firestore Gunakan alat ini untuk menghapus dokumen Firestore dari database dalam project saat ini berdasarkan jalur dokumen lengkap. Gunakan ini jika Anda mengetahui jalur persis dokumen.
firestore_get_documents firestore Gunakan alat 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 alat ini untuk mengambil daftar koleksi dari database Firestore dalam project saat ini.
firestore_query_collection firestore Gunakan alat ini untuk mengambil satu atau beberapa dokumen Firestore dari koleksi di suatu 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 alat ini untuk mengambil satu atau beberapa pengguna Firebase Authentication berdasarkan daftar UID atau daftar email.
auth_update_user auth Gunakan alat ini untuk menonaktifkan, mengaktifkan, atau menetapkan klaim kustom di akun pengguna tertentu.
auth_set_sms_region_policy auth Gunakan alat ini untuk menetapkan kebijakan wilayah SMS untuk Firebase Authentication guna membatasi wilayah 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 alat ini untuk membuat Skema Firebase Data Connect berdasarkan deskripsi pengguna tentang suatu aplikasi.
dataconnect_generate_operation dataconnect Gunakan alat ini untuk membuat satu kueri atau mutasi Firebase Data Connect berdasarkan skema yang saat ini di-deploy dan prompt yang diberikan.
dataconnect_list_services dataconnect Gunakan alat ini untuk menampilkan daftar layanan Firebase Data Connect lokal dan backend yang ada
dataconnect_execute dataconnect Gunakan alat ini untuk menjalankan operasi GraphQL terhadap layanan Firebase Data Connect atau emulatornya.
storage_get_object_download_url penyimpanan Gunakan alat ini untuk mengambil URL download untuk objek di bucket Cloud Storage for Firebase.
messaging_send_message messaging Gunakan alat 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 alat ini untuk mengambil halaman entri log Cloud Functions menggunakan filter lanjutan Google Cloud Logging.
remoteconfig_get_template remoteconfig Gunakan alat ini untuk mengambil template Firebase Remote Config yang ditentukan dari Project Firebase yang saat ini aktif.
remoteconfig_update_template remoteconfig Gunakan alat ini untuk memublikasikan template Remote Config baru atau melakukan roll back 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 alat ini untuk menampilkan daftar peristiwa terbaru yang cocok dengan filter yang ditentukan.
Dapat digunakan untuk mengambil sampel 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 sampel error dan pengecualian untuk suatu masalah,
yang akan mencakup stack trace dan data lain yang berguna untuk proses debug.
crashlytics_list_notes crashlytics Gunakan alat ini untuk menampilkan daftar semua catatan untuk suatu masalah di Crashlytics.
crashlytics_get_top_issues crashlytics Gunakan alat 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 yang ditentukan.
crashlytics_get_top_variants crashlytics Menghitung peristiwa dan pengguna unik yang terpengaruh, yang dikelompokkan menurut varian masalah.
Grup diurutkan berdasarkan jumlah peristiwa, dari yang paling banyak ke paling sedikit.
Hanya menghitung peristiwa yang cocok dengan filter yang ditentukan.
crashlytics_get_top_versions crashlytics Menghitung peristiwa dan pengguna unik yang terpengaruh, yang dikelompokkan menurut versi.
Grup diurutkan berdasarkan jumlah peristiwa, dari yang paling banyak ke paling sedikit.
Hanya menghitung peristiwa yang cocok dengan filter yang ditentukan.
crashlytics_get_top_apple_devices crashlytics Menghitung peristiwa dan pengguna unik yang terpengaruh, yang dikelompokkan menurut perangkat Apple.
Grup diurutkan berdasarkan jumlah peristiwa, dari yang paling banyak ke paling sedikit.
Hanya menghitung peristiwa yang cocok dengan filter yang ditentukan.
Hanya relevan untuk aplikasi iOS, iPadOS, dan MacOS.
crashlytics_get_top_android_devices crashlytics Menghitung peristiwa dan pengguna unik yang terpengaruh, yang dikelompokkan menurut perangkat Android.
Grup diurutkan berdasarkan jumlah peristiwa, dari yang paling banyak ke paling sedikit.
Hanya menghitung peristiwa yang cocok dengan filter yang ditentukan.
Hanya relevan untuk aplikasi Android.
crashlytics_get_top_operating_systems crashlytics Menghitung peristiwa dan pengguna unik yang terpengaruh, yang dikelompokkan menurut sistem operasi.
Grup diurutkan berdasarkan jumlah peristiwa, dari yang paling banyak ke paling sedikit.
Hanya menghitung peristiwa yang cocok dengan filter yang ditentukan.
crashlytics_update_issue crashlytics Gunakan alat ini untuk memperbarui status masalah Crashlytics.
apphosting_fetch_logs apphosting Gunakan alat 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 alat 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 alat ini untuk mengambil data dari lokasi yang ditentukan di Firebase Realtime Database.
realtimedatabase_set_data realtimedatabase Gunakan alat ini untuk menulis data ke lokasi yang ditentukan di Firebase Realtime Database.

Resource

Server MCP menyediakan resource, yakni 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 coding dalam mengonfigurasi kemampuan GenAI di project saat ini menggunakan Firebase
data_connect_init_guide Panduan Inisialisasi Firebase Data Connect: memandu agen coding 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 coding dalam menyiapkan aturan keamanan Firestore di 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 dalam 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