How xlfries/minecraft-mcp works
This repository provides a Minecraft MCP server: an MCP client invokes registered tools, whose handlers check the bot connection and perform Minecraft actions. The tree also contains a separate agent/provider/history subsystem, but the sampled startup does not wire it into the server workflow. The README gives no capability overview, so tool capabilities are represented from the tool module names and available excerpts; unsampled tool internals and external-provider wiring remain uncertain.
Main entry points: register-tools.ts Tool registration · main.ts Server startup · agent.ts Agent loop · bot-connection.ts Bot connection
Components 23
MCP runtime
- Server startup
src/main.ts - Configuration
src/config.ts - Tool registry
src/tool-registry.ts - Tool factory
src/tool-factory.ts - Chat messages
src/message-store.ts
Minecraft connection
- Bot connection
src/bot-connection.ts
Minecraft tools
- Tool registration
src/register-tools.ts - Position tools
src/tools/position-tools.ts - Inventory tools
src/tools/inventory-tools.ts - Block tools
src/tools/block-tools.ts - Entity tools
src/tools/entity-tools.ts - Chat tools
src/tools/chat-tools.ts - Flight tools
src/tools/flight-tools.ts - Game-state tools
src/tools/gamestate-tools.ts - Crafting tools
src/tools/crafting-tools.ts - Furnace tools
src/tools/furnace-tools.ts - Coordinate helper
src/tools/coordinate-utils.ts
Agent subsystem
- Agent loop
src/agent/agent.ts - Ollama provider
src/agent/providers/ollama-provider.ts - History store
src/memory/history-store.ts - Tool schemas
src/tool-schema.ts
Other components
- MCP client
- Minecraft server
Connections 31
- MCP client → Server startup: sends MCP requests
src/main.ts - Server startup → Configuration: parses settings
src/main.ts - Server startup → Bot connection: connects bot
src/main.ts - Server startup → Chat messages: stores chat
src/main.ts - Server startup → Tool registration: registers tools
src/main.ts - Server startup → Tool registry: mounts tools
src/main.ts - Server startup → Tool factory: creates factory
src/main.ts - Bot connection → Minecraft server: connects to
src/bot-connection.ts - Bot connection → Chat messages: forwards chat
src/main.ts - Tool registration → Position tools: registers
src/register-tools.ts - Tool registration → Inventory tools: registers
src/register-tools.ts - Tool registration → Block tools: registers
src/register-tools.ts - Tool registration → Entity tools: registers
src/register-tools.ts - Tool registration → Chat tools: registers
src/register-tools.ts - Tool registration → Flight tools: registers
src/register-tools.ts - Tool registration → Game-state tools: registers
src/register-tools.ts - Tool registration → Crafting tools: registers
src/register-tools.ts - Tool registration → Furnace tools: registers
src/register-tools.ts - Tool factory → Tool registry: registers handlers
src/tool-factory.ts - Tool factory → Bot connection: checks connection
src/tool-factory.ts - Block tools → Coordinate helper: coerces coordinates
src/tools/block-tools.ts - Position tools → Coordinate helper: uses coordinate helper
src/tools/position-tools.ts - Flight tools → Coordinate helper: uses coordinate helper
src/tools/flight-tools.ts - Furnace tools → Coordinate helper: uses coordinate helper
src/tools/furnace-tools.ts - Block tools → Minecraft server: reads and changes world
src/tools/block-tools.ts - Crafting tools → Minecraft server: reads inventory, crafts
src/tools/crafting-tools.ts - Chat tools → Chat messages: reads chat history
src/register-tools.ts - Agent loop → Tool schemas: builds tool specs
src/agent/agent.ts - Agent loop → Tool registry: calls tools
src/agent/agent.ts - Agent loop → History store: restores and appends
src/agent/agent.ts - Agent loop → Ollama provider: uses provider