An MCP server that enables remote control of Minecraft servers running on AWS IoT Greengrass devices, coordinated through AWS Bedrock Agent Core with IAM-authenticated MCP proxy transport.
This MCP server defines 4 tools for Minecraft remote control with partial schema visibility. Three tools (get_block, set_block, set_blocks) are well-documented in the Lambda function with clear parameter schemas and descriptions. However, the fourth tool (invoke_mcpmcp_agent) is defined in agent.py but lacks visible implementation details. Parameter descriptions are present and adequate (72-150 chars), meeting the baseline for description length. However, critical gaps exist: no output/return schemas are documented for any tool, error handling is generic (error codes with enum-like handling but no recovery guidance), and there is no tool annotation support (readOnlyHint/destructiveHint). The naming convention is verb-first and clear (get_block, set_block, set_blocks, invoke_mcpmcp_agent), following the pattern:tool standard. Parameter names are well-typed (x:integer, y:integer, z:integer, blockType:integer, etc.) with ranges specified in descriptions (e.g., 'y must be between 0 and 255'). However, the invoke_mcpmcp_agent tool description contains mixed-language text ('Minecraftの操作をするMCPサーバを利用するAgent tool...') which is unprofessional and may confuse LLM parsing. Tool composition is reasonable (three block manipulation tools + one agent invocation), but there is no documented chaining, no clear indication of which tool outputs feed into which tool inputs.
Get the block type at the specified coordinates.
Minecraftの操作をするMCPサーバを利用するAgent tool. Invokes MCP server to control Minecraft operations on a specific device.
Set a block at the specified coordinates.
A function that places Blocks within the range of a 3D bounding box specified by arguments (defined by coordinates 1(x,y,z) and 2(x,y,z)) in Minecraft.
No output/return schemas documented for any tool. LLMs cannot predict what fields to expect or plan downstream chaining.
invoke_mcpmcp_agent description contains untranslated Japanese text mixed with English. This degrades LLM comprehension and appears unprofessional.
Error handling returns generic error codes (-1, 1, 2, 3, 4) with enum-like mapping, but error responses do not include recovery guidance (e.g., 'Try calling search_users first'). LLM must guess next steps.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). get_block is read-only; set_block and set_blocks are destructive writes. LLMs cannot distinguish safety without annotations.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | D | 55 | <=2025-11-25 | v2 |
| 2026-03-09 | F | 40 | - | v1 |
set_block and set_blocks lack confirmation or dry-run support. Destructive operations should ask for confirmation to prevent accidental overwriting of Minecraft world blocks.
invoke_mcpmcp_agent input schema visible but no actual implementation shown in provided code. Tool definition appears to be inferred from agent.py without full schema validation.