bevy_brp_mcp

Un servidor MCP para asistentes de codificación de IA que permite controlar, inspeccionar y modificar aplicaciones Bevy utilizando el Bevy Remote Protocol (BRP).

Documentación

⚠️ ARCHIVADO - ¡Este repositorio ha sido movido!

Este repositorio está archivado y ya no se mantiene.

El desarrollo se ha trasladado 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:

  • Actualice sus 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 contribuidores:


README original a continuación:

Acerca de

Crates.io MIT/Apache 2.0 Crates.io CI

Un servidor de Protocolo de Contexto de Modelo (MCP) que permite a los asistentes de codificación con IA controlar el lanzamiento, inspeccionar y mutar aplicaciones Bevy mediante el Protocolo Remoto de Bevy (BRP). Esta herramienta une la brecha entre los agentes de codificación y Bevy al proporcionar una integración integral de BRP como servidor MCP.

Compatibilidad con Bevy

bevybevy_brp_mcp
0.160.1

El crate bevy_brp_mcp sigue el esquema de versiones de Bevy y publica nuevas versiones para cada lanzamiento de Bevy.

Características

Operaciones BRP Principales

  • 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 padre-hijo de entidades

Descubrimiento y Gestión de Aplicaciones

  • Descubrimiento de Aplicaciones: Encontrar y listar aplicaciones Bevy en su espacio de trabajo
  • Estado de Compilación: Verificar qué aplicaciones están compiladas y listas para ejecutarse
  • Gestión de Lanzamiento: Iniciar aplicaciones con carga de recursos y registro adecuados
  • Soporte de Ejemplos: Descubrir y ejecutar ejemplos de Bevy desde sus proyectos

Monitoreo en Tiempo Real

  • Observación de Componentes: Monitorear cambios de componentes en entidades específicas
  • Gestión de Registros: Registro centralizado para todas las aplicaciones lanzadas
  • Estado del Proceso: Verificar si las aplicaciones están ejecutándose con BRP habilitado

Integración BRP Mejorada

requiere bevy_brp_extras

  • Descubrimiento de Formatos: Obtener formatos JSON correctos para operaciones BRP (a través de bevy_brp_extras)
  • Captura de Pantalla: Tomar capturas de pantalla de aplicaciones Bevy en ejecución
  • Entrada de Teclado: Enviar entrada de teclado a aplicaciones Bevy para pruebas y automatización
  • Descubrimiento de Códigos de Tecla: Listar todos los códigos de tecla de teclado disponibles para operaciones de entrada
  • Apagado Elegante: Terminación limpia de aplicaciones

Comenzando

primero, instale vía cargo: cargo install bevy_brp_mcp

configure su 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 con IA

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

  1. Descubrir y lanzar sus aplicaciones Bevy - con registros almacenados en su 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 Su Aplicación Bevy

Para funcionalidad completa, su 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 formatos, agregue 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, necesitará asegurarse 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. Agregue BrpExtrasPlugin a su aplicación Bevy para características BRP mejoradas
  2. Use bevy_brp_mcp con su asistente de codificación con IA
  3. Métodos adicionales como captura de pantalla, apagado y descubrimiento de formatos estarán automáticamente disponibles
  4. Obtenga 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 le dice exactamente qué espera la llamada brp spawn/insert/mutate. Como resultado, su agente de codificación se involucrará en prueba y error para resolverlo, pero no es 100% confiable.

Si tiene 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 su agente de codificación intenta una llamada y falla.

Flujo de Trabajo de Ejemplo

  1. Descubrimiento: Use list_bevy_apps para encontrar aplicaciones disponibles
  2. Lanzamiento: Use launch_bevy_app para iniciar su juego con registro adecuado
  3. Inspección: Use bevy_query para encontrar entidades de interés
  4. Monitoreo: Use brp_get_watch para observar cambios de entidades en tiempo real
  5. Modificación: Use bevy_mutate_component para ajustar propiedades de entidades
  6. Depuración: Use read_log para examinar la salida de la aplicación
  7. Captura: Use brp_extras_screenshot para documentar el estado actual
  8. Interacción: Use 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)

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

Licencia

Doble licencia bajo cualquiera de:

a su opción.