Servidor de MCP de Firebase

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

  1. Asegúrate de tener una instalación funcional de Node.js y npm.

  2. 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 contiene firebase.json para establecer un contexto de proyecto para el servidor de MCP. Si no se especifica, las herramientas get_project_directory y set_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.