Bevy Manual MCP

io.github.kinkirillPublished by GitHub account kinkirillv0.5.2Updated Oct 30, 2026

Version-accurate Bevy API docs, Book, migration guides and examples for AI agents.

VerifiedSTDIODesktop onlyKnowledge & MemoryDeveloper Tools

Overview

AI-generated overview

Local Rust MCP server that gives an assistant version-pinned Bevy API docs, Book prose, examples and migration guides for the Bevy version your Cargo project…

What you can do
  • Search the Bevy corpus with hybrid API and prose search, and look up exact symbols with real signatures and docs
  • Find runnable engine and Book examples for a task, plus performance topics and change-detection hints
  • Compare versions: breaking changes between releases, one symbol across versions, newest published Bevy, and plugin compatibility
  • Inspect the project: enabled Cargo features, whether a symbol is available, and which Bevy versions this install can answer for
  • Lint system access patterns, explain pasted panics or warnings, and scaffold a self-contained plugin
  • Read bevy:// resources for versions, API paths, kinds, modules, crates, owners and rustdoc files
When to use it
Useful when building a Bevy game and you want answers that match the exact engine version in your project instead of generic or outdated documentation. It helps with API lookups, migration between Bevy releases, plugin compatibility and debugging panics.
Requirements
Runs locally over stdio and needs a Rust toolchain to install with cargo; no Node or npm. It detects the Bevy version from Cargo.lock or Cargo.toml in BEVY_PROJECT_ROOT, or from BEVY_VERSION. Index bundles are downloaded from GitHub Releases by default, stored under BEVY_MCP_DATA_DIR, and can be disabled with BEVY_MCP_OFFLINE=1 or pointed at a mirror with BEVY_MCP_INDEX_BASE_URL.
Before you install
On first use it downloads a per-version index bundle (about 33 MB) from GitHub Releases in the background unless BEVY_MCP_OFFLINE=1 is set, so it contacts the network and writes to the data directory. Its linter is syntax-level only and does not type-check, generated plugins are not compiled, and compatibility answers can be reported as unknown; treat those results as hints, not verification.

Installation

In SourceWeft

  1. Open Bevy Manual MCP in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

bevy-manual-mcp

This MCP was designed by a human and built using AI tools to increase development speed.

Bevy is a fast-moving project that changes with every release. Its documentation is large and scattered, so finding an answer that actually matches your version often means digging through rustdoc signatures, the Bevy Book, migration guides, release notes and runnable examples - and still landing on something written for a different release. This server tries its best to remove that friction.

You ask your agent a question and it answers from knowledge pinned to the exact Bevy version your project is using.

Key points:

  • MCP Registry name: mcp-name: io.github.kinkirill/bevy-manual-mcp

  • Native. Rust, stdio MCP, no Node or npm in the user's path. (The initial version of this MCP was written in JS and later in TS.)

  • Small. A 33 MB bundle per Bevy version (125 MB corpus + 15 MB tantivy index, zstd-compressed).

  • Fast. ~10 ms cold start, 22–30 ms concept queries, sub-millisecond exact lookups.

  • Honest. Every tool says what it cannot do: bevy_validate_systems is a syntax-level linter, compatibility can be "unknown", and missing metadata is reported as missing.

Install

bash
cargo install bevy-manual-mcp

Requires a Rust toolchain. There is no prebuilt binary matrix and no npm shim.

The server starts answering immediately. If the detected Bevy version has no installed index, it downloads the prebuilt bundle in the background (progress on stderr) and reloads the index when the install completes. To install it explicitly before starting the server:

bash
bevy-manual-mcp fetch-index 0.20.1bevy-manual-mcp status

Index releases are per Bevy minor (v0.20); an exact-patch corpus is used when present, otherwise the same minor's newest corpus answers for the patch. Status, search results and resources report both the project version and the corpus version that actually supplied the data. BEVY_MCP_OFFLINE=1 disables all downloads, including the background fetch.

Use it

The bare command is the MCP server (stdio), exactly as MCP clients launch it.

bash
bevy-manual-mcp                 # serve MCP over stdiobevy-manual-mcp serve           # explicit formbevy-manual-mcp --helpbevy-manual-mcp status          # detected version, corpus state, pathsbevy-manual-mcp versions        # installed corporabevy-manual-mcp search "system ordering"bevy-manual-mcp lookup Query::iter --json

MCP client configuration

Most clients only need a command:

json
{  "mcpServers": {    "bevy-manual-mcp": {      "type": "stdio",      "command": "bevy-manual-mcp",      "env": {        "BEVY_PROJECT_ROOT": "/path/to/your/bevy/game"      }    }  }}

BEVY_PROJECT_ROOT is optional if the client's working directory is the Cargo project; the version is read from Cargo.lock first and Cargo.toml second.

Tools

toolwhat it answers
bevy_searchHybrid API + prose search: signatures, Book, guides, examples
bevy_apiExact symbol lookup with the real signature, docs and related items
bevy_examplesRunnable engine/Book examples for a task
bevy_migrationBreaking changes between two Bevy versions
bevy_api_diffOne symbol across the compiled versions you name
bevy_check_versionNewest published Bevy, patch vs breaking, pre-releases
bevy_indexed_versionsWhich Bevy versions this install can answer for
bevy_index_statusSelf-diagnosis: active version, corpus, paths
bevy_mcp_check_release_indexWhether this server's GitHub index release has a newer corpus/revision
bevy_check_manifestEnabled Cargo features and whether a symbol is available
bevy_validate_systemsSyntax-level B0001/B0002 lint (tuple-aware, filters)
bevy_explain_errorExplain a pasted panic/warning, version-checked
bevy_ecosystem_searchFan-out over the Bevy corpus and installed plugin corpora
bevy_ecosystem_compatPlugin ↔ Bevy compatibility from the vendored snapshot
bevy_generate_pluginSelf-contained plugin scaffold, parsed with syn
bevy_perf_advisorPerformance topics and is_changed/is_added detection

bevy_validate_systems does not type-check and cannot decide Bevy runtime panics; it recognises the B0001/B0002 access patterns and says when its analysis is incomplete. bevy_generate_plugin reports compile_verified: false because no compiler runs. bevy_ecosystem_compat is offline-only and returns compatible: "unknown" for requirement operators it does not evaluate.

Resources

The server also exposes bevy:// resources and templates:

bevy://index/versionsbevy://api/<version>/<full::path>bevy://kind/<version>/<kind>bevy://module/<version>/<module>bevy://crate/<version>/<subcrate>bevy://owner/<version>/<Type>bevy://doc/<version>/<rustdoc file>

Listings page at 50 items with query-bound cursors; reads open the requested version on demand.

Configuration

File (bevy-mcp.config.json), environment and defaults combine in that order; environment variables win.

variablemeaning
BEVY_PROJECT_ROOTCargo project used for version detection
BEVY_VERSIONExplicit version override, e.g. 0.20.0
BEVY_MCP_DATA_DIRPersistent corpus directory (default ~/.cache/bevy-mcp/data)
BEVY_MCP_OFFLINE1 disables downloads
BEVY_MCP_INDEX_BASE_URLMirror for fetch-index releases
BEVY_DOC_DIRLocal rustdoc tree for build --doc-dir
BEVY_WEBSITE_DIR / BEVY_EXAMPLES_DIRLocal prose/examples sources for rebuilds
BEVY_META_DIRVendored bevy-meta root (feature graphs, error codes)
BEVY_MCP_COMPAT_PATHExplicit compat.json path
BEVY_MCP_MAX_RESULTSDefault result count, 1–20
BEVY_MCP_DEBUG1 for timing/progress diagnostics

The config file additionally accepts a corpora array for plugin corpora:

json
{  "corpora": [    { "crate": "bevy_egui", "version": "0.43.1" },    { "crate": "bevy_rapier3d", "auto": true }  ]}

Plugin corpora live under data/corpora/<crate>/<version>/ and are built with the normal build command.

Rebuilding indexes

bash
# From a local `cargo doc` tree (or a docs.rs mirror)bevy-manual-mcp build --doc-dir target/doc
# Canonical NDJSON inputbevy-manual-mcp build --records records.ndjson --out data/versions/0.20.0
# Release bundle + manifestbevy-manual-mcp build --doc-dir ~/.cache/bevy-mcp/bevy-0.20.0 \  --pack dist/bevy-0.20.0-fmt1.tar.zst \  --manifest dist/index-manifest.json

A full 0.20.0 rebuild from 8,665 rustdoc pages takes ~30 s in release mode and produces exactly the canonical corpus: 253,196 records, 653,264 symbol keys, 15.2 MB tantivy index. See GETTING-API-DOCS.md and HOW-IT-WORKS.md.

Development

See docs/DEVELOPING.md for the layout, tests, index rebuilds and release process.

License

MIT. Vendored Bevy metadata and website prose are covered in docs/THIRD-PARTY-NOTICES.md.

Source: README.md at commit f3ea7b0

Tools

0
SourceWeft started this package once in an isolated sandbox, without credentials, to list its tools. That failed: the package type cannot run in the sandbox.

Version history

2
  1. v0.5.2LatestOct 30, 2026
  2. v0.2.2Oct 29, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts