Skip to main content
Glama

Firebase MCP

Firebase MCP

Логотип проекта

Обзор

Firebase MCP позволяет помощникам на базе искусственного интеллекта работать напрямую со службами Firebase, включая:

  • Firestore : Операции с базой данных документов
  • Хранилище : управление файлами с надежными возможностями загрузки
  • Аутентификация : управление пользователями и проверка

Сервер работает с клиентскими приложениями MCP, такими как Claude Desktop , Augment Code , VS Code и Cursor .

⚠️ Известная проблема : инструмент firestore_list_collections может возвращать ошибку проверки Zod в клиентских журналах. Это ошибочная ошибка проверки в MCP SDK, поскольку наше расследование подтвердило, что в ответе нет булевых значений. Несмотря на сообщение об ошибке, запрос по-прежнему работает правильно и возвращает правильные данные коллекции. Это ошибка уровня журнала, которая не влияет на функциональность.

⚡ Быстрый старт

Предпосылки

  • Проект Firebase с учетными данными сервисной учетной записи
  • Среда Node.js

1. Установите MCP-сервер

Добавьте конфигурацию сервера в файл настроек MCP:

  • Рабочий стол Клода: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Дополнение: ~/Library/Application Support/Code/User/settings.json
  • Курсор: [project root]/.cursor/mcp.json

MCP-серверы можно устанавливать вручную или во время выполнения через npx (рекомендуется). Способ установки определяет вашу конфигурацию:

Настроить для npx (рекомендуется)
{ "firebase-mcp": { "command": "npx", "args": [ "-y", "@gannonh/firebase-mcp" ], "env": { "SERVICE_ACCOUNT_KEY_PATH": "/absolute/path/to/serviceAccountKey.json", "FIREBASE_STORAGE_BUCKET": "your-project-id.firebasestorage.app" } } }
Настроить для локальной установки
{ "firebase-mcp": { "command": "node", "args": [ "/absolute/path/to/firebase-mcp/dist/index.js" ], "env": { "SERVICE_ACCOUNT_KEY_PATH": "/absolute/path/to/serviceAccountKey.json", "FIREBASE_STORAGE_BUCKET": "your-project-id.firebasestorage.app" } } }

2. Проверьте установку

Попросите своего клиента ИИ: «Пожалуйста, протестируйте все инструменты Firebase MCP».

🛠️ Настройка и конфигурирование

1. Конфигурация Firebase

  1. Перейдите в Firebase Console → Настройки проекта → Учетные записи служб.
  2. Нажмите «Сгенерировать новый закрытый ключ».
  3. Сохраните файл JSON в надежном месте

2. Переменные среды

Необходимый
  • SERVICE_ACCOUNT_KEY_PATH : путь к ключу учетной записи службы Firebase в формате JSON (обязательно)
Необязательный
  • FIREBASE_STORAGE_BUCKET : Имя контейнера для Firebase Storage (по умолчанию [projectId].appspot.com )
  • MCP_TRANSPORT : тип используемого транспорта ( stdio или http ) (по умолчанию stdio )
  • MCP_HTTP_PORT : Порт для HTTP-транспорта (по умолчанию 3000 )
  • MCP_HTTP_HOST : Хост для HTTP-транспорта (по умолчанию localhost )
  • MCP_HTTP_PATH : Путь для HTTP-транспорта (по умолчанию /mcp )
  • DEBUG_LOG_FILE : Включить ведение журнала файлов:
    • Установите значение true для записи в ~/.firebase-mcp/debug.log
    • Укажите путь к файлу для записи журнала в пользовательское местоположение

3. Интеграция клиента

Клод Десктоп

Редактировать: ~/Library/Application Support/Claude/claude_desktop_config.json

VS Code / Дополнение

Редактировать: ~/Library/Application Support/Code/User/settings.json

Курсор

Редактировать: [project root]/.cursor/mcp.json

📚 API-ссылка

Инструменты для пожаротушения

ИнструментОписаниеТребуемые параметры
firestore_add_documentДобавить документ в коллекциюcollection data
firestore_list_documentsСписок документов с фильтрациейcollection
firestore_get_documentПолучить конкретный документcollection , id
firestore_update_documentОбновить существующий документcollection , id , data
firestore_delete_documentУдалить документcollection , id
firestore_list_collectionsСписок корневых коллекцийНикто
firestore_query_collection_groupЗапрос по подколлекциямcollectionId

Инструменты для хранения

ИнструментОписаниеТребуемые параметры
storage_list_filesСписок файлов в каталогеНет (необязательно: directoryPath )
storage_get_file_infoПолучить метаданные файла и URLfilePath
storage_uploadЗагрузить файл из контентаfilePath , content
storage_upload_from_urlЗагрузить файл с URLfilePath , url

Инструменты аутентификации

ИнструментОписаниеТребуемые параметры
auth_get_userПолучить пользователя по ID или адресу электронной почтыidentifier

💻 Руководство разработчика

Монтаж и строительство

git clone https://github.com/gannonh/firebase-mcp cd firebase-mcp npm install npm run build

Проведение тестов

Сначала установите и запустите эмуляторы Firebase:

npm install -g firebase-tools firebase init emulators firebase emulators:start

Затем проведите тесты:

# Run tests with emulator npm run test:emulator # Run tests with coverage npm run test:coverage:emulator

Структура проекта

src/ ├── index.ts # Server entry point ├── utils/ # Utility functions └── lib/ └── firebase/ # Firebase service clients ├── authClient.ts # Authentication operations ├── firebaseConfig.ts # Firebase configuration ├── firestoreClient.ts # Firestore operations └── storageClient.ts # Storage operations

🌐 HTTP-транспорт

Firebase MCP теперь поддерживает HTTP-транспорт в дополнение к stdio-транспорту по умолчанию. Это позволяет запускать сервер как автономную HTTP-службу, к которой могут обращаться несколько клиентов.

Работает с HTTP-транспортом

Чтобы запустить сервер с HTTP-транспортом:

# Using environment variables MCP_TRANSPORT=http MCP_HTTP_PORT=3000 node dist/index.js # Or with npx MCP_TRANSPORT=http MCP_HTTP_PORT=3000 npx @gannonh/firebase-mcp

Конфигурация клиента для HTTP

При использовании HTTP-транспорта настройте клиент MCP для подключения к конечной точке HTTP:

{ "firebase-mcp": { "url": "http://localhost:3000/mcp" } }

Управление сеансом

HTTP-транспорт поддерживает управление сеансами, позволяя нескольким клиентам подключаться к одному и тому же экземпляру сервера. Каждый клиент получает уникальный идентификатор сеанса, который используется для поддержания состояния между запросами.

🔍 Устранение неполадок

Общие проблемы

Контейнер для хранения не найден

Если вы видите ошибку «Указанный контейнер не существует»:

  1. Проверьте имя вашего контейнера в Firebase Console → Storage
  2. Установите правильное имя контейнера в переменной среды FIREBASE_STORAGE_BUCKET
Инициализация Firebase не удалась

Если вы видите ошибку «Firebase не инициализирован»:

  1. Проверьте правильность и полноту пути к ключу учетной записи службы.
  2. Убедитесь, что учетная запись службы имеет необходимые разрешения для служб Firebase.
Требуется составной индекс

Если вы получили сообщение об ошибке «Для этого запроса требуется составной индекс»:

  1. Найдите указанный URL в сообщении об ошибке.
  2. Перейдите по ссылке, чтобы создать необходимый индекс в Firebase Console.
  3. Повторите запрос после создания индекса (это может занять несколько минут)
Ошибка проверки Zod с firestore_list_collections

Если вы видите ошибку проверки Zod с сообщением «Ожидаемый объект, получено логическое значение» при использовании инструмента firestore_list_collections :

⚠️ Известная проблема : инструмент firestore_list_collections может возвращать ошибку проверки Zod в клиентских журналах. Это ошибочная ошибка проверки в MCP SDK, поскольку наше расследование подтвердило, что в ответе нет булевых значений. Несмотря на сообщение об ошибке, запрос по-прежнему работает правильно и возвращает правильные данные коллекции. Это ошибка уровня журнала, которая не влияет на функциональность.

Отладка

Включить ведение журнала файлов

Для диагностики проблем вы можете включить ведение журнала файлов:

# Log to default location (~/.firebase-mcp/debug.log) DEBUG_LOG_FILE=true npx @gannonh/firebase-mcp # Log to a custom location DEBUG_LOG_FILE=/path/to/custom/debug.log npx @gannonh/firebase-mcp

Вы также можете включить ведение журнала в конфигурации клиента MCP:

{ "firebase-mcp": { "command": "npx", "args": ["-y", "@gannonh/firebase-mcp"], "env": { "SERVICE_ACCOUNT_KEY_PATH": "/path/to/serviceAccountKey.json", "FIREBASE_STORAGE_BUCKET": "your-project-id.firebasestorage.app", "DEBUG_LOG_FILE": "true" } } }
Просмотр журнала в реальном времени

Для просмотра журналов в режиме реального времени:

# Using tail to follow the log file tail -f ~/.firebase-mcp/debug.log # Using a split terminal to capture stderr npm start 2>&1 | tee logs.txt
Использование MCP-инспектора

MCP Inspector обеспечивает интерактивную отладку:

# Install MCP Inspector npm install -g @mcp/inspector # Connect to your MCP server mcp-inspector --connect stdio --command "node ./dist/index.js"

📋 Форматирование ответа

Пример ответа на загрузку хранилища

{ "name": "reports/quarterly.pdf", "size": "1024000", "contentType": "application/pdf", "updated": "2025-04-11T15:37:10.290Z", "downloadUrl": "https://storage.googleapis.com/bucket/reports/quarterly.pdf?alt=media", "bucket": "your-project.appspot.com" }

Отображается пользователю как:

## File Successfully Uploaded! 📁 Your file has been uploaded to Firebase Storage: **File Details:** - **Name:** reports/quarterly.pdf - **Size:** 1024000 bytes - **Type:** application/pdf - **Last Updated:** April 11, 2025 at 15:37:10 UTC **[Click here to download your file](https://storage.googleapis.com/bucket/reports/quarterly.pdf?alt=media)**

🤝 Вклад

  1. Форк репозитория
  2. Создать ветку функций
  3. Внедрение изменений с помощью тестов (требуется покрытие 80%+)
  4. Отправить запрос на извлечение

📄 Лицензия

Лицензия MIT — подробности см. в файле LICENSE

🔗 Связанные ресурсы

Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Сервер Firebase MCP предоставляет стандартизированный интерфейс для взаимодействия со службами Firebase, включая Firebase Authentication, Firestore и Firebase Storage.

  1. Обзор
    1. ⚡ Быстрый старт
      1. Предпосылки
      2. Установите MCP-сервер
      3. Проверьте установку
    2. 🛠️ Настройка и конфигурирование
      1. Конфигурация Firebase
      2. Переменные среды
      3. Интеграция клиента
    3. 📚 API-ссылка
      1. Инструменты для пожаротушения
      2. Инструменты для хранения
      3. Инструменты аутентификации
    4. 💻 Руководство разработчика
      1. Монтаж и строительство
      2. Проведение тестов
      3. Структура проекта
    5. 🌐 HTTP-транспорт
      1. Работает с HTTP-транспортом
      2. Конфигурация клиента для HTTP
      3. Управление сеансом
    6. 🔍 Устранение неполадок
      1. Общие проблемы
      2. Отладка
    7. 📋 Форматирование ответа
      1. Пример ответа на загрузку хранилища
    8. 🤝 Вклад
      1. 📄 Лицензия
        1. 🔗 Связанные ресурсы

          Related MCP Servers

          • -
            security
            F
            license
            -
            quality
            An MCP server that provides access to Firebase Remote Config, allowing clients to interact with and manage Firebase remote configuration settings through the Model Context Protocol.
            Last updated -
            TypeScript
          • -
            security
            F
            license
            -
            quality
            Auto-generated MCP server that enables interaction with the Firebase App Distribution API, allowing users to manage distribution of pre-release app builds to testers through natural language commands.
            Last updated -
            Python
          • -
            security
            F
            license
            -
            quality
            An MCP Server providing access to Google's Firebase API, allowing natural language interaction with Firebase services and resources.
            Last updated -
            Python
            • Linux
            • Apple

          View all related MCP servers

          MCP directory API

          We provide all the information about MCP servers via our MCP API.

          curl -X GET 'https://glama.ai/api/mcp/v1/servers/gannonh/firebase-mcp'

          If you have feedback or need assistance with the MCP directory API, please join our Discord server