Bedrock Wiki MCP
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Bedrock Wiki MCPWhat's the exact signature for EntityDamageCause in @minecraft/server?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Bedrock Wiki MCP
A self-hosted, read-only Model Context Protocol (MCP) server for Minecraft Bedrock Edition add-on development. It indexes official Creator documentation, samples, schemas, Script API package metadata, and selected community sources, then exposes deterministic evidence retrieval over Streamable HTTP.
Beta: the project is under active development.
Public MCP endpoint: https://bedrockmcpwiki.servegame.net/mcp
Quick start
Requirements: Node.js 24.x, npm, and Git on PATH.
npm ci
npm run check
npm run dev -- sync-sources
npm run dev -- rebuild-sources
npm run dev -- validate-index
npm run dev -- serveAfter the initial full build, normal refreshes can update only changed source content:
npm run dev -- sync-sources
npm run dev -- update-sources
npm run dev -- validate-indexLocal endpoints:
http://127.0.0.1:8080/mcp
http://127.0.0.1:8080/healthFor a lexical-only install that skips optional semantic-search packages, use npm ci --omit=optional and npm run build. See deploy/README.md for Ubuntu, Caddy, Cloudflare Tunnel, and Pterodactyl deployment guidance.
Related MCP server: repocks
Design
The server retrieves indexed source material and returns evidence. It does not generate answers and does not expose filesystem, shell, synchronization, database-write, backup, or administration operations through MCP.
Core capabilities include:
Node.js 24.x, TypeScript, and the official MCP TypeScript SDK v2
Streamable HTTP at
/mcpand a minimal/healthendpointSQLite and FTS5 lexical retrieval
exact Bedrock identifier lookup
Markdown, Script API, JSON/JSONC, JavaScript, TypeScript, and mcfunction ingestion
code-aware and schema-aware chunking
stable, preview, historical, API-version, and Minecraft-version metadata
source trust tiers and provenance
deterministic query planning
derived Script API runtime aliases such as
world.afterEvents.playerSpawndeterministic symbol relationships such as
alias_ofandproperty_typeexact cross-version definition comparison
example-oriented retrieval
conservative duplicate suppression
optional local semantic search with Transformers.js and sqlite-vec
atomic full and incremental index publication
semantic embedding reuse for unchanged chunks
index validation, backups, status reporting, and retrieval benchmarks
Public MCP tools
Tool | Purpose |
| Search indexed material with exact, lexical, and optional semantic retrieval |
| Fetch a server-issued document or chunk with bounded context |
| Look up an exact identifier with stable-first, version-aware ranking |
| Find code/example evidence for an identifier or development task |
| Compare one exact identifier between two API or Minecraft versions |
| Traverse deterministic symbol relationships in the Bedrock graph |
| List source provenance, trust tier, release channel, health, and indexing details |
| List Bedrock development categories in the index |
| Classify a query and recommend the next retrieval tool |
All public tools are read-only, deterministic retrieval/inspection operations. They do not generate prose answers or mutate the index.
Retrieval behavior
Generated Script API documentation often describes runtime chains across multiple type files. During indexing the server derives exact aliases and graph relationships so runtime-style requests can resolve to canonical documentation symbols:
world.afterEvents.playerSpawn
world.afterEvents.playerSpawn.subscribe
system.runIntervalIdentifier extraction also understands module-qualified imports such as @minecraft/server.Player, namespaced Bedrock identifiers, Molang queries such as query.is_on_ground, slash commands, manifest/schema fields, and animation-controller state names.
Stable Microsoft/Mojang evidence is preferred over preview, historical, or community material. Preview and historical content is excluded from normal retrieval unless explicitly requested or clearly implied. Optional minecraftVersion and apiVersion constraints prefer exact provenance, allow compatible numeric prefixes, reject known mismatches, and retain unversioned material only as lower-ranked fallback evidence.
Cross-source duplicate suppression is deliberately conservative. It removes essentially equivalent evidence after ranking while preserving differences between release channels, API versions, Minecraft versions, and conflicting identifiers.
Example retrieval
find_examples first attempts symbol-linked examples for an extracted exact identifier, then fills remaining results from ranked example and code evidence. It supports module, API-version, Minecraft-version, preview, and historical filters.
Version comparison
compare_versions compares the best indexed definition for one exact identifier at two explicit versions.
Example input shape:
{
"identifier": "World.getDynamicProperty",
"versionKind": "api",
"fromVersion": "1.9.0",
"toVersion": "2.0.0"
}The result reports added, removed, changed, unchanged, or not_found, returns the evidence snapshots for each side when available, and separately flags content, stability, lifecycle, and symbol-kind changes. It does not infer undocumented semantic behavior changes.
Relationship graph
resolve_relationships traverses deterministic relationships stored in the index. Current post-index derivation materializes runtime alias and Script API property-type relationships. Traversal is bounded by depth and result count and returns source provenance where the edge has a source chunk.
This graph is intentionally evidence-derived rather than model-generated.
Optional semantic search
Semantic retrieval is disabled by default. When enabled, the server retains exact/FTS5 candidates and fuses them with local cosine vector search. Exact Bedrock identifiers keep hard precedence over semantic similarity.
Optional packages:
npm ciLexical-only deployment:
npm ci --omit=optionalThe semantic index is stored at:
data/index/semantic.dbThe default embedding model is onnx-community/all-MiniLM-L6-v2-ONNX at 384 dimensions. Model files are cached under data/models/.
Build or refresh semantic vectors after bedrock.db exists:
npm run dev -- build-semantic-indexThen enable hybrid retrieval:
BEDROCK_MCP_SEMANTIC_ENABLED=trueSemantic publication remains atomic. If a compatible previous semantic database exists, vectors are reused for chunks whose stable chunk ID and content hash are unchanged. Only new or changed chunks are embedded. A different model, dimension, or semantic schema disables reuse and performs a fresh vector build.
semantic.db stores a fingerprint of the exact core index it was built against. Serving rejects stale, wrong-model, wrong-dimension, or wrong-schema semantic databases. If optional semantic initialization fails, serving falls back to lexical retrieval rather than taking the MCP offline.
Knowledge sources
config/sources.json is the canonical registry for Git-backed knowledge sources. config/npm-sources.json is the canonical registry for bounded official npm metadata snapshots.
The registries define source identity, trust tier, release channel, branch, enablement, sparse checkout, and include/exclude rules. Keeping the registries canonical avoids maintaining a duplicate source list in this README as the corpus evolves.
The corpus includes:
Microsoft/Mojang Creator documentation, samples, Script API material, schemas, debugger/tooling material, and preview-specific sources
official
@minecraft/*npm package metadataselected Bedrock Wiki, examples, schemas, editor/toolchain, modeling/animation, Script API, Molang, and interoperability community sources
Stable/default sources are selected normally. Preview-only sources require --include-preview or BEDROCK_MCP_INCLUDE_PREVIEW=true.
Source trust tier, release channel, repository, branch, revision, canonical URL, revision URL, hashes, and indexing timestamps are preserved as provenance where available.
Source synchronization and indexing
Initial or explicit full rebuild:
npm run dev -- sync-sources
npm run dev -- rebuild-sources
npm run dev -- validate-indexNormal incremental refresh:
npm run dev -- sync-sources
npm run dev -- update-sources
npm run dev -- validate-indexInclude preview material:
npm run dev -- sync-sources --include-preview
npm run dev -- update-sources --include-previewrebuild-sources constructs a fresh SQLite database and atomically publishes it only after validation succeeds.
update-sources copies the currently published immutable index to a staging database, then:
compares each selected source revision and normalized indexing configuration;
skips sources whose upstream revision and indexing inputs are unchanged;
reparses only a changed source and replaces only added/modified documents;
removes documents that disappeared or were excluded by new source configuration;
refreshes unchanged-document provenance without rewriting their chunks;
re-derives affected runtime aliases/relationships when source inputs changed;
validates the staging database; and
atomically replaces the published index.
The full rebuild remains the recovery/fallback path.
Synchronization is fail-closed. Existing checkouts must have the configured origin and branch, a resolvable revision, and a clean worktree. Updates are fast-forward-only. Dirty, locally-ahead, divergent, detached, wrong-origin, wrong-branch, symlinked, or otherwise invalid checkouts are rejected rather than reset.
New clones use blobless single-branch partial clones. sparsePaths is opt-in for sources where the registry identifies a useful subtree.
Local curated Tier-3 knowledge can still be indexed separately:
npm run dev -- rebuild-index
# or
npm run dev -- rebuild-index /path/to/knowledgeAdministrative quality and operations
Inspect the published index:
npm run dev -- status
npm run dev -- status --jsonCreate an online-consistent backup:
npm run dev -- backup
npm run dev -- backup /srv/bedrock-backups --retain=14Run stable retrieval benchmarks:
npm run dev -- benchmark
npm run dev -- benchmark --jsonRun preview/beta benchmarks against a preview-enabled index:
npm run dev -- benchmark benchmarks/search-queries-preview.json
npm run dev -- benchmark benchmarks/search-queries-preview.json --jsonBenchmarks report MRR, Recall@3, Recall@5, NDCG@5, exact Top-1, natural Top-3, useful Top-5, and required rank gates. The command exits nonzero when aggregate targets or a required case fails.
Production deployment
See deploy/README.md for the full production guide.
The production updater:
obtains an exclusive refresh lock;
checks disk headroom;
backs up the currently published indexes;
synchronizes configured sources;
runs the atomic incremental lexical update;
validates the published lexical index;
updates the semantic index when enabled, reusing unchanged embeddings; and
lets the systemd unit restart the serving process so it reopens the newly published SQLite files.
The recommended Ubuntu service keeps Node on 127.0.0.1 and exposes only HTTPS through the selected ingress layer. Database and administrative ports are not required.
Remote HTTP security
The application adds host-level controls around the MCP transport:
optional exact Host allowlist
optional exact Origin allowlist
optional bearer-token authentication
per-client rate limiting
concurrent
/mcprequest capbounded request bodies
HTTP request/header timeouts
X-Content-Type-Options: nosniff
/health remains unauthenticated and exposes only basic service status, name, and version.
For public deployments, configure BEDROCK_MCP_ALLOWED_HOSTS and enable bearer authentication when supported by the client. See .env.example and deploy/systemd/bedrock-mcp.env.example.
CLI
bedrock-mcp serve
bedrock-mcp sync-sources [checkout-root] [--include-preview]
bedrock-mcp rebuild-index [directory]
bedrock-mcp rebuild-sources [checkout-root] [--include-preview]
bedrock-mcp update-sources [checkout-root] [--include-preview]
bedrock-mcp build-semantic-index
bedrock-mcp status [--json]
bedrock-mcp backup [destination] [--retain=N]
bedrock-mcp benchmark [file] [--json]
bedrock-mcp validate-index
bedrock-mcp version
bedrock-mcp helpSynchronization, indexing, status, backup, and benchmark commands are administrative process operations, not public MCP tools.
Repository data policy
Generated deployment state is ignored by Git, including lexical/semantic SQLite files, WAL/SHM files, cached semantic models, cloned source checkouts, temporary ingestion files, backups, and logs.
knowledge/local/ is reserved for deliberately curated local material.
License
The code and documentation in this repository are licensed under the Apache License, Version 2.0.
Third-party sources indexed by the server retain their own licenses and attribution requirements.
This server cannot be deployed
Maintenance
Related MCP Connectors
An MCP server that gives your AI access to the source code and docs of all public github repos
Versioned documentation registry and semantic search for AI tools and coding assistants.
Search your AI chat history (ChatGPT, Claude, Codex) from any MCP client. Remote, private, read-only
MCP-native open-source Notion alternative: read & write pages, databases and kanban boards.
Related MCP Servers
- AlicenseBqualityDmaintenanceProvides comprehensive access to MCP documentation through structured guides, full-text search, and interactive development workflows for building servers and clients.310 npmMIT
- AlicenseNot gradedqualityDmaintenanceTransforms Markdown documentation into an intelligent knowledge base with AI-powered search and Q\&A through an MCP server.2 npm9MIT
- AlicenseAqualityDmaintenanceEnables managing internal documentation with search and add capabilities, and fetching official documentation from 13+ popular libraries via MCP tools.69MIT
- AlicenseNot gradedqualityCmaintenanceProvides a local MCP server for searching and retrieving documentation from 22+ open-source projects, enabling AI coding assistants to access up-to-date docs without network dependency.11 npm2MIT