MCP server for AI agents controlling Minecraft bots via the Mineflayer library
Server has 5 tools with basic schemas and descriptions, but significant gaps prevent production use. Tool names lack clear verb-noun structure (mc_status, mc_connect, mc_chat, mc_reconnect, mc_execute). Descriptions exist but are verbose and lack actionable guidance. Critical issue: mc_execute accepts arbitrary JavaScript code with minimal validation, a severe security risk. Parameter descriptions are present but inconsistent in detail. Output schemas are not formally documented. Error handling is minimal. The code sample shows incomplete mc_status implementation with bugs (nearbyEntities field missing from return object per inline comment). STDIO transport caps score at 50 maximum; definition quality issues further reduce it.
Send a chat message from the bot to the Minecraft server
Connect a bot to a Minecraft server with specified host, port, and username
Execute arbitrary Mineflayer JavaScript code in the bot's context with timeout support
Reconnect the bot to the Minecraft server after disconnection
Get comprehensive bot status including position, health, food, time of day, equipment, inventory (categorized as tools/food/materials), nearby threats, nearby resources, infrastructure locations, biome, and actionable warnings
mc_execute accepts arbitrary JavaScript code with no sandboxing, validation, or permission gates. LLMs can inject malicious code (e.g., bot.quit(), delete files, exfiltrate data). No dry-run or confirmation step before execution.
mc_status output schema not formally documented. Code comment indicates nearbyEntities field was missing from return object, causing agents to call combat/navigate blindly without knowing if entities exist. No structured output definition for LLM parsing.
Tool names lack clear verb-noun structure. 'mc_status', 'mc_reconnect' are prefixed but not action-oriented. 'mc_execute' is vague, does it execute commands, code, or actions? Naming should follow pattern: get_bot_status, connect_to_server, send_chat_message, reconnect_bot, execute_code.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 49 | 2026-07-28+ | v2 |
No error handling guidance. Tools do not return actionable recovery hints. E.g., if mc_connect fails, LLM gets no hint to check hostname/port or retry. No categorization of errors as retryable vs fatal.
mc_reconnect has empty input schema ({}). No description of what 'reconnect' means, does it use the last connection params? Does it require a username? Ambiguous for LLM.