Firebase MCP sunucusu

Yapay zeka destekli geliştirme araçlarının Firebase projelerinizle çalışabilmesi için Firebase MCP sunucusunu kullanabilirsiniz. Firebase MCP sunucusu; Claude Desktop, Cline, Cursor, Visual Studio Code Copilot ve Windsurf Editor gibi MCP istemcisi olarak işlev görebilen tüm araçlarla çalışır.

Firebase MCP sunucusunu kullanacak şekilde yapılandırılmış bir düzenleyici, yapay zeka özelliklerini kullanarak şunları yapmanıza yardımcı olabilir:

  • Firebase projeleri oluşturma ve yönetme
  • Firebase Authentication kullanıcılarınızı yönetme
  • Cloud Firestore ve Firebase Data Connect'teki verilerle çalışma
  • Firebase Data Connect şemalarını alma
  • Firestore ve Firebase için Cloud Storage'deki güvenlik kurallarınızı anlama
  • Firebase Cloud Messaging ile mesaj gönderme

Bazı araçlar, size yardımcı olmak için Firebase'de Gemini'ı kullanır:

  • Firebase Data Connect şeması ve işlemleri oluşturma
  • Firebase ürünleri hakkında Gemini'a danışma

Bunlar yalnızca kısmi listelerdir. Düzenleyicinizde kullanılabilecek araçların tam listesi için sunucu özellikleri bölümüne bakın.

Firebase MCP sunucusu araç çağrıları yaptığında, çalıştığı ortamda Firebase CLI'yi yetkilendiren kullanıcı kimlik bilgilerini kullanır. Bu, ortama bağlı olarak giriş yapmış bir kullanıcı veya Application Default Credentials olabilir.

Başlamadan önce

Node.js ve npm'nin çalışır durumda yüklendiğinden emin olun.

MCP istemcinizi ayarlama

Firebase MCP sunucusu, aktarım ortamı olarak standart I/O (stdio) özelliğini destekleyen tüm MCP istemcileriyle çalışabilir.

Temel yapılandırma

Bu bölümde, bazı popüler yapay zeka destekli araçlarla ilgili özel talimatları bulabilirsiniz:

Firebase Studio

Firebase Studio'yu Firebase MCP sunucusunu kullanacak şekilde yapılandırmak için yapılandırma dosyasını düzenleyin veya oluşturun: .idx/mcp.json.

Dosya henüz yoksa ana dizini sağ tıklayıp Yeni dosya'yı seçerek dosyayı oluşturun. Dosyaya aşağıdaki içerikleri ekleyin:

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

Gemini CLI ve Gemini Code Assist

Gemini CLI veya Gemini Code Assist'i Firebase MCP sunucusunu kullanacak şekilde ayarlamanın önerilen yolu, Gemini CLI için Firebase uzantısını yüklemektir:

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

Firebase uzantısını yüklediğinizde Firebase MCP sunucusu otomatik olarak yapılandırılır. Ayrıca, Gemini'ın Firebase uygulama geliştirme performansını artırabilecek bir bağlam dosyası da yüklenir.

Alternatif olarak, yapılandırma dosyalarından birini düzenleyerek veya oluşturarak Gemini CLI'yı ya da Gemini Code Assist'i Firebase MCP sunucusunu (ancak Firebase uzantısı bağlam dosyasını değil) kullanacak şekilde yapılandırabilirsiniz:

  • Projenizde: .gemini/settings.json
  • Ana dizininizde: ~/.gemini/settings.json

Dosya henüz yoksa ana dizini sağ tıklayıp Yeni dosya'yı seçerek dosyayı oluşturun. Dosyaya aşağıdaki içerikleri ekleyin:

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

Claude Code

Claude Code'u Firebase MCP sunucusunu kullanacak şekilde yapılandırmak için uygulama klasörünüzde aşağıdaki komutu çalıştırın:

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

Yüklemeyi doğrulamak için şu komutu çalıştırın:

claude mcp list

Şunlar gösterilmelidir:

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

Claude Desktop

Claude Desktop'u Firebase MCP sunucusunu kullanacak şekilde yapılandırmak için claude_desktop_config.json dosyasını düzenleyin. Bu dosyayı Claude > Ayarlar menüsünden açabilir veya oluşturabilirsiniz. Geliştirici sekmesini seçin, ardından Yapılandırmayı Düzenle'yi tıklayın.

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

Cline

Cline'ı Firebase MCP sunucusunu kullanacak şekilde yapılandırmak için cline_mcp_settings.json dosyasını düzenleyin. Bu dosyayı, Cline bölmesinin üst kısmındaki MCP Sunucuları simgesini ve ardından MCP Sunucularını Yapılandır düğmesini tıklayarak açabilir veya oluşturabilirsiniz.

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

İmleç

Cursor'ı Firebase MCP sunucusunu kullanacak şekilde yapılandırmak için .cursor/mcp.json dosyasını (yalnızca belirli bir projeyi yapılandırmak için) veya ~/.cursor/mcp.json dosyasını (MCP sunucusunu tüm projelerde kullanılabilir hale getirmek için) düzenleyin:

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

Visual Studio Code Copilot

Tek bir projeyi yapılandırmak için çalışma alanınızdaki .vscode/mcp.json dosyasını düzenleyin:

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

Sunucuyu açtığınız her projede kullanılabilir hale getirmek için kullanıcı ayarlarınızı düzenleyin:

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

Windsurf Editor

Windsurf Editor'u yapılandırmak için dosyayı düzenleyin ~/.codeium/windsurf/mcp_config.json:

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

İsteğe bağlı yapılandırma

Daha önce gösterilen her istemci için temel yapılandırmaya ek olarak, belirleyebileceğiniz iki isteğe bağlı parametre vardır:

  • --dir ABSOLUTE_DIR_PATH: MCP sunucusu için proje bağlamı ayarlamak üzere firebase.json içeren bir dizinin mutlak yolu. Belirtilmemişse get_project_directory ve set_project_directory araçları kullanılabilir hale gelir ve varsayılan dizin, MCP sunucusunun başlatıldığı çalışma dizini olur.

  • --only FEATURE_1,FEATURE_2: Etkinleştirilecek özellik gruplarının virgülle ayrılmış listesi. Bu özelliği, yalnızca aktif olarak kullandığınız özelliklere sunulan araçları sınırlandırmak için kullanın. Temel araçların her zaman kullanılabildiğini unutmayın.

Örneğin:

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

MCP sunucusu özellikleri

Firebase MCP sunucusu, üç farklı MCP özelliği kategorisi sunar: istemler, araçlar ve kaynaklar.

İstemler

Firebase MCP sunucusu, Firebase uygulama geliştirme için optimize edilmiş önceden yazılmış istemler kitaplığıyla birlikte gelir. Bu istemleri çalıştırarak çeşitli yaygın Firebase geliştirme görevlerini tamamlayabilirsiniz.

MCP'yi destekleyen çoğu geliştirme aracı, bu istemleri çalıştırmak için uygun bir yöntem sunar. Örneğin, Gemini CLI bu istemleri eğik çizgi komutları olarak kullanıma sunar:

/firebase:init

Kullanılabilir komutların listesini görmek için Gemini CLI'da /firebase: yazın. Bu komutlar aşağıdaki tabloda da listelenmiştir:

Bu bilgileri şu komutu kullanarak da görebilirsiniz:

npx firebase-tools@latest mcp --generate-prompt-list
İstem Adı Özellik Grubu Açıklama
firebase:deploy core bölgesi Kaynakları Firebase'e dağıtmak için bu komutu kullanın.

Arguments:
<prompt> (isteğe bağlı): Dağıtım hakkında sağlamak istediğiniz belirli talimatlar
firebase:init core bölgesi Arka uç ve yapay zeka özellikleri gibi Firebase hizmetlerini ayarlamak için bu komutu kullanın.
firebase:consult core bölgesi Firebase platformuyla ilgili ayrıntılı ve güncel belgelere erişerek Firebase Asistanı'na danışmak için bu komutu kullanın.

Arguments:
<prompt>: Firebase'deki Gemini modeline iletilecek bir soru
crashlytics:connect crashlytics Firebase uygulamasının Crashlytics verilerine erişme

Araçlar

Firebase MCP sunucusu, LLM'lerin doğrudan Firebase projenizle (onayınızla) çalışmasına olanak tanıyan çeşitli araçlar da sunar. İstemlerin aksine, bu araçları doğrudan çağırmazsınız. Bunun yerine, araç çağırma özelliğini destekleyen modeller (ör. Gemini, Claude ve GPT) gerektiğinde geliştirme görevlerini gerçekleştirmek için bu araçları otomatik olarak çağırabilir.

Aşağıdaki tabloda, MCP sunucusunun sunduğu araçlar listelenmiştir.

Bu bilgileri şu komutu kullanarak da görebilirsiniz:

npx firebase-tools@latest mcp --generate-tool-list
Aracın Adı Özellik Grubu Açıklama
firebase_login core bölgesi Kullanıcının Firebase CLI ve Firebase MCP sunucusunda oturum açmasını sağlamak için bu yöntemi kullanın. Bu işlem için Google Hesabı gerekir. Firebase projeleri oluşturmak ve bu projelerle çalışmak için oturum açmanız gerekir.
firebase_logout core bölgesi Kullanıcının Firebase CLI ve Firebase MCP sunucusunda oturumunu kapatmak için bu komutu kullanın.
firebase_validate_security_rules core bölgesi Bunu, Firestore, Storage veya Realtime Database için Firebase güvenlik kurallarını söz dizimi ve doğrulama hataları açısından kontrol etmek için kullanın.
firebase_get_project core bölgesi Şu anda etkin olan Firebase projesi hakkında bilgi almak için bu yöntemi kullanın.
firebase_list_apps core bölgesi Şu anda etkin olan Firebase projesinde kayıtlı Firebase uygulamalarının listesini almak için bu yöntemi kullanın. Firebase uygulamaları iOS, Android veya Web olabilir.
firebase_list_projects core bölgesi Oturum açmış kullanıcının erişebildiği Firebase projelerinin listesini almak için bu yöntemi kullanın.
firebase_get_sdk_config core bölgesi Bu işlevi, bir Firebase uygulaması için Firebase yapılandırma bilgilerini almak üzere kullanın. Şu anda etkin olan Firebase projesinde kayıtlı bir Firebase uygulaması için YA bir platform YA da Firebase uygulama kimliğini belirtmeniz gerekir.
firebase_create_project core bölgesi Yeni bir Firebase projesi oluşturmak için bu seçeneği kullanın.
firebase_create_app core bölgesi Bu seçeneği kullanarak şu anda etkin olan Firebase projesinde yeni bir Firebase uygulaması oluşturun. Firebase uygulamaları iOS, Android veya Web olabilir.
firebase_create_android_sha core bölgesi Belirtilen SHA sertifikası karmasını belirtilen Firebase Android uygulamasına eklemek için bu komutu kullanın.
firebase_get_environment core bölgesi Geçerli kimliği doğrulanmış kullanıcı, proje dizini, etkin Firebase projesi ve daha fazlası dahil olmak üzere Firebase CLI ve Firebase MCP sunucusu için geçerli Firebase ortam yapılandırmasını almak üzere kullanılır.
firebase_update_environment core bölgesi Bunu, Firebase CLI ve Firebase MCP sunucusunun ortam yapılandırmasını (ör. proje dizini, etkin proje, etkin kullanıcı hesabı, hizmet şartlarını kabul etme) güncellemek için kullanın. Şu anda yapılandırılmış ortamı görmek için firebase_get_environment simgesini kullanın.
firebase_init core bölgesi Çalışma alanında seçili Firebase hizmetlerini (Cloud Firestore veritabanı, Firebase Data Connect, Firebase Realtime Database, Firebase AI Logic) başlatmak için bu işlevi kullanın. Tüm hizmetler isteğe bağlıdır. Yalnızca ayarlamak istediğiniz ürünleri belirtin. Yeni özellikleri mevcut bir proje dizininde başlatabilirsiniz ancak mevcut bir özelliği yeniden başlatmak yapılandırmanın üzerine yazabilir. Başlatılan özellikleri dağıtmak için firebase_init aracından sonra firebase deploy komutunu çalıştırın.
firebase_get_security_rules core bölgesi Belirli bir Firebase hizmetinin güvenlik kurallarını almak için bu yöntemi kullanın. Üründe bu hizmetin birden fazla örneği varsa varsayılan örneğin kuralları döndürülür.
firebase_read_resources core bölgesi firebase:// kaynaklarının içeriğini okumak veya kullanılabilir kaynakları listelemek için bu yöntemi kullanın.
firestore_delete_document firestore Geçerli projedeki bir veritabanından Firestore belgelerini tam belge yollarıyla silmek için bu API'yi kullanabilirsiniz. Bir belgenin tam yolunu biliyorsanız bu seçeneği kullanın.
firestore_get_documents firestore Bunu, tam doküman yollarını kullanarak geçerli projedeki bir veritabanından bir veya daha fazla Firestore dokümanı almak için kullanın. Bir belgenin tam yolunu biliyorsanız bu seçeneği kullanın.
firestore_list_collections firestore Geçerli projedeki bir Firestore veritabanından koleksiyon listesi almak için bu yöntemi kullanın.
firestore_query_collection firestore Bunu, tam belge yolu olan bir koleksiyonla geçerli projedeki bir veritabanında bulunan bir koleksiyondan bir veya daha fazla Firestore belgesi almak için kullanın. Bir koleksiyonun tam yolunu ve belge için istediğiniz filtreleme koşulunu biliyorsanız bu yöntemi kullanın.
auth_get_users auth Bu yöntemi, UID listesine veya e-posta listesine göre bir veya daha fazla Firebase Auth kullanıcısını almak için kullanın.
auth_update_user auth Belirli bir kullanıcının hesabında devre dışı bırakmak, etkinleştirmek veya özel talep ayarlamak için bu seçeneği kullanın.
auth_set_sms_region_policy auth Ülke kodlarının İZİN VER veya REDDET listesine göre kısa mesaj alabilecek bölgeleri kısıtlamak için Firebase Authentication'da SMS bölgesi politikası ayarlamak üzere bu ayarı kullanın. Bu politika, ayarlandığında mevcut tüm politikaları geçersiz kılar.
dataconnect_build dataconnect Firebase Data Connect şemasını, işlemlerini ve/veya bağlayıcılarını derlemek ve derleme hatalarını kontrol etmek için bu aracı kullanın.
dataconnect_generate_schema dataconnect Bunu, kullanıcının uygulama açıklamasına dayalı bir Firebase Data Connect şeması oluşturmak için kullanın.
dataconnect_generate_operation dataconnect Bu işlevi kullanarak, şu anda dağıtılmış şemaya ve sağlanan isteme göre tek bir Firebase Data Connect sorgusu veya mutasyonu oluşturun.
dataconnect_list_services dataconnect Mevcut yerel ve arka uç Firebase Data Connect hizmetlerini listelemek için kullanılır.
dataconnect_execute dataconnect Bunu, bir Data Connect hizmetine veya emülatörüne karşı GraphQL işlemi yürütmek için kullanın.
storage_get_object_download_url depolama Bu yöntemi, Firebase için Cloud Storage paketindeki bir nesnenin indirme URL'sini almak için kullanın.
messaging_send_message mesajlaşma Firebase Cloud Messaging kayıt jetonuna veya konusuna mesaj göndermek için kullanılır. Belirli bir görüşmede YALNIZCA registration_token veya topic sağlanabilir.
functions_get_logs functions Google Cloud Logging gelişmiş filtrelerini kullanarak bir sayfa Cloud Functions günlük girişi almak için bu yöntemi kullanın.
remoteconfig_get_template remoteconfig Bu işlevi, belirtilen Firebase Remote Config şablonunu şu anda etkin olan Firebase projesinden almak için kullanın.
remoteconfig_update_template remoteconfig Yeni bir uzaktan yapılandırma şablonu yayınlamak veya projede belirli bir sürüme geri dönmek için bu özelliği kullanın.
crashlytics_create_note crashlytics Crashlytics'teki bir soruna not ekleme
crashlytics_delete_note crashlytics Crashlytics sorunundan not silme
crashlytics_get_issue crashlytics Hata ayıklama için başlangıç noktası olarak kullanılabilecek bir Crashlytics sorunuyla ilgili verileri alır.
crashlytics_list_events crashlytics Belirtilen filtrelerle eşleşen en son etkinlikleri listelemek için kullanılır.
Bir sorunla ilgili örnek kilitlenmeleri ve istisnaları getirmek için kullanılabilir.
Bu örnekler,yığın izlemeleri ve hata ayıklama için yararlı olan diğer verileri içerir.
crashlytics_batch_get_events crashlytics Kaynak adına göre belirli etkinlikleri alır.
Bir sorunla ilgili örnek kilitlenmeleri ve istisnaları getirmek için kullanılabilir.
Bu örnekler,yığın izlemeleri ve hata ayıklama için yararlı olan diğer verileri içerir.
crashlytics_list_notes crashlytics Crashlytics'teki bir soruna ait tüm notları listelemek için kullanılır.
crashlytics_get_top_issues crashlytics Bunu, soruna göre gruplandırılmış etkinlikleri ve etkilenen farklı kullanıcıları saymak için kullanın.
Gruplar, etkinlik sayısına göre azalan düzende sıralanır.
Yalnızca belirtilen filtrelerle eşleşen etkinlikleri sayar.
crashlytics_get_top_variants crashlytics Etkinlikleri ve etkilenen farklı kullanıcıları, sorun varyantına göre gruplandırarak sayar.
Gruplar, etkinlik sayısına göre azalan düzende sıralanır.
Yalnızca belirtilen filtrelerle eşleşen etkinlikleri sayar.
crashlytics_get_top_versions crashlytics Sürüme göre gruplandırılmış şekilde etkinlikleri ve etkilenen farklı kullanıcıları sayar.
Gruplar, etkinlik sayısına göre azalan düzende sıralanır.
Yalnızca belirtilen filtrelerle eşleşen etkinlikleri sayar.
crashlytics_get_top_apple_devices crashlytics Apple cihazına göre gruplandırılmış etkinlikleri ve etkilenen benzersiz kullanıcıları sayar.
Gruplar, etkinlik sayısına göre azalan düzende sıralanır.
Yalnızca belirtilen filtrelerle eşleşen etkinlikleri sayar.
Yalnızca iOS, iPadOS ve macOS uygulamaları için geçerlidir.
crashlytics_get_top_android_devices crashlytics Android cihazına göre gruplandırılmış şekilde etkinlikleri ve etkilenen farklı kullanıcıları sayar.
Gruplar, etkinlik sayısına göre azalan düzende sıralanır.
Yalnızca belirtilen filtrelerle eşleşen etkinlikleri sayar.
Yalnızca Android uygulamaları için geçerlidir.
crashlytics_get_top_operating_systems crashlytics İşletim sistemine göre gruplandırılmış etkinlikleri ve etkilenen farklı kullanıcıları sayar.
Gruplar, etkinlik sayısına göre azalan düzende sıralanır.
Yalnızca belirtilen filtrelerle eşleşen etkinlikleri sayar.
crashlytics_update_issue crashlytics Crashlytics sorununun durumunu güncellemek için bu alanı kullanın.
apphosting_fetch_logs apphosting Belirli bir App Hosting arka ucu için en son günlükleri getirmek üzere bu işlevi kullanın. buildLogs belirtilirse en son derlemeye ait derleme sürecindeki günlükler döndürülür. En son günlükler önce listelenir.
apphosting_list_backends apphosting Bu yöntemi, mevcut projedeki App Hosting arka uçlarının listesini almak için kullanın. Boş liste, arka uç olmadığı anlamına gelir. uri, arka ucun herkese açık URL'sidir. Çalışan bir arka uçta run_service girişi içeren bir managed_resources dizisi bulunur. Bu run_service.service, App Hosting arka ucuna hizmet veren Cloud Run hizmetinin kaynak adıdır. Bu adın son segmenti hizmet kimliğidir. domains, arka uçla ilişkili alanların listesidir. Bunlar CUSTOM veya DEFAULT türündedir. Her arka uçta bir DEFAULT alanı olmalıdır. Kullanıcının arka uca bağlanmak için kullanacağı gerçek alan, alan kaynağı adının son parametresidir. Özel alan doğru şekilde ayarlanmışsa durumları ACTIVE ile biter.
realtimedatabase_get_data realtimedatabase Bu işlevi, Firebase Realtime Database'deki belirtilen konumdan veri almak için kullanın.
realtimedatabase_set_data realtimedatabase Bu işlevi, Firebase Realtime Database'de belirtilen konuma veri yazmak için kullanın.

Kaynaklar

MCP sunucusu, kaynaklar sağlar. Bu kaynaklar, LLM'ler tarafından kullanılmak üzere tasarlanmış doküman dosyalarıdır. Kaynak kullanımını destekleyen modeller, oturum bağlamına otomatik olarak alakalı kaynakları ekler.

Aşağıdaki tabloda, MCP sunucusunun kullanıma sunduğu kaynaklar listelenmiştir.

Bu bilgileri şu komutu kullanarak da görebilirsiniz:

npx firebase-tools@latest mcp --generate-resource-list
Kaynak Adı Açıklama
backend_init_guide Firebase Backend Init Guide: Kodlama aracısını, mevcut projede Firebase arka uç hizmetlerini yapılandırma konusunda yönlendirir.
ai_init_guide Firebase GenAI Init Guide: Kodlama aracına, Firebase'i kullanarak mevcut projede üretken yapay zeka özelliklerini yapılandırma konusunda yol gösterir.
data_connect_init_guide Firebase Data Connect Başlatma Kılavuzu: Kodlama aracına, mevcut projede PostgreSQL erişimi için Data Connect'i yapılandırma konusunda yol gösterir.
firestore_init_guide Firestore Init Guide: Kodlama aracısını, mevcut projede Firestore'u yapılandırma konusunda yönlendirir.
firestore_rules_init_guide Firestore Rules Init Guide: Kodlama aracına, projede Firestore güvenlik kurallarını ayarlama konusunda yol gösterir.
rtdb_init_guide Firebase Realtime Database Başlatma Kılavuzu: Kodlama aracına, mevcut projede Realtime Database'i yapılandırma konusunda yol gösterir.
auth_init_guide Firebase Authentication Başlatma Kılavuzu: Kodlama aracısına, mevcut projede Firebase Authentication'ı yapılandırma konusunda yol gösterir.
hosting_init_guide Firebase Hosting Dağıtım Kılavuzu: Kodlama aracısını, mevcut projede Firebase Hosting'e dağıtım konusunda yönlendirir.
belgeler Firebase belgeleri: Firebase belgelerinden düz metin içeriği yükler.Örneğin, https://firebase.google.com/docs/functions, firebase://docs/functions olur.