Serwer MCP Firebase

Możesz użyć serwera Firebase MCP, aby umożliwić narzędziom deweloperskim opartym na AI pracę z Twoimi projektami Firebase. Serwer MCP Firebase współpracuje z każdym narzędziem, które może pełnić rolę klienta MCP, w tym z Claude Desktop, Cline, Cursorem, Visual Studio Code Copilot, Windsurf Editor i innymi.

Edytor skonfigurowany do korzystania z serwera MCP Firebase może używać funkcji AI, aby:

  • Tworzenie projektów Firebase i zarządzanie nimi
  • Zarządzanie użytkownikami Uwierzytelniania Firebase
  • Praca z danymi w Cloud Firestore i Firebase Data Connect
  • Pobieranie schematów Firebase Data Connect
  • Poznaj reguły zabezpieczeń Firestore i Cloud Storage dla Firebase
  • Wysyłanie wiadomości za pomocą Komunikacji w chmurze Firebase

Niektóre narzędzia korzystają z Gemini w Firebase, aby Ci pomóc:

  • Generowanie schematu i operacji Firebase Data Connect
  • Konsultowanie się z Gemini w sprawie usług Firebase

To tylko częściowe listy. Pełną listę narzędzi dostępnych w edytorze znajdziesz w sekcji Możliwości serwera.

Gdy serwer Firebase MCP wykonuje wywołania narzędzi, używa tych samych danych logowania użytkownika, które autoryzują interfejs CLI Firebase w środowisku, w którym jest uruchomiony. Może to być zalogowany użytkownik lub domyślne dane logowania aplikacji w zależności od środowiska.

Zanim zaczniesz

Sprawdź, czy masz działającą instalację Node.js i npm.

Konfigurowanie klienta MCP

Serwer MCP Firebase może współpracować z dowolnym klientem MCP, który obsługuje standardowe wejście/wyjście (stdio) jako medium transmisji. Poniżej znajdziesz szczegółowe instrukcje dotyczące niektórych popularnych narzędzi:

Podstawowa konfiguracja

Firebase Studio

Aby skonfigurować Firebase Studio do korzystania z serwera Firebase MCP, zmień lub utwórz plik konfiguracyjny: .idx/mcp.json.

Jeśli plik jeszcze nie istnieje, utwórz go, klikając prawym przyciskiem myszy katalog nadrzędny i wybierając Nowy plik. Dodaj do pliku te wiersze:

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

Interfejs wiersza poleceń Gemini i Gemini Code Assist

Aby skonfigurować interfejs wiersza poleceń Gemini lub Gemini Code Assist do korzystania z serwera Firebase MCP, edytuj lub utwórz pliki konfiguracyjne:

  • W projekcie: .gemini/settings.json
  • W katalogu głównym: ~/.gemini/settings.json

Jeśli plik jeszcze nie istnieje, utwórz go, klikając prawym przyciskiem myszy katalog nadrzędny i wybierając Nowy plik. Dodaj do pliku te wiersze:

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

Claude Desktop

Aby skonfigurować Claude Desktop do korzystania z serwera MCP Firebase, edytuj plik claude_desktop_config.json. Możesz otworzyć lub utworzyć ten plik w menu Claude > Ustawienia. Kliknij kolejno kartę DeweloperEdytuj konfigurację.

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

Claude Code

Aby skonfigurować Claude Code do korzystania z serwera Firebase MCP, uruchom to polecenie w folderze aplikacji:

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

Aby sprawdzić instalację, uruchom polecenie:

claude mcp list

Powinny się w nim znajdować:

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

Cline

Aby skonfigurować Cline tak, aby używał serwera MCP Firebase, zmień plik cline_mcp_settings.json. Aby otworzyć lub utworzyć ten plik, kliknij ikonę serwerów MCP u góry panelu Cline, a potem kliknij przycisk Skonfiguruj serwery MCP.

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

Kursor

Aby skonfigurować Cursor do korzystania z serwera MCP Firebase, zmień plik .cursor/mcp.json (aby skonfigurować tylko konkretny projekt) lub plik ~/.cursor/mcp.json (aby udostępnić serwer MCP we wszystkich projektach):

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

Visual Studio Code Copilot

Aby skonfigurować jeden projekt, otwórz do edycji plik .vscode/mcp.json w obszarze roboczym:

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

Aby serwer był dostępny w każdym otwieranym projekcie, edytuj ustawienia użytkownika:

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

Edytujący windsurfing

Aby skonfigurować edytor Windsurf, zmodyfikuj plik~/.codeium/windsurf/mcp_config.json:

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

Konfiguracja opcjonalna

Oprócz podstawowej konfiguracji każdego klienta, która została pokazana wcześniej, możesz określić 2 parametry opcjonalne:

  • --dir ABSOLUTE_DIR_PATH: ścieżka bezwzględna do katalogu zawierającego firebase.json, aby ustawić kontekst projektu dla serwera MCP. Jeśli nie określono inaczej, dostępne stają się narzędzia get_project_directoryset_project_directory, a domyślnym katalogiem będzie katalog roboczy, w którym uruchomiono serwer MCP.

  • --only FEATURE_1,FEATURE_2: lista grup funkcji do aktywowania rozdzielona przecinkami. Użyj tej opcji, aby ograniczyć liczbę narzędzi do tych funkcji, z których aktywnie korzystasz. Pamiętaj, że podstawowe narzędzia są zawsze dostępne.

Przykład:

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

Możliwości serwera MCP

W tabeli poniżej znajdziesz listę narzędzi udostępnianych przez serwer MCP. Te informacje możesz też sprawdzić za pomocą polecenia:

npx firebase-tools@latest experimental:mcp --generate-tool-list
Nazwa narzędzia Grupa cech Opis
firebase_login jądro Loguje użytkownika w wierszu poleceń Firebase i na serwerze MCP.
firebase_logout jądro Wylogowywanie wiersza poleceń z Firebase
firebase_get_project jądro Pobiera informacje o aktualnie aktywnym projekcie Firebase.
firebase_list_apps jądro Pobiera aplikacje zarejestrowane w bieżącym projekcie Firebase.
firebase_get_admin_sdk_config jądro Pobiera konfigurację pakietu Admin SDK dla bieżącego projektu.
firebase_list_projects jądro Pobiera listę projektów Firebase do określonej łącznej liczby.
firebase_get_sdk_config jądro Pobiera informacje o konfiguracji pakietu SDK Firebase na potrzeby określonej platformy. Musisz określić platformę lub app_id.
firebase_create_project jądro Tworzy nowy projekt Firebase.
firebase_create_app jądro Tworzy nową aplikację w projekcie Firebase na potrzeby internetu, iOS lub Androida.
firebase_create_android_sha jądro Dodaje do istniejącej aplikacji na Androida skrót certyfikatu SHA.
firebase_consult_assistant jądro Dostęp do asystenta AI specjalizującego się we wszystkich aspektach Firebase. Za pomocą tego narzędzia możesz uzyskać szczegółowe informacje, sprawdzone metody, instrukcje rozwiązywania problemów, przykłady kodupomoc kontekstową dotyczącą usług, funkcji i konfiguracji projektów Firebase. Obejmuje to pytania dotyczące Firestore, Uwierzytelniania, Cloud Functions, Hostingu, Pamięci, Analytics i innych usług. Może też dostarczać statystyk na podstawie bieżącego kontekstu projektu Firebase.
firebase_get_environment jądro Pobiera informacje o bieżącym środowisku Firebase, w tym o bieżącym uwierzytelnionym użytkowniku, katalogu projektu, aktywnym projekcie i innych elementach.
firebase_update_environment jądro Aktualizuje konfigurację środowiska Firebase, np. katalog projektu, aktywny projekt, aktywne konto użytkownika itp. Użyj firebase_get_environment, aby wyświetlić aktualnie skonfigurowane środowisko.
firebase_init jądro Inicjuje wybrane usługi Firebase w obszarze roboczym (Firestore, Data Connect, Baza danych czasu rzeczywistego). Wszystkie funkcje są opcjonalne. Podaj tylko produkty, które chcesz skonfigurować. Nowe funkcje możesz zainicjować w istniejącym katalogu projektu, ale ponowne zainicjowanie istniejącej funkcji może spowodować nadpisanie konfiguracji. Aby wdrożyć zainicjowane funkcje, uruchom polecenie firebase deploy po narzędziu firebase_init.
firestore_delete_document firestore Usuwa dokumenty Firestore z bazy danych w bieżącym projekcie według pełnych ścieżek dokumentów. Użyj tej opcji, jeśli znasz dokładną ścieżkę dokumentu.
firestore_get_documents firestore Pobiera co najmniej 1 dokument Firestore z bazy danych w bieżącym projekcie za pomocą pełnych ścieżek do dokumentów. Użyj tej opcji, jeśli znasz dokładną ścieżkę dokumentu.
firestore_list_collections firestore Pobiera listę kolekcji z bazy danych Firestore w bieżącym projekcie.
firestore_query_collection firestore Pobiera co najmniej 1 dokument Firestore z kolekcji w bazie danych w bieżącym projekcie za pomocą kolekcji z pełną ścieżką do dokumentu. Użyj tej opcji, jeśli znasz dokładną ścieżkę kolekcji i klauzulę filtrowania, której chcesz użyć w przypadku dokumentu.
firestore_get_rules firestore Pobiera aktywne reguły zabezpieczeń Firestore dla bieżącego projektu.
firestore_validate_rules firestore Sprawdza podany kod źródłowy reguł Firestore pod kątem błędów składniowych i weryfikacyjnych. Podaj KOD ŹRÓDŁOWY do zweryfikowania LUB ścieżkę do pliku źródłowego.
auth_get_user autoryzacja Pobiera użytkownika na podstawie adresu e-mail, numeru telefonu lub identyfikatora UID.
auth_disable_user autoryzacja Włącza lub wyłącza użytkownika na podstawie identyfikatora UID.
auth_list_users autoryzacja Pobiera wszystkich użytkowników w projekcie do określonego limitu.
auth_set_claim autoryzacja Ustawia niestandardowe roszczenie na koncie konkretnego użytkownika. Użyj tej funkcji, aby utworzyć zaufane wartości powiązane z użytkownikiem, np. oznaczyć go jako administratora. Roszczenia mają ograniczony rozmiar, a ich nazwa i wartość powinny być zwięzłe. Określ TYLKO JEDEN z parametrów value lub json_value.
auth_set_sms_region_policy autoryzacja Ustawia zasady regionu SMS-ów dla usługi Firebase Auth, aby ograniczyć regiony, które mogą otrzymywać SMS-y, na podstawie listy kodów krajów ALLOW lub DENY. Po skonfigurowaniu ta zasada zastępuje wszystkie dotychczasowe zasady.
dataconnect_build dataconnect Użyj tego polecenia, aby skompilować schemat, operacje lub konektory Firebase Data Connect i sprawdzić, czy nie ma błędów kompilacji.
dataconnect_generate_schema dataconnect Generuje schemat Firebase Data Connect na podstawie opisu aplikacji podanego przez użytkownika.
dataconnect_generate_operation dataconnect Generuje pojedyncze zapytanie lub mutację Firebase Data Connect na podstawie aktualnie wdrożonego schematu i podanego prompta.
dataconnect_list_services dataconnect Wyświetlanie listy istniejących lokalnych i backendowych usług Firebase Data Connect
dataconnect_execute dataconnect Wykonuje operację GraphQL na usłudze Data Connect lub jej emulatorze.
storage_get_rules magazynowanie Pobiera aktywne reguły zabezpieczeń usługi Storage dla bieżącego projektu.
storage_validate_rules magazynowanie Sprawdza podane źródło reguł Storage pod kątem błędów składni i weryfikacji. Podaj KOD ŹRÓDŁOWY do zweryfikowania LUB ścieżkę do pliku źródłowego.
storage_get_object_download_url magazynowanie Pobiera adres URL pobierania obiektu w Firebase Storage.
messaging_send_message wiadomości, Wysyła wiadomość na token rejestracyjny lub temat Komunikacji w chmurze Firebase. W ramach jednego wywołania można podać TYLKO JEDNĄ z wartości registration_token lub topic.
remoteconfig_get_template remoteconfig Pobiera szablon Zdalnej konfiguracji dla projektu.
remoteconfig_publish_template remoteconfig Publikuje nowy szablon Zdalnej konfiguracji dla projektu.
remoteconfig_rollback_template remoteconfig Cofanie do określonej wersji szablonu Zdalnej konfiguracji w projekcie
crashlytics_add_note crashlytics Dodawanie notatki do problemu z Crashlytics.
crashlytics_delete_note crashlytics Usuwanie notatki z problemu w Crashlytics.
crashlytics_get_issue_details crashlytics Pobiera szczegółowe informacje o konkretnym problemie w Crashlytics.
crashlytics_get_sample_crash_for_issue crashlytics Pobiera przykładowy błąd aplikacji związany z problemem.
crashlytics_list_notes crashlytics Wyświetla listę wszystkich notatek dotyczących problemu w Crashlytics.
crashlytics_list_top_devices crashlytics Wyświetlanie listy najpopularniejszych urządzeń z Crashlytics dla aplikacji.
crashlytics_list_top_issues crashlytics Wyświetl listę najczęstszych awarii w aplikacji na podstawie danych z Crashlytics.
crashlytics_list_top_operating_systems crashlytics Wyświetl listę najpopularniejszych systemów operacyjnych z Crashlytics dla danej aplikacji.
crashlytics_list_top_versions crashlytics Wyświetl najpopularniejsze wersje aplikacji z Crashlytics.
crashlytics_update_issue crashlytics Aktualizowanie stanu problemu w Crashlytics.
apphosting_fetch_logs apphosting Pobiera najnowsze logi określonego backendu hostingu aplikacji. Jeśli podano wartość buildLogs, zwracane są dzienniki z procesu kompilacji najnowszej wersji. Najnowsze logi są wyświetlane jako pierwsze.
apphosting_list_backends apphosting Pobiera listę backendów App Hosting w bieżącym projekcie. Pusta lista oznacza, że nie ma backendów. uri to publiczny adres URL backendu. Działający backend będzie miał tablicę managed_resources, która będzie zawierać wpis run_service. run_service.service to nazwa zasobu usługi Cloud Run obsługującej backend hostingu aplikacji. Ostatni segment tej nazwy to identyfikator usługi. domains to lista domen powiązanych z backendem. Mogą być typu CUSTOM lub DEFAULT. Każdy backend powinien mieć domenę DEFAULT. Ostatni parametr nazwy zasobu domeny to rzeczywista domena, której użytkownik używa do łączenia się z backendem. Jeśli domena niestandardowa jest prawidłowo skonfigurowana, jej stan będzie kończyć się na ACTIVE.
database_get_data baza danych Zwraca dane Bazy danych czasu rzeczywistego z określonej lokalizacji.
database_set_data baza danych Zapisuje dane RTDB w określonej lokalizacji
database_get_rules baza danych Pobieranie reguł bazy danych RTDB
database_validate_rules baza danych Sprawdza reguły bazy danych RTDB