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 berisifirebase.json
, untuk menetapkan konteks project untuk server MCP. Jika tidak ditentukan, alatget_project_directory
danset_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 |