| Crates.io | bevy_brp_mcp |
| lib.rs | bevy_brp_mcp |
| version | 0.18.0 |
| created_at | 2025-06-23 21:28:47.976987+00 |
| updated_at | 2026-01-15 12:26:37.773377+00 |
| description | MCP server for Bevy Remote Protocol (BRP) integration |
| homepage | |
| repository | https://github.com/natepiano/bevy_brp |
| max_upload_size | |
| id | 1723493 |
| size | 841,897 |
A Model Context Protocol (MCP) server that enables AI coding assistants to control launch, inspect and mutate Bevy applications via the Bevy Remote Protocol (BRP). This tool bridges the gap between coding agents and Bevy by providing comprehensive BRP integration as an MCP server.
| bevy | bevy_brp_mcp |
|---|---|
| 0.18 | 0.18.0 |
| 0.17 | 0.17.0-0.17.2 |
| 0.16 | 0.1 |
The bevy_brp_mcp crate follows Bevy's version numbering and releases new versions for each Bevy release.
brp_type_guide tool. The value returned from registry.schema does not tell you exactly what is expected by the brp spawn/insert/mutate calls. The brp_type_guide tool provides examples to your coding agent for each mutation path for a component or resource - making it easy for your coding agent to know how to use spawn/insert and mutate your components and resources. It's kind of a miracle to see your coding agent change running values on your components on the first try.requires bevy_brp_extras
brp_extras/screenshot - Capture screenshots of the primary windowbrp_extras/shutdown - Gracefully shutdown the applicationbrp_extras/send_keys - Send keyboard input to the applicationbrp_extras/set_window_title - Change the primary window titlefirst, install via cargo:
cargo install bevy_brp_mcp
configure your mcp server - for claude code this would be in the ~/.claude.json file.
"mcpServers": {
"brp": {
"type": "stdio",
"command": "bevy_brp_mcp",
"args": [],
"env": {}
}
},
that's it!
bevy_brp_mcp is designed to be used with AI coding assistants that support MCP (like Claude). The MCP server provides tools that allow the AI to:
bevy_brp_extras)For full functionality, your Bevy app should include BRP support:
use bevy::prelude::*;
fn main() {
App::new()
.add_plugins(DefaultPlugins)
.add_plugins(bevy::remote::RemotePlugin::default()) // Enable BRP
.run();
}
For enhanced features like screenshots and format discovery, also add 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();
}
In either case you'll need to make sure to enable bevy's "bevy_remote" feature.
This crate is designed to work seamlessly with bevy_brp_extras. When both are used together:
BrpExtrasPlugin to your Bevy app for enhanced BRP featuresbevy_brp_mcp with your AI coding assistantlist_bevy_apps to find available applicationslaunch_bevy_app to start your game with proper loggingworld_query to find entities of interestworld_get_components_watch to observe entity changes in real-timeworld_mutate_components to adjust entity propertiesread_log to examine application outputbrp_extras_screenshot to document current statebrp_extras_send_keys to send keyboard input for testingAll launched applications create detailed log files in /tmp/ with names like:
bevy_brp_mcp_myapp_1234567890.log (application logs)bevy_brp_mcp_watch_123_get_456_1234567890.log (monitoring logs)Use the log management tools to view and clean up these files.
Dual-licensed under either:
at your option.