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