Puedes usar el servidor de MCP de Firebase para permitir que las herramientas de desarrollo potenciadas por IA trabajen con tus proyectos de Firebase y la base de código de tu app.
El servidor de MCP de Firebase funciona con cualquier herramienta que pueda actuar como cliente de MCP, incluidas las siguientes: Firebase Studio, Gemini CLI y Gemini Code Assist, Claude Code y Claude Desktop, Cline, Cursor, VS Code Copilot, Windsurf y muchas más.
Ir a las instrucciones de configuración
Beneficios del servidor de MCP
Un editor configurado para usar el servidor de MCP de Firebase puede usar sus capacidades de IA para ayudarte a hacer lo siguiente:
- Crea y administra proyectos de Firebase
- Administrar los usuarios de Firebase Authentication
- Trabaja con datos en Cloud Firestore y Firebase Data Connect
- Cómo recuperar esquemas de Firebase Data Connect
- Comprende tus reglas de seguridad para Firestore y Cloud Storage para Firebase
- Envía mensajes con Firebase Cloud Messaging
Algunas de las herramientas usan Gemini en Firebase para ayudarte a hacer lo siguiente:
- Generar esquemas y operaciones de Firebase Data Connect
- Consultar a Gemini sobre los productos de Firebase
Estas son solo listas parciales. Consulta la sección Funciones del servidor para obtener una lista completa de las herramientas disponibles para tu editor.
Configura tu cliente de MCP
El servidor de MCP de Firebase puede funcionar con cualquier cliente de MCP que admita E/S estándar (stdio) como medio de transporte.
Cuando el servidor de MCP de Firebase realiza llamadas a herramientas, usa las mismas credenciales de usuario que autorizan la CLI de Firebase en el entorno en el que se ejecuta, que pueden ser las credenciales de un usuario que accedió o credenciales predeterminadas de la aplicación, según el entorno.
Antes de comenzar
Asegúrate de tener una instalación funcional de Node.js y npm.
Configuración básica
A continuación, se incluyen instrucciones básicas de configuración para usar el servidor de MCP de Firebase con algunas herramientas populares de asistencia con IA:
Firebase Studio
Para configurar Firebase Studio para que use el servidor de MCP de Firebase, edita o crea el archivo de configuración: .idx/mcp.json
.
Si el archivo aún no existe, créalo haciendo clic con el botón derecho en el directorio principal y seleccionando Nuevo archivo. Agrega el siguiente contenido al archivo:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
CLI de Gemini
La forma recomendada de configurar la CLI de Gemini para que use el servidor de MCP de Firebase es instalar la extensión de Firebase para la CLI de Gemini:
gemini extensions install https://github.com/gemini-cli-extensions/firebase/
La instalación de la extensión de Firebase configura automáticamente el servidor de MCP de Firebase y también incluye un archivo de contexto que puede mejorar el rendimiento del desarrollo de apps de Firebase con Gemini.
Como alternativa, puedes configurar la CLI de Gemini para que use el servidor de MCP de Firebase (pero no el archivo de contexto de la extensión de Firebase) editando o creando uno de los archivos de configuración:
- En tu proyecto:
.gemini/settings.json
- En tu directorio principal:
~/.gemini/settings.json
Si el archivo aún no existe, créalo haciendo clic con el botón derecho en el directorio principal y seleccionando Nuevo archivo. Agrega el siguiente contenido al archivo:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Gemini Code Assist
La forma recomendada de configurar Gemini Code Assist para que use el servidor de MCP de Firebase es instalar la extensión de Firebase para la CLI de Gemini:
gemini extensions install https://github.com/gemini-cli-extensions/firebase/
La instalación de la extensión de Firebase configura automáticamente el servidor de MCP de Firebase y también incluye un archivo de contexto que puede mejorar el rendimiento del desarrollo de apps de Firebase con Gemini.
Como alternativa, puedes configurar Gemini Code Assist para que use el servidor de MCP de Firebase (pero no el archivo de contexto de la extensión de Firebase) editando o creando uno de los archivos de configuración:
- En tu proyecto:
.gemini/settings.json
- En tu directorio principal:
~/.gemini/settings.json
Si el archivo aún no existe, créalo haciendo clic con el botón derecho en el directorio principal y seleccionando Nuevo archivo. Agrega el siguiente contenido al archivo:
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Claude
Claude Code
Para configurar Claude Code para que use el servidor de MCP de Firebase, ejecuta el siguiente comando en la carpeta de tu app:
claude mcp add firebase npx -- -y firebase-tools@latest mcp
Para verificar la instalación, ejecuta el siguiente comando:
claude mcp list
Debería mostrar lo siguiente:
firebase: npx -y firebase-tools@latest mcp - ✓ Connected
Claude para computadoras de escritorio
Para configurar Claude Desktop para que use el servidor MCP de Firebase, edita el archivo claude_desktop_config.json
. Puedes abrir o crear este archivo desde el menú Claude > Configuración. Selecciona la pestaña Desarrollador y, luego, haz clic en Editar configuración.
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Cline
Para configurar Cline para que use el servidor MCP de Firebase, edita el archivo cline_mcp_settings.json
. Para abrir o crear este archivo, haz clic en el ícono de los servidores de MCP en la parte superior del panel de Cline y, luego, en el botón Configure MCP Servers.
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"],
"disabled": false
}
}
}
Cursor
Para configurar Cursor para que use el servidor de MCP de Firebase, edita el archivo .cursor/mcp.json
(para configurar solo un proyecto específico) o el archivo ~/.cursor/mcp.json
(para que el servidor de MCP esté disponible en todos los proyectos):
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
Copilot en VS Code
Para configurar un solo proyecto, edita el archivo .vscode/mcp.json
en tu espacio de trabajo:
"servers": {
"firebase": {
"type": "stdio",
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
Para que el servidor esté disponible en todos los proyectos que abras, edita la configuración del usuario:
"mcp": {
"servers": {
"firebase": {
"type": "stdio",
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
}
Windsurf
Para configurar Windsurf Editor, edita el archivo ~/.codeium/windsurf/mcp_config.json
:
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "mcp"]
}
}
Configuración opcional
Además de la configuración básica para cada cliente, que se mostró antes, hay dos parámetros opcionales que puedes especificar:
--dir ABSOLUTE_DIR_PATH
: Es la ruta de acceso absoluta de un directorio que contienefirebase.json
para establecer un contexto de proyecto para el servidor de MCP. Si no se especifica, las herramientasget_project_directory
yset_project_directory
estarán disponibles, y el directorio predeterminado será el directorio de trabajo en el que se inició el servidor MCP.--only FEATURE_1,FEATURE_2
: Es una lista de grupos de atributos separados por comas que se activarán. Úsalo para limitar las herramientas expuestas solo a las funciones que usas de forma activa. Ten en cuenta que las herramientas principales siempre están disponibles.
Por ejemplo:
"firebase": {
"command": "npx",
"args": [
"-y",
"firebase-tools@latest", "mcp",
"--dir", "/Users/turing/my-project",
"--only", "auth,firestore,storage"
]
}
Funciones del servidor de MCP
El servidor de MCP de Firebase proporciona tres categorías diferentes de funciones de MCP:
Instrucciones: Una biblioteca de instrucciones escritas previamente que puedes ejecutar. Están optimizadas para desarrollar y ejecutar una app con Firebase.
Herramientas: Es un conjunto de herramientas diseñadas para que los LLM las usen y que los ayudan a trabajar directamente con tu proyecto de Firebase (con tu aprobación).
Recursos: Son archivos de documentación destinados a ser utilizados por los LLM para brindarles más orientación y contexto para completar una tarea o un objetivo.
Instrucciones
El servidor de MCP de Firebase incluye una biblioteca de instrucciones prediseñadas y optimizadas para desarrollar y ejecutar una app con Firebase. Puedes ejecutar estas instrucciones para completar varias tareas o alcanzar objetivos comunes.
En la siguiente tabla, se describen las instrucciones que el servidor de MCP pone a disposición.
La mayoría de las herramientas de desarrollo que admiten MCP proporcionan alguna forma conveniente de ejecutar estas instrucciones. Por ejemplo, Gemini CLI pone estos mensajes disponibles como comandos de barra:
/firebase:init
En la CLI de Gemini, comienza a escribir /firebase:
para ver una lista de los comandos disponibles.
Nombre del mensaje | Grupo de funciones | Descripción |
---|---|---|
firebase:deploy | core | Usa este comando para implementar recursos en Firebase. Argumentos: <prompt> (opcional): Cualquier instrucción específica que desees proporcionar sobre la implementación |
firebase:init | core | Usa este comando para configurar los servicios de Firebase, como las funciones de IA y de backend. |
firebase:consult | core | Usa este comando para consultar Firebase Assistant con acceso a documentación detallada y actualizada sobre la plataforma de Firebase. Argumentos: <prompt>: Una pregunta para pasar al modelo de Gemini en Firebase |
crashlytics:connect | crashlytics | Accede a los datos de Crashlytics de una aplicación de Firebase. |
Herramientas
El servidor de MCP de Firebase también proporciona varias herramientas diseñadas para que las LLM las usen y que las ayudan a trabajar directamente con tu proyecto de Firebase (con tu aprobación). A diferencia de las instrucciones, no llamas a estas herramientas directamente, sino que los modelos que admiten llamadas a herramientas (como Gemini, Claude y GPT) pueden llamar automáticamente a estas herramientas para realizar tareas de desarrollo cuando sea necesario.
En la siguiente tabla, se describen las herramientas que el servidor de MCP pone a disposición.
Nombre de la herramienta | Grupo de funciones | Descripción |
---|---|---|
firebase_login | core | Se usa para acceder al usuario a Firebase CLI y al servidor de MCP de Firebase. Esto requiere una Cuenta de Google, y se requiere acceder para crear y trabajar con proyectos de Firebase. |
firebase_logout | core | Usa este comando para hacer que el usuario salga de Firebase CLI y del servidor de MCP de Firebase. |
firebase_validate_security_rules | core | Úsalo para verificar si hay errores de sintaxis y validación en las reglas de seguridad de Firebase para Firestore, Storage o Realtime Database. |
firebase_get_project | core | Úsalo para recuperar información sobre el proyecto de Firebase activo actualmente. |
firebase_list_apps | core | Úsalo para recuperar una lista de las apps de Firebase registradas en el proyecto de Firebase activo actualmente. Las apps de Firebase pueden ser para iOS, Android o la Web. |
firebase_list_projects | core | Usa este método para recuperar una lista de los proyectos de Firebase a los que tiene acceso el usuario que accedió. |
firebase_get_sdk_config | core | Úsalo para recuperar la información de configuración de Firebase para una app de Firebase. Debes especificar una plataforma O el ID de la app de Firebase para una app de Firebase registrada en el proyecto de Firebase activo actualmente. |
firebase_create_project | core | Se usa para crear un proyecto de Firebase nuevo. |
firebase_create_app | core | Úsalo para crear una nueva app de Firebase en el proyecto de Firebase activo. Las apps de Firebase pueden ser para iOS, Android o la Web. |
firebase_create_android_sha | core | Úsalo para agregar el hash del certificado SHA especificado a la app de Firebase para Android indicada. |
firebase_get_environment | core | Usa este comando para recuperar la configuración actual del entorno de Firebase para Firebase CLI y el servidor de MCP de Firebase, incluido el usuario autenticado actual, el directorio del proyecto, el proyecto de Firebase activo y mucho más. |
firebase_update_environment | core | Se usa para actualizar la configuración del entorno de Firebase CLI y el servidor de MCP de Firebase, como el directorio del proyecto, el proyecto activo, la cuenta de usuario activa, la aceptación de las condiciones del servicio y mucho más. Usa firebase_get_environment para ver el entorno configurado actualmente. |
firebase_init | core | Úsalo para inicializar los servicios de Firebase seleccionados en el espacio de trabajo (base de datos de Cloud Firestore, Firebase Data Connect, Firebase Realtime Database y Firebase AI Logic). Todos los servicios son opcionales. Especifica solo los productos que deseas configurar. Puedes inicializar funciones nuevas en un directorio de proyecto existente, pero volver a inicializar una función existente puede reemplazar la configuración. Para implementar las funciones inicializadas, ejecuta el comando firebase deploy después de la herramienta firebase_init . |
firebase_get_security_rules | core | Úsalo para recuperar las reglas de seguridad de un servicio de Firebase especificado. Si hay varias instancias de ese servicio en el producto, se devuelven las reglas de la instancia predeterminada. |
firebase_read_resources | core | Se usa para leer el contenido de los recursos firebase:// o enumerar los recursos disponibles. |
firestore_delete_document | firestore | Usa este método para borrar documentos de Firestore de una base de datos del proyecto actual por las rutas de acceso completas de los documentos. Úsala si conoces la ruta de acceso exacta de un documento. |
firestore_get_documents | firestore | Usa este método para recuperar uno o más documentos de Firestore de una base de datos del proyecto actual por las rutas de acceso completas de los documentos. Úsala si conoces la ruta de acceso exacta de un documento. |
firestore_list_collections | firestore | Úsalo para recuperar una lista de colecciones de una base de datos de Firestore en el proyecto actual. |
firestore_query_collection | firestore | Usa este método para recuperar uno o más documentos de Firestore de una colección que es una base de datos en el proyecto actual por una colección con una ruta de acceso completa del documento. Úsala si conoces la ruta de acceso exacta de una colección y la cláusula de filtrado que deseas para el documento. |
auth_get_users | auth | Úsalo para recuperar uno o más usuarios de Firebase Auth según una lista de UID o una lista de correos electrónicos. |
auth_update_user | auth | Usa este método para inhabilitar, habilitar o establecer un reclamo personalizado en la cuenta de un usuario específico. |
auth_set_sms_region_policy | auth | Usa este método para establecer una política de región de SMS para Firebase Authentication y restringir las regiones que pueden recibir mensajes de texto según una lista de códigos de país ALLOW o DENY. Esta política anulará cualquier política existente cuando se establezca. |
dataconnect_build | dataconnect | Úsalo para compilar esquemas, operaciones o conectores de Firebase Data Connect, y verificar si hay errores de compilación. |
dataconnect_generate_schema | dataconnect | Úsalo para generar un esquema de Firebase Data Connect basado en la descripción de una app que proporciona el usuario. |
dataconnect_generate_operation | dataconnect | Úsalo para generar una sola consulta o mutación de Firebase Data Connect según el esquema implementado actualmente y la instrucción proporcionada. |
dataconnect_list_services | dataconnect | Usa este comando para enumerar los servicios locales y de backend existentes de Firebase Data Connect |
dataconnect_execute | dataconnect | Úsalo para ejecutar una operación de GraphQL en un servicio de Data Connect o su emulador. |
storage_get_object_download_url | almacenamiento | Usa este método para recuperar la URL de descarga de un objeto en un bucket de Cloud Storage para Firebase. |
messaging_send_message | mensajería | Úsalo para enviar un mensaje a un tema o token de registro de Firebase Cloud Messaging. Solo se puede proporcionar UNO de registration_token o topic en una llamada específica. |
functions_get_logs | sin servidores | Usa este método para recuperar una página de entradas de registro de Cloud Functions con filtros avanzados de Google Cloud Logging. |
remoteconfig_get_template | remoteconfig | Úsalo para recuperar la plantilla de Firebase Remote Config especificada del proyecto de Firebase activo actualmente. |
remoteconfig_update_template | remoteconfig | Usa este método para publicar una nueva plantilla de Remote Config o revertir a una versión específica del proyecto. |
crashlytics_create_note | crashlytics | Agrega una nota a un problema de Crashlytics. |
crashlytics_delete_note | crashlytics | Borra una nota de un problema de Crashlytics. |
crashlytics_get_issue | crashlytics | Obtiene datos sobre un problema de Crashlytics, que se pueden usar como punto de partida para la depuración. |
crashlytics_list_events | crashlytics | Usa este método para enumerar los eventos más recientes que coinciden con los filtros proporcionados. Se puede usar para recuperar muestras de fallas y excepciones de un problema, que incluirán seguimientos de pila y otros datos útiles para la depuración. |
crashlytics_batch_get_events | crashlytics | Obtiene eventos específicos por nombre de recurso. Se puede usar para recuperar muestras de fallas y excepciones de un problema, que incluirán seguimientos de pila y otros datos útiles para la depuración. |
crashlytics_list_notes | crashlytics | Usa este método para enumerar todas las notas de un problema en Crashlytics. |
crashlytics_get_top_issues | crashlytics | Úsalo para contar eventos y usuarios afectados distintos, agrupados por problema. Los grupos se ordenan por recuento de eventos, en orden descendente. Solo cuenta los eventos que coinciden con los filtros especificados. |
crashlytics_get_top_variants | crashlytics | Cuenta los eventos y los usuarios afectados distintos, agrupados por variante del problema. Los grupos se ordenan por recuento de eventos, en orden descendente. Solo cuenta los eventos que coinciden con los filtros especificados. |
crashlytics_get_top_versions | crashlytics | Cuenta los eventos y los usuarios afectados distintos, agrupados por versión. Los grupos se ordenan por recuento de eventos, en orden descendente. Solo cuenta los eventos que coinciden con los filtros especificados. |
crashlytics_get_top_apple_devices | crashlytics | Cuenta los eventos y los usuarios afectados distintos, agrupados por dispositivo de Apple. Los grupos se ordenan por recuento de eventos, en orden descendente. Solo cuenta los eventos que coinciden con los filtros especificados. Solo es relevante para las aplicaciones de iOS, iPadOS y macOS. |
crashlytics_get_top_android_devices | crashlytics | Cuenta los eventos y los usuarios afectados distintos, agrupados por dispositivo Android. Los grupos se ordenan por recuento de eventos, en orden descendente. Solo cuenta los eventos que coinciden con los filtros especificados. Solo es pertinente para las aplicaciones para Android. |
crashlytics_get_top_operating_systems | crashlytics | Cuenta los eventos y los usuarios afectados distintos, agrupados por sistema operativo. Los grupos se ordenan por recuento de eventos, en orden descendente. Solo cuenta los eventos que coinciden con los filtros especificados. |
crashlytics_update_issue | crashlytics | Se usa para actualizar el estado del problema de Crashlytics. |
apphosting_fetch_logs | apphosting | Se usa para recuperar los registros más recientes de un backend de App Hosting especificado. Si se especifica buildLogs , se muestran los registros del proceso de compilación de la compilación más reciente. Los registros más recientes se muestran primero. |
apphosting_list_backends | apphosting | Usa este método para recuperar una lista de los backends de App Hosting en el proyecto actual. Una lista vacía significa que no hay backends. uri es la URL pública del backend. Un backend en funcionamiento tendrá un array managed_resources que contendrá una entrada run_service . Ese run_service.service es el nombre del recurso del servicio de Cloud Run que entrega el backend de App Hosting. El último segmento de ese nombre es el ID del servicio. domains es la lista de dominios asociados con el backend. Tienen el tipo CUSTOM o DEFAULT . Cada backend debe tener un dominio DEFAULT . El dominio real que un usuario usaría para conectarse al backend es el último parámetro del nombre del recurso de dominio. Si un dominio personalizado está configurado correctamente, tendrá estados que terminan en ACTIVE . |
realtimedatabase_get_data | realtimedatabase | Se usa para recuperar datos de la ubicación especificada en una base de datos en tiempo real de Firebase. |
realtimedatabase_set_data | realtimedatabase | Se usa para escribir datos en la ubicación especificada de una base de datos de Firebase Realtime Database. |
Recursos
El servidor de MCP proporciona recursos, que son archivos de documentación destinados al uso de los LLM. Los modelos que admiten el uso de recursos incluirán automáticamente los recursos pertinentes en el contexto de la sesión.
En la siguiente tabla, se describen los recursos que el servidor de MCP pone a disposición.
Nombre del recurso | Descripción |
---|---|
backend_init_guide | Guía de inicialización del backend de Firebase: Guía al agente de codificación para configurar los servicios de backend de Firebase en el proyecto actual |
ai_init_guide | Guía de inicio de Firebase GenAI: Guía al agente de codificación para configurar las capacidades de IA generativa en el proyecto actual con Firebase |
data_connect_init_guide | Guía de inicialización de Firebase Data Connect: Guía al agente de codificación para configurar el acceso de Data Connect a PostgreSQL en el proyecto actual |
firestore_init_guide | Guía de inicialización de Firestore: Guía al agente de codificación para configurar Firestore en el proyecto actual |
firestore_rules_init_guide | Guía de inicialización de reglas de Firestore: Guía al agente de codificación para configurar reglas de seguridad de Firestore en el proyecto |
rtdb_init_guide | Guía de inicialización de Firebase Realtime Database: Guía al agente de codificación para configurar Realtime Database en el proyecto actual |
auth_init_guide | Guía de inicio de Firebase Authentication: Guía al agente de codificación para configurar Firebase Authentication en el proyecto actual |
hosting_init_guide | Guía de implementación de Firebase Hosting: Guía al agente de codificación para implementar en Firebase Hosting en el proyecto actual |
docs | Firebase Docs: Carga contenido de texto sin formato desde la documentación de Firebase, p. ej., https://firebase.google.com/docs/functions se convierte en firebase://docs/functions . |