bevy_brp_mcp

Um servidor MCP para assistentes de codificação de IA controlarem, inspecionarem e modificarem aplicações Bevy usando o Bevy Remote Protocol (BRP).

Documentação

⚠️ ARQUIVADO - Este repositório foi movido!

Este repositório está arquivado e não é mais mantido.

O desenvolvimento foi movido para o workspace unificado em: https://github.com/natepiano/bevy_brp

O crate bevy_brp_mcp agora é mantido como parte do workspace em: https://github.com/natepiano/bevy_brp/tree/main/mcp

Para usuários:

  • Atualize suas dependências para usar o crate a partir do novo local
  • Toda a funcionalidade existente foi preservada
  • O crate ainda é publicado no crates.io como bevy_brp_mcp

Para contribuidores:


README original segue abaixo:

Sobre

Crates.io MIT/Apache 2.0 Crates.io CI

Um servidor Model Context Protocol (MCP) que permite que assistentes de codificação com IA controlem a inicialização, inspecionem e modifiquem aplicações Bevy através do Bevy Remote Protocol (BRP). Esta ferramenta preenche a lacuna entre agentes de codificação e Bevy, fornecendo integração abrangente com BRP como um servidor MCP.

Compatibilidade com Bevy

bevybevy_brp_mcp
0.160.1

O crate bevy_brp_mcp segue a numeração de versões do Bevy e lança novas versões para cada lançamento do Bevy.

Recursos

Operações BRP Principais

  • Gerenciamento de Entidades: Criar, destruir, consultar e modificar entidades
  • Operações de Componentes: Obter, inserir, remover e modificar componentes em entidades
  • Gerenciamento de Recursos: Acessar e modificar recursos globais
  • Sistema de Consulta: Consulta avançada de entidades com filtros
  • Operações de Hierarquia: Relacionamentos pai-filho de entidades

Descoberta e Gerenciamento de Aplicações

  • Descoberta de Apps: Encontrar e listar aplicações Bevy no seu workspace
  • Status de Build: Verificar quais apps estão compilados e prontos para executar
  • Gerenciamento de Inicialização: Iniciar apps com carregamento adequado de assets e logging
  • Suporte a Exemplos: Descobrir e executar exemplos Bevy dos seus projetos

Monitoramento em Tempo Real

  • Observação de Componentes: Monitorar mudanças de componentes em entidades específicas
  • Gerenciamento de Logs: Logging centralizado para todas as aplicações iniciadas
  • Status do Processo: Verificar se os apps estão rodando com BRP habilitado

Integração BRP Aprimorada

requer bevy_brp_extras

  • Descoberta de Formatos: Obter formatos JSON corretos para operações BRP (via bevy_brp_extras)
  • Captura de Screenshots: Tirar screenshots de aplicações Bevy em execução
  • Entrada de Teclado: Enviar entrada de teclado para aplicações Bevy para testes e automação
  • Descoberta de Códigos de Tecla: Listar todos os códigos de tecla disponíveis para operações de entrada
  • Desligamento Gracioso: Encerramento limpo da aplicação

Começando

primeiro, instale via cargo: cargo install bevy_brp_mcp

configure seu servidor mcp - para claude code isso seria no arquivo ~/.claude.json.

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

é isso!

Uso

Com Assistentes de Codificação com IA

bevy_brp_mcp é projetado para ser usado com assistentes de codificação com IA que suportam MCP (como Claude). O servidor MCP fornece ferramentas que permitem que a IA:

  1. Descubra e inicie suas aplicações Bevy - com logs armazenados no seu diretório temp para que possam ser acessados pelo assistente de codificação.
  2. Inspecione e modifique componentes de entidades em tempo real
  3. Monitore o estado da aplicação e depure problemas
  4. Tire screenshots e gerencie o ciclo de vida da aplicação (requer bevy_brp_extras)

Configurando Sua Aplicação Bevy

Para funcionalidade completa, sua aplicação Bevy deve incluir suporte a BRP:

use bevy::prelude::*;

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

Para recursos aprimorados como screenshots e descoberta de formatos, adicione também 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();
}

Em ambos os casos, você precisará garantir que o recurso "bevy_remote" do bevy esteja habilitado.

Integração com bevy_brp_extras

Este crate é projetado para funcionar perfeitamente com bevy_brp_extras. Quando ambos são usados juntos:

  1. Adicione BrpExtrasPlugin à sua aplicação Bevy para recursos BRP aprimorados
  2. Use bevy_brp_mcp com seu assistente de codificação com IA
  3. Métodos adicionais como screenshot, shutdown e descoberta de formatos estarão automaticamente disponíveis
  4. Obtenha formatos JSON adequados para operações BRP complexas. O recurso brp_extras/discover_format é especialmente útil. O valor retornado de bevy/registry/schema não informa exatamente o que é esperado pelas chamadas brp spawn/insert/mutate. Como resultado, seu agente de codificação tentará por tentativa e erro para descobrir, mas não é 100% confiável.

Se você tiver bevy_brp_extras instalado, ele pode obter as informações de tipo diretamente da aplicação em execução e fornecê-las se consultado via brp_extras/discover_format - ou as fornecerá na mensagem de erro se seu agente de codificação tentar uma chamada e falhar.

Fluxo de Trabalho de Exemplo

  1. Descoberta: Use list_bevy_apps para encontrar aplicações disponíveis
  2. Inicialização: Use launch_bevy_app para iniciar seu jogo com logging adequado
  3. Inspeção: Use bevy_query para encontrar entidades de interesse
  4. Monitoramento: Use brp_get_watch para observar mudanças de entidades em tempo real
  5. Modificação: Use bevy_mutate_component para ajustar propriedades de entidades
  6. Depuração: Use read_log para examinar a saída da aplicação
  7. Captura: Use brp_extras_screenshot para documentar o estado atual
  8. Interação: Use brp_extras_send_keys para enviar entrada de teclado para testes

Logging

Todas as aplicações iniciadas criam arquivos de log detalhados em /tmp/ com nomes como:

  • bevy_brp_mcp_myapp_1234567890.log (logs da aplicação)
  • bevy_brp_mcp_watch_123_get_456_1234567890.log (logs de monitoramento)

Use as ferramentas de gerenciamento de logs para visualizar e limpar esses arquivos.

Licença

Dual-licenciado sob:

à sua escolha.