Puedes usar el servidor de MCP de Firebase para permitir que las herramientas de desarrollo potenciadas por IA trabajen con tus proyectos de Firebase. El servidor de MCP de Firebase funciona con cualquier herramienta que pueda actuar como cliente de MCP, como Claude Desktop, Cline, Cursor, Visual Studio Code Copilot, Windsurf Editor y muchas más.
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.
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.
Ejecuta el siguiente comando para autenticar Firebase CLI:
npx -y firebase-tools@latest login --reauth
El servidor de MCP de Firebase usa la CLI para controlar la autenticación con tus proyectos de Firebase. Debes autenticarte con la CLI antes de usar el servidor de MCP. Si intentas usar el servidor sin acceder o si caducó tu token de autenticación, el servidor imprimirá un mensaje de error que te pedirá que vuelvas a autenticarte.
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. Estas son instrucciones específicas para algunas herramientas populares:
Configuración básica
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", "experimental: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 cliente y, luego, en el botón Configure MCP Servers.
{
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental: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", "experimental:mcp"]
}
}
Firebase Studio
Para configurar Firebase Studio para que use el servidor de MCP de Firebase, edita o crea los archivos de configuración:
- El chat de Gemini en Firebase usa
.idx/mcp.json
. - La CLI de Gemini usa
.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", "experimental:mcp"]
}
}
}
Copiloto de Visual Studio 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", "experimental: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", "experimental:mcp"]
}
}
}
Editor de Windsurf
Para configurar Windsurf Editor, edita el archivo ~/.codeium/windsurf/mcp_config.json
:
"mcpServers": {
"firebase": {
"command": "npx",
"args": ["-y", "firebase-tools@latest", "experimental: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", "experimental:mcp",
"--dir", "/Users/turing/my-project",
"--only", "auth,firestore,storage"
]
}
Funciones del servidor de MCP
Nombre de la herramienta | Grupo de funciones | Descripción |
---|---|---|
firebase_get_project | core | Recupera información sobre el proyecto de Firebase activo actualmente. |
firebase_list_apps | core | Recupera las apps registradas en el proyecto de Firebase actual. |
firebase_get_admin_sdk_config | core | Obtiene la configuración del SDK de Admin para el proyecto actual. |
firebase_list_projects | core | Recupera una lista de proyectos de Firebase hasta el recuento total especificado. |
firebase_get_sdk_config | core | Recupera la información de configuración del SDK de Firebase para la plataforma especificada. Debes especificar una plataforma o un app_id. |
firebase_create_project | core | Crea un proyecto de Firebase nuevo. |
firebase_create_app | core | Crea una app nueva en tu proyecto de Firebase para la Web, iOS o Android. |
firebase_create_android_sha | core | Agrega un hash de certificado SHA a una app para Android existente. |
firebase_consult_assistant | core | Envía una pregunta a un asistente de IA mejorado específicamente para responder preguntas sobre Firebase. |
firebase_get_environment | core | Recupera información sobre el entorno de Firebase actual, incluido el usuario autenticado actual, el directorio del proyecto, el proyecto activo y mucho más. |
firebase_update_environment | core | Actualiza la configuración del entorno de Firebase, como el directorio del proyecto, el proyecto activo, la cuenta de usuario activa y mucho más. Usa firebase_get_environment para ver el entorno configurado actualmente. |
firebase_init | core | Inicializa las funciones de Firebase seleccionadas en el espacio de trabajo (Firestore, Data Connect y Realtime Database). Todas las funciones son opcionales. Proporciona 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 . |
firestore_delete_document | firestore | Borra 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 | Recupera 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 | Recupera una lista de colecciones de una base de datos de Firestore en el proyecto actual. |
firestore_query_collection | firestore | Recupera 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. |
firestore_get_rules | firestore | Recupera las reglas de seguridad activas de Firestore para el proyecto actual. |
firestore_validate_rules | firestore | Verifica la fuente de reglas de Firestore proporcionada en busca de errores de sintaxis y validación. Proporciona O el código fuente para validar O una ruta de acceso a un archivo de origen. |
auth_get_user | auth | Recupera un usuario según una dirección de correo electrónico, un número de teléfono o un UID. |
auth_disable_user | auth | Inhabilita o habilita un usuario según un UID. |
auth_list_users | auth | Recupera todos los usuarios del proyecto hasta el límite especificado. |
auth_set_claim | auth | Establece un reclamo personalizado en la cuenta de un usuario específico. Se usa para crear valores de confianza asociados con un usuario, p. ej., marcarlo como administrador. Los reclamos tienen un tamaño limitado y deben ser concisos en el nombre y el valor. Especifica SOLO UNO DE LOS PARÁMETROS value o json_value . |
auth_set_sms_region_policy | auth | Establece una política de región de SMS para Firebase Auth para 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_list_services | dataconnect | Muestra una lista de los servicios de Firebase Data Connect disponibles en el proyecto actual. |
dataconnect_generate_schema | dataconnect | Genera un esquema de Firebase Data Connect basado en la descripción de una app que proporciona el usuario. |
dataconnect_generate_operation | dataconnect | Genera una sola consulta o mutación de Firebase Data Connect según el esquema implementado actualmente y la instrucción proporcionada. |
dataconnect_get_schema | dataconnect | Recupera información sobre el esquema de Firebase Data Connect en el proyecto, incluidas las fuentes de datos de Cloud SQL y el esquema de GraphQL que describe el modelo de datos. |
dataconnect_get_connectors | dataconnect | Obtén los conectores de Firebase Data Connect en el proyecto, que incluyen las consultas de GraphQL predefinidas a las que pueden acceder los SDKs de cliente. |
dataconnect_execute_graphql | dataconnect | Ejecuta una GraphQL arbitraria en un servicio de Data Connect o su emulador. |
dataconnect_execute_graphql_read | dataconnect | Ejecuta una consulta de GraphQL arbitraria en un servicio de Data Connect o su emulador. No se pueden escribir datos. |
dataconnect_execute_mutation | dataconnect | Ejecuta una mutación de Data Connect implementada en un servicio o su emulador. Puede leer y escribir datos. |
dataconnect_execute_query | dataconnect | Ejecuta una consulta de Data Connect implementada en un servicio o su emulador. No se pueden escribir datos. |
storage_get_rules | almacenamiento | Recupera las reglas de seguridad de Storage activas para el proyecto actual. |
storage_validate_rules | almacenamiento | Comprueba la fuente de reglas de almacenamiento proporcionada en busca de errores de sintaxis y validación. Proporciona O el código fuente para validar O una ruta de acceso a un archivo de origen. |
storage_get_object_download_url | almacenamiento | Recupera la URL de descarga de un objeto en Firebase Storage. |
messaging_send_message | mensajería | Envía 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. |
remoteconfig_get_template | remoteconfig | Recupera una plantilla de Remote Config para el proyecto |
remoteconfig_publish_template | remoteconfig | Publica una nueva plantilla de Remote Config para el proyecto. |
remoteconfig_rollback_template | remoteconfig | Cómo revertir a una versión específica de la plantilla de Remote Config de un proyecto |
crashlytics_list_top_issues | crashlytics | Muestra una lista de las fallas principales de Crashlytics que ocurren en la aplicación. |
apphosting_fetch_logs | apphosting | Recupera 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 | Recupera 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 . |