{"id":"2bae6c82-64ed-4e0b-99c7-0263fb714314","slug":"bevy-manual-mcp","kind":"mcp","name":"bevy-manual-mcp","summary":"An MCP server with tooling and pre-built data so your local AI or cloud model can answer only with relevant answers","owner":"kinkirill","repoUrl":"https://github.com/kinkirill/bevy_manual_mcp","license":"MIT","licenseTier":"permissive","trust":"community","stars":16,"match":null,"fewStars":false,"format":"mcp","createdAt":"2026-10-09T02:28:19.000Z","addedAt":"2026-10-29T23:44:54.802Z","logoUrl":"https://avatars.githubusercontent.com/u/170978241?u=8f89f67d20165b911cbab992fdc53c2eadb2f016&v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["cloud-infra","data-analytics"],"tags":[],"runtime":"binary","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-29T23:47:59.618Z","sample":false,"url":"https://conduits.dev/tools/bevy-manual-mcp","language":"Rust","transports":["stdio"],"install":{},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# bevy-manual-mcp\n\nThis MCP was designed by a human and built using AI tools to increase development\nspeed.\n\nBevy is a fast-moving project that changes with every release. Its documentation\nis large and scattered, so finding an answer that actually matches *your* version\noften means digging through rustdoc signatures, the Bevy Book, migration guides,\nrelease notes and runnable examples - and still landing on something written for\na different release. This server tries its best to remove that friction.\n\nYou ask your agent a question and it answers from knowledge pinned to the exact\nBevy version your project is using.\n\nKey points:\n\n- MCP Registry name: `mcp-name: io.github.kinkirill/bevy-manual-mcp`\n\n- **Native.** Rust, stdio MCP, no Node or npm in the user's path. (The initial\n  version of this MCP was written in JS and later in TS.)\n- **Small.** A 33 MB bundle per Bevy version (125 MB corpus + 15 MB tantivy\n  index, zstd-compressed).\n- **Fast.** ~10 ms cold start, 22–30 ms concept queries, sub-millisecond exact\n  lookups.\n- **Honest.** Every tool says what it cannot do: `bevy_validate_systems` is a\n  syntax-level linter, compatibility can be `\"unknown\"`, and missing metadata is\n  reported as missing.\n\n## Install\n\n```bash\ncargo install bevy-manual-mcp\n```\n\nRequires a Rust toolchain. There is no prebuilt binary matrix and no npm shim.\n\nThe server starts answering immediately. If the detected Bevy version has no\ninstalled index, it downloads the prebuilt bundle in the background (progress on\nstderr) and reloads the index when the install completes. To install it\nexplicitly before starting the server:\n\n```bash\nbevy-manual-mcp fetch-index 0.20.1\nbevy-manual-mcp status\n```\n\nIndex releases are per Bevy **minor** (`v0.20`); an exact-patch corpus is used\nwhen present, otherwise the same minor's newest corpus answers for the patch.\nStatus, search results and resources report both the project version and the\ncorpus version that actually supplied the data. `BEVY_MCP_OFFLINE=1` disables\nall downloads, including the background fetch.\n\n## Use it\n\nThe bare command is the MCP server (stdio), exactly as MCP clients launch it.\n\n```bash\nbevy-manual-mcp                 # serve MCP over stdio\nbevy-manual-mcp serve           # explicit form\nbevy-manual-mcp --help\nbevy-manual-mcp status          # detected version, corpus state, paths\nbevy-manual-mcp versions        # installed corpora\nbevy-manual-mcp search \"system ordering\"\nbevy-manual-mcp lookup Query::iter --json\n```\n\n### MCP client configuration\n\nMost clients only need a command:\n\n```json\n{\n  \"mcpServers\": {\n    \"bevy-manual-mcp\": {\n      \"type\": \"stdio\",\n      \"command\": \"bevy-manual-mcp\",\n      \"env\": {\n        \"BEVY_PROJECT_ROOT\": \"/path/to/your/bevy/game\"\n      }\n    }\n  }\n}\n```\n\n`BEVY_PROJECT_ROOT` is optional if the client's working directory is the Cargo\nproject; the version is read from `Cargo.lock` first and `Cargo.toml` second.\n\n## Tools\n\n| tool | what it answers |\n|---|---|\n| `bevy_search` | Hybrid API + prose search: signatures, Book, guides, examples |\n| `bevy_api` | Exact symbol lookup with the real signature, docs and related items |\n| `bevy_examples` | Runnable engine/Book examples for a task |\n| `bevy_migration` | Breaking changes between two Bevy versions |\n| `bevy_api_diff` | One symbol across the compiled versions you name |\n| `bevy_check_version` | Newest published Bevy, patch vs breaking, pre-releases |\n| `bevy_indexed_versions` | Which Bevy versions this install can answer for |\n| `bevy_index_status` | Self-diagnosis: active version, corpus, paths |\n| `bevy_mcp_check_release_index` | Whether this server's GitHub index release has a newer corpus/revision |\n| `bevy_check_manifest` | Enabled Cargo features and whether a symbol is available |\n| `bevy_validate_systems` | Syntax-level B0001/B0002 lint (tuple-aware, filters) |\n| `bevy_explain_error` | Explain a pasted panic/warning, version-checked |\n| `bevy_ecosystem_search` | Fan-out over the Bevy corpus and installed plugin corpora |\n| `bevy_ecosystem_compat` | Plugin ↔ Bevy compatibility from the vendored snapshot |\n| `bevy_generate_plugin` | Self-contained plugin scaffold, parsed with `syn` |\n| `bevy_perf_advisor` | Performance topics and `is_changed`/`is_added` detection |\n\n`bevy_validate_systems` does **not** type-check and cannot decide Bevy runtime\npanics; it recognises the B0001/B0002 access patterns and says when its analysis\nis incomplete. `bevy_generate_plugin` reports `compile_verified: false` because\nno compiler runs. `bevy_ecosystem_compat` is offline-only and returns\n`compatible: \"unknown\"` for requirement operators it does not evaluate.\n\n## Resources\n\nThe server also exposes `bevy://` resources and templates:\n\n```\nbevy://index/versions\nbevy://api/<version>/<full::path>\nbevy://kind/<version>/<kind>\nbevy://module/<version>/<module>\nbevy://crate/<version>/<subcrate>\nbevy://owner/<version>/<Type>\nbevy://doc/<version>/<rustdoc file>\n```\n\nListings page at 50 items with query-bound cursors; reads open the requested\nversion on demand.\n\n## Configuration\n\nFile (`bevy-mcp.config.json`), environment and defaults combine in that order;\nenvironment variables win.\n\n| variable | meaning |\n|---|---|\n| `BEVY_PROJECT_ROOT` | Cargo project used for version detection |\n| `BEVY_VERSION` | Explicit version override, e.g. `0.20.0` |\n| `BEVY_MCP_DATA_DIR` | Persistent corpus directory (default `~/.cache/bevy-mcp/data`) |\n| `BEVY_MCP_OFFLINE` | `1` disables downloads |\n| `BEVY_MCP_INDEX_BASE_URL` | Mirror for `fetch-index` releases |\n| `BEVY_DOC_DIR` | Local rustdoc tree for `build --doc-dir` |\n| `BEVY_WEBSITE_DIR` / `BEVY_EXAMPLES_DIR` | Local prose/examples sources for rebuilds |\n| `BEVY_META_DIR` | Vendored `bevy-meta` root (feature graphs, error codes) |\n| `BEVY_MCP_COMPAT_PATH` | Explicit `compat.json` path |\n| `BEVY_MCP_MAX_RESULTS` | Default result count, 1–20 |\n| `BEVY_MCP_DEBUG` | `1` for timing/progress diagnostics |\n\nThe config file additionally accepts a `corpora` array for plugin corpora:\n\n```json\n{\n  \"corpora\": [\n    { \"crate\": \"bevy_egui\", \"version\": \"0.43.1\" },\n    { \"crate\": \"bevy_rapier3d\", \"auto\": true }\n  ]\n}\n```\n\nPlugin corpora live under `data/corpora/<crate>/<version>/` and are built with\nthe normal `build` command.\n\n## Rebuilding indexes\n\n```bash\n# From a local `cargo doc` tree (or a docs.rs mirror)\nbevy-manual-mcp build --doc-dir target/doc\n\n# Canonical NDJSON input\nbevy-manual-mcp build --records records.ndjson --out data/versions/0.20.0\n\n# Release bundle + manifest\nbevy-manual-mcp build --doc-dir ~/.cache/bevy-mcp/bevy-0.20.0 \\\n  --pack dist/bevy-0.20.0-fmt1.tar.zst \\\n  --manifest dist/index-manifest.json\n```\n\nA full 0.20.0 rebuild from 8,665 rustdoc pages takes ~30 s in release mode and\nproduces exactly the canonical corpus: 253,196 records, 653,264 symbol keys,\n15.2 MB tantivy index. See [GETTING-API-DOCS.md](https://github.com/kinkirill/bevy_manual_mcp/blob/main/docs/GETTING-API-DOCS.md) and\n[HOW-IT-WORKS.md](https://github.com/kinkirill/bevy_manual_mcp/blob/main/docs/HOW-IT-WORKS.md).\n\n## Development\n\nSee [docs/DEVELOPING.md](https://github.com/kinkirill/bevy_manual_mcp/blob/main/docs/DEVELOPING.md)\nfor the layout, tests, index rebuilds and release process.\n\n## License\n\nMIT. Vendored Bevy metadata and website prose are covered in\n[docs/THIRD-PARTY-NOTICES.md](https://github.com/kinkirill/bevy_manual_mcp/blob/main/docs/THIRD-PARTY-NOTICES.md).\n"}