Bevy BRP MCP

Controla, inspecciona y muta aplicaciones Bevy con asistentes de codificación de IA a través del Protocolo Remoto Bevy (BRP).

Documentación

⚠️ ARCHIVADO - ¡Este repositorio ha sido movido!

Este repositorio está archivado y ya no se mantiene.

El desarrollo se ha movido al espacio de trabajo unificado en: https://github.com/natepiano/bevy_brp

El crate bevy_brp_mcp ahora se mantiene como parte del espacio de trabajo en: https://github.com/natepiano/bevy_brp/tree/main/mcp

Para usuarios:

  • Actualiza tus dependencias para usar el crate desde la nueva ubicación
  • Toda la funcionalidad existente se ha conservado
  • El crate todavía se publica en crates.io como bevy_brp_mcp

Para contribuyentes:


El README original continúa:

Acerca de

Crates.io MIT/Apache 2.0 Crates.io CI

Un servidor de Model Context Protocol (MCP) que permite a los asistentes de codificación de IA controlar el lanzamiento, inspeccionar y mutar aplicaciones Bevy a través del Bevy Remote Protocol (BRP). Esta herramienta cierra la brecha entre los agentes de codificación y Bevy al proporcionar una integración completa de BRP como servidor MCP.

Compatibilidad con Bevy

bevybevy_brp_mcp
0.160.1

El crate bevy_brp_mcp sigue la numeración de versiones de Bevy y publica nuevas versiones para cada lanzamiento de Bevy.

Características

Operaciones básicas de BRP

  • Gestión de entidades: Crear, destruir, consultar y modificar entidades
  • Operaciones de componentes: Obtener, insertar, eliminar y mutar componentes en entidades
  • Gestión de recursos: Acceder y modificar recursos globales
  • Sistema de consultas: Consulta avanzada de entidades con filtros
  • Operaciones de jerarquía: Relaciones de entidades padre-hijo

Descubrimiento y gestión de aplicaciones

  • Descubrimiento de aplicaciones: Encuentra y lista aplicaciones Bevy en tu espacio de trabajo
  • Estado de compilación: Comprueba qué aplicaciones están compiladas y listas para ejecutarse
  • Gestión de lanzamiento: Inicia aplicaciones con carga de activos y registro adecuados
  • Soporte de ejemplos: Descubre y ejecuta ejemplos de Bevy desde tus proyectos

Monitoreo en tiempo real

  • Observación de componentes: Monitorea cambios de componentes en entidades específicas
  • Gestión de registros: Registro centralizado para todas las aplicaciones lanzadas
  • Estado del proceso: Comprueba si las aplicaciones se están ejecutando con BRP habilitado

Integración mejorada de BRP

requiere bevy_brp_extras

  • Descubrimiento de formato: Obtén los formatos JSON correctos para operaciones BRP (a través de bevy_brp_extras)
  • Captura de pantalla: Toma capturas de pantalla de aplicaciones Bevy en ejecución
  • Entrada de teclado: Envía entrada de teclado a aplicaciones Bevy para pruebas y automatización
  • Descubrimiento de códigos de teclas: Lista todos los códigos de teclas de teclado disponibles para operaciones de entrada
  • Apagado elegante: Terminación limpia de la aplicación

Primeros pasos

primero, instala vía cargo: cargo install bevy_brp_mcp

configura tu servidor mcp - para claude code esto estaría en el archivo ~/.claude.json.

"mcpServers": {
  "brp": {
    "type": "stdio",
    "command": "bevy_brp_mcp",
    "args": [],
    "env": {}
  }
},

¡eso es todo!

Uso

Con asistentes de codificación de IA

bevy_brp_mcp está diseñado para usarse con asistentes de codificación de IA que soporten MCP (como Claude). El servidor MCP proporciona herramientas que permiten a la IA:

  1. Descubrir y lanzar tus aplicaciones Bevy - con registros almacenados en tu directorio temporal para que el asistente de codificación pueda acceder a ellos.
  2. Inspeccionar y modificar componentes de entidades en tiempo real
  3. Monitorear el estado de la aplicación y depurar problemas
  4. Tomar capturas de pantalla y gestionar el ciclo de vida de la aplicación (requiere bevy_brp_extras)

Configurando tu aplicación Bevy

Para una funcionalidad completa, tu aplicación Bevy debe incluir soporte BRP:

use bevy::prelude::*;

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .add_plugins(bevy::remote::RemotePlugin::default()) // Enable BRP
        .run();
}

Para características mejoradas como capturas de pantalla y descubrimiento de formato, agrega también bevy_brp_extras:

use bevy::prelude::*;
use bevy_brp_extras::BrpExtrasPlugin;

fn main() {
    App::new()
        .add_plugins(DefaultPlugins)
        .add_plugins(BrpExtrasPlugin) // Enhanced BRP features
        .run();
}

En cualquier caso, deberás asegurarte de habilitar la característica "bevy_remote" de bevy.

Integración con bevy_brp_extras

Este crate está diseñado para funcionar sin problemas con bevy_brp_extras. Cuando ambos se usan juntos:

  1. Agrega BrpExtrasPlugin a tu aplicación Bevy para características BRP mejoradas
  2. Usa bevy_brp_mcp con tu asistente de codificación de IA
  3. Métodos adicionales como captura de pantalla, apagado y descubrimiento de formato estarán disponibles automáticamente
  4. Obtén formatos JSON adecuados para operaciones BRP complejas. La característica brp_extras/discover_format es especialmente útil. El valor devuelto por bevy/registry/schema no te dice exactamente qué se espera en las llamadas brp spawn/insert/mutate. Como resultado, tu agente de codificación recurrirá a prueba y error para resolverlo, pero no es 100% confiable.

Si tienes bevy_brp_extras instalado, puede obtener la información de tipo directamente de la aplicación en ejecución y proporcionarla si se consulta a través de brp_extras/discover_format - o la proporcionará en el mensaje de error si tu agente de codificación intenta una llamada y falla.

Flujo de trabajo de ejemplo

  1. Descubrimiento: Usa list_bevy_apps para encontrar aplicaciones disponibles
  2. Lanzamiento: Usa launch_bevy_app para iniciar tu juego con registro adecuado
  3. Inspección: Usa bevy_query para encontrar entidades de interés
  4. Monitoreo: Usa brp_get_watch para observar cambios de entidades en tiempo real
  5. Modificación: Usa bevy_mutate_component para ajustar propiedades de entidades
  6. Depuración: Usa read_log para examinar la salida de la aplicación
  7. Captura: Usa brp_extras_screenshot para documentar el estado actual
  8. Interacción: Usa brp_extras_send_keys para enviar entrada de teclado para pruebas

Registro

Todas las aplicaciones lanzadas crean archivos de registro detallados en /tmp/ con nombres como:

  • bevy_brp_mcp_myapp_1234567890.log (registros de aplicación)
  • bevy_brp_mcp_watch_123_get_456_1234567890.log (registros de monitoreo)

Usa las herramientas de gestión de registros para ver y limpiar estos archivos.

Licencia

Con doble licencia bajo cualquiera de:

a tu elección.