minecraft-rcon-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., "@minecraft-rcon-mcpwho's online right now?"
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.
minecraft-rcon-mcp
An MCP server that lets an AI assistant (Claude, Cursor, etc.) control a live Minecraft server over RCON — list players, broadcast chat, teleport, give items, change weather/time, kick, or run any raw vanilla/plugin command — instead of you typing it into the server console yourself.
Why this exists
Most MCP servers give an AI assistant access to code — a filesystem, a language, a build system. This one gives it access to a running game world: a genuinely different, much less common category of MCP tool, and a fun one to build on top of a protocol (Source RCON) that's small enough to implement from scratch in a couple hundred lines with zero dependencies beyond the MCP SDK itself.
Related MCP server: Minecraft RCON MCP Server
Installation
git clone https://github.com/Faneraiy14/minecraft-rcon-mcp
cd minecraft-rcon-mcp
npm installRequires a Minecraft server (vanilla or Paper/Spigot — anything that
speaks the Source RCON protocol) with RCON enabled. In its
server.properties:
enable-rcon=true
rcon.port=25575
rcon.password=<a real password — do not leave this blank>Connecting (Claude Desktop / Claude Code)
claude mcp add minecraft-rcon-mcp -- node /absolute/path/to/minecraft-rcon-mcp/src/server.js \
-e MC_RCON_HOST=127.0.0.1 \
-e MC_RCON_PORT=25575 \
-e MC_RCON_PASSWORD=<the same password from server.properties>MC_RCON_HOST defaults to 127.0.0.1, MC_RCON_PORT to 25575 if
omitted — only MC_RCON_PASSWORD is required. The password is read from
the environment only, never accepted as a tool argument — an MCP tool
argument comes from (or at least passes through) the AI's own context, and
a long-lived secret has no business living there when the environment can
hold it instead.
Tools
Tool | What it does |
| Runs any raw vanilla/plugin command (no leading |
| Who's online right now ( |
| Broadcasts a chat message from the server ( |
| Teleports a player/selector to coordinates or another entity ( |
| Gives a player an item ( |
| Sets weather to clear/rain/thunder, optionally for a duration ( |
| Sets the game time by tick count or keyword like |
| Disconnects a player, optionally with a reason shown to them ( |
Every tool returns { success, command, output } on a successful RCON
round-trip — success: true means the request reached the server and it
replied, not that the command necessarily did what you intended
semantically. output is the server's own response text (e.g. "No player was found" for a /give targeting someone offline) — the AI reads
that to know what actually happened, the same way a human reading the
server console would.
How the RCON client works
Source RCON
is a small binary TCP protocol — src/rcon.js implements it directly, no
dependency:
Packet framing:
[int32 length][int32 requestId][int32 type][payload][0x00][0x00], all little-endian.lengthdoesn't include itself.Auth (
SERVERDATA_AUTH, type 3): send the password; the server replies withSERVERDATA_AUTH_RESPONSE(type 2) carrying the SAME request ID on success, orrequestId: -1on a wrong password — that's the only signal that auth failed, there's no error message field.Fragmented responses: nothing in the protocol marks "this is the last packet of the response" — a long
/listor/helpoutput can legitimately arrive as severalSERVERDATA_RESPONSE_VALUEpackets. The standard trick, used here: right after the real command, send a second, emptySERVERDATA_EXECCOMMANDpacket with the next request ID. Minecraft doesn't recognize an empty command, but still echoes an emptySERVERDATA_RESPONSE_VALUEback with that packet's own request ID — and because responses come back in order, seeing that ID is a reliable "everything before this belonged to the real command" marker.A real, live bug this caught: the first version matched incoming packets against pending requests using only
requestId, and never checked the terminator's ID — the terminator packet's_handlePacketcall fell into a dead branch, so every command call silently hung until its own timeout, even though the real server response had already arrived correctly. Found by running the client against an actual live Paper server (not a mock) rather than assuming the protocol implementation was right because it looked right, and fixed by checkingp.terminatorIdfirst.Each MCP tool call opens a fresh connection, authenticates, runs one command, and closes — Minecraft's RCON is meant for short admin connections, not a persistent session (there's no equivalent to NyxilumMcp's REPL tools here for that reason).
Tests
MC_RCON_HOST=127.0.0.1 MC_RCON_PORT=25575 MC_RCON_PASSWORD=<password> npm test21 checks across config.mjs (env-var validation — no server needed),
rcon.mjs (the protocol client against a REAL running server: list
returns real output, an unknown command returns the server's own error
text rather than throwing, a wrong password gives RconAuthError rather
than hanging, an unreachable port fails cleanly, three sequential
commands on one connection don't cross-talk — the exact scenario that
would have caught the terminator-ID bug above), tools.mjs (the same
through the tool handlers, including that a wrong password comes back as
{ success: false, isAuthError: true } rather than throwing — this one
caught a second real bug: custom Error subclasses in JS don't set
.name to the subclass name automatically, so the original
err.name === 'RconAuthError' check silently never matched; fixed by
setting this.name = this.constructor.name in the base error class and
switching the check to instanceof), and transport.mjs — the same
things again through the real MCP protocol (StdioClientTransport +
Client), not just direct function calls.
Every test that needs a live server is skipped (not failed) when
MC_RCON_HOST/MC_RCON_PORT/MC_RCON_PASSWORD aren't set — CI doesn't
have a Minecraft server sitting around, and this shouldn't block on one.
Security
The RCON password lives in the environment only (see Connecting above) — never accepted as a tool input, never logged.
mc_commandruns whatever string it's given, with no allowlist — that's the deliberate design of this tool specifically (an admin console for a game world you own), not an oversight. If you want an AI assistant to have LESS power over your server than a full admin console, don't connect this tool to it, or wrapmc_commandbehind your own MCP proxy that filters commands before they reach here.Every RCON call has a timeout (default 10s, configurable per call via
timeout_ms, capped at 30s) so a server that stops responding mid-command doesn't hang the calling tool forever.
License
MIT
Available Tools
8 toolsmc_commandВиконати довільну команду Minecraft-сервераA
Виконує БУДЬ-яку vanilla- чи plugin-команду через RCON (без провідного "/" — додається сам, якщо AI його все ж напише). Найзагальніший інструмент тут - усе, чого не покривають структуровані mc_* нижче (наприклад /gamemode, /effect, /fill, команди плагінів). Повертає сирий текстовий вивід сервера як є.
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | ||
| timeout_ms | No | Таймаут RCON-запиту в мілісекундах (500–30000, типово 10000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It does disclose RCON transport, automatic leading-slash handling, and raw server text output. However, for an arbitrary command execution tool, it does not warn about full console privileges, irreversible side effects, or potentially destructive commands beyond using the word "ANY".
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three dense, front-loaded sentences cover the action, the exact invocation convention, the relationship to sibling tools, and the return behavior. No filler or repetition of schema content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Without an output schema, the description correctly explains what is returned: raw server text output. It also covers the key distinction from siblings. It could be slightly more complete by mentioning risk or permission implications of RCON, but the core calling context is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is only 50% because the required command parameter has no schema description. The tool description compensates by explaining that the command should not include a leading slash and that one will be added if present, which is critical semantic guidance. The timeout parameter is adequately described in the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it executes any vanilla or plugin command via RCON, which is a specific verb and resource. It explicitly distinguishes itself as the most general tool, covering everything not handled by structured mc_* tools, and gives concrete examples like /gamemode and /effect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is explicit: use this tool for anything not covered by the structured mc_* siblings, with examples of fallback scenarios. The description makes the selection rule clear without requiring the agent to inspect other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_giveВидати предмет гравцюA
Видає item (напр. "diamond", "minecraft:diamond_sword") гравцю player у кількості count (типово 1) (/give).
| Name | Required | Description | Default |
|---|---|---|---|
| item | Yes | Ідентифікатор предмета, напр. "diamond" або "minecraft:diamond_sword" | |
| count | No | ||
| player | Yes | ||
| timeout_ms | No | Таймаут RCON-запиту в мілісекундах (500–30000, типово 10000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral disclosure burden. It does add useful operational details: the command mapping (/give), item identifier examples, and a default count of 1. However, it does not disclose side effects on the player's inventory, whether the player must be online, or error behavior for invalid items.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that front-loads the action, includes examples, gives a default, and references the underlying command. Every element earns its place and nothing is redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for a simple tool: intent, item formatting, recipient, and default count are clear. However, it omits any note about player identification format (name vs UUID), whether recipients must be online, or what happens on failure, which would be useful given there is no output schema and no annotations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With only 50% schema description coverage, the description compensates by clarifying the item parameter with concrete examples and by stating that count defaults to 1. It also identifies player as the recipient, which is not described in the schema. The timeout_ms parameter remains schema-documented rather than description-covered, but that is a minor gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (Видає / gives), names the resource (item), the recipient (player), and the amount (count), and includes concrete Minecraft item identifier examples. It is unambiguous and distinct from siblings like mc_teleport or mc_set_time despite not explicitly naming an alternative.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to use mc_give versus mc_command, which is a key sibling that could also execute a /give command. Use is only implied by the action itself; there are no exclusions, prerequisites, or routing hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_kickКікнути гравцяA
Відключає гравця player від сервера, опційно з причиною reason, показаною йому (/kick).
| Name | Required | Description | Default |
|---|---|---|---|
| player | Yes | ||
| reason | No | ||
| timeout_ms | No | Таймаут RCON-запиту в мілісекундах (500–30000, типово 10000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It does state the concrete effect (disconnecting the player) and that the reason is shown to the player. It does not mention consequences like rejoin ability, permission requirements, or expected errors/response.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence that front-loads the action, includes the command hint, and adds no filler. Every word contributes to understanding the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with three parameters, the main action and parameters are covered. Still, with no output schema and no annotations, the description does not state return/error behavior or prerequisites like the player needing to be online.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, but the description compensates by explaining that 'player' is the target and 'reason' is an optional message shown to the kicked player. 'timeout_ms' is already documented in the schema, so all parameters can be understood.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb, 'відключає' (disconnects), names the resource ('гравця' / player), and mentions the optional reason. This clearly distinguishes it from sibling tools such as mc_teleport or mc_say.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the kick semantics: use it to disconnect a player. However, there is no explicit guidance about when to choose this over mc_command or whether the player must be online, so alternatives and exclusions are not stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_list_playersСписок гравців онлайнA
Повертає кількість і ніки гравців, підключених зараз до сервера (/list).
| Name | Required | Description | Default |
|---|---|---|---|
| timeout_ms | No | Таймаут RCON-запиту в мілісекундах (500–30000, типово 10000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It does convey that the tool is a read-only snapshot of currently connected players via /list, but it does not explicitly mention side effects, error cases, permissions, or that it modifies nothing on the server. This is adequate for a simple query tool but leaves some behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single compact sentence that states what the tool returns and even includes the underlying command. Every part earns its place; there is no filler or redundant restating.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one optional parameter and no output schema, the description gives the essential return semantics: кількість і ніки гравців. The only real gap is that it does not describe the exact output shape, but the simplicity of the tool makes the current level sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, timeout_ms, is fully documented in the schema with range and default, so schema coverage is 100%. The description adds no additional semantic detail about the parameter, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Повертає' and names the exact resource: кількість і ніки гравців, підключених зараз до сервера. The parenthetical '(/list)' further anchors it to a specific command and clearly separates it from siblings like mc_teleport or mc_give.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no guidance on when to prefer this tool over alternatives, especially mc_command, which could theoretically also run /list. There are no exclusions, prerequisites, or context cues explaining when this convenience tool is the right choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_sayОголошення в чат сервераA
Транслює повідомлення в чат усім гравцям від імені сервера (/say).
| Name | Required | Description | Default |
|---|---|---|---|
| message | Yes | ||
| timeout_ms | No | Таймаут RCON-запиту в мілісекундах (500–30000, типово 10000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly discloses the main behavioral traits: the message is public, visible to all players, and attributed to the server. It omits minor details like error/return behavior, but for a chat broadcast the core side effect is explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no filler. The core action, audience, attribution, and command equivalent are all front-loaded, and every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with no output schema, the description plus schema is largely complete: required message is covered, optional timeout is covered, and the effect is clear. It would benefit from explicit guidance about sibling alternatives, but the agent can invoke it correctly without ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50%; timeout_ms is well described in the schema, but the description contributes nothing about it. The description does clarify that 'message' is the chat content being broadcast, adding meaning beyond the bare schema property, but it does not fully compensate for the undocumented message field.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: it broadcasts a message in chat to all players on behalf of the server, and explicitly identifies the Minecraft command (/say). This clearly differentiates it from generic siblings like mc_command and unrelated tools like mc_teleport or mc_give.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: use this tool when a server-wide chat announcement is needed. However, it does not explicitly explain when to choose mc_say over mc_command or name alternatives/exclusions, so an agent must infer the routing context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_set_timeЗмінити ігровий часA
Встановлює ігровий час: число тіків АБО ключове слово ("day", "night", "noon", "midnight") (/time set).
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | ||
| timeout_ms | No | Таймаут RCON-запиту в мілісекундах (500–30000, типово 10000) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full disclosure burden. It honestly signals a state-mutating operation ('sets game time') and names the underlying command, but it doesn't disclose that the change affects the whole server's time-of-day globally, that operator privileges may be required, or what happens on invalid input. This is adequate but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence with the action front-loaded and zero filler. Every clause earns its place: the operation, the accepted value forms, and the canonical command mapping. Nothing needs to be cut or reordered.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 2-parameter tool with one required field and no nested objects, the description plus schema give an agent everything needed to invoke it correctly: the value format is explained and the optional timeout is schema-documented. The only real gap is the absence of any indication of confirmation/return behavior, which is minor for a command-wrapper tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 50% — the required 'value' parameter has no schema description, while timeout_ms is alreadily documented. The description compensates for the gap by explaining that value is a tick count OR a keyword, adding the 'тіків' meaning that the bare integer constraint in the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description has a specific verb and resource — 'Встановлює ігровий час' (sets game time) — and goes further to specify the accepted input forms: a tick count or one of four keywords. The '/time set' reference anchors the tool to a known Minecraft command. However, it never names or contrasts any sibling, so differentiation from mc_set_weather rests on the inherent time-vs-weather distinction rather than explicit guidance.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied rather than stated: the agent can infer this is the tool for changing game time, and the description clarifies the two accepted value formats. There is no explicit guidance about when to prefer this over alternatives (notably mc_command, which could issue '/time set' directly), and no exclusions or when-not-to-use conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_set_weatherЗмінити погодуB
Встановлює погоду на сервері: "clear", "rain" чи "thunder", опційно на duration_seconds секунд (/weather).
| Name | Required | Description | Default |
|---|---|---|---|
| weather | Yes | ||
| timeout_ms | No | Таймаут RCON-запиту в мілісекундах (500–30000, типово 10000) | |
| duration_seconds | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are absent, so the description carries the full burden of behavioral disclosure. It reveals that the tool runs the equivalent of /weather and supports an optional duration, but it does not mention side effects, persistence, permissions, or output behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that communicates the action, the accepted values, and the optional duration without redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The definition is adequate for a simple setter: it gives the action, values, and optional duration, and there is no output schema to explain. Missing context about operational effects and when to prefer this over a generic command leaves moderate gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33%, but the description compensates by explicitly naming the weather values and clarifying that duration_seconds is optional and measured in seconds. timeout_ms remains well-documented in the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: 'Встановлює погоду на сервері' (sets the weather on the server), and lists the valid values and optional duration. It clearly identifies the tool's purpose but does not explicitly differentiate it from similar siblings like mc_set_time.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given about when to use this tool instead of alternatives such as mc_command or mc_set_time. There are no exclusions, prerequisites, or explicit usage conditions beyond the general weather-setting context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mc_teleportТелепортувати гравцяB
Телепортує target (нік гравця або vanilla-селектор на кшталт @a/@p/@e[type=...]) у destination — координати "x y z" АБО нік/селектор іншого гравця/сутності (/tp).
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Нік гравця або селектор (@a, @p, @e[...]) | |
| timeout_ms | No | Таймаут RCON-запиту в мілісекундах (500–30000, типово 10000) | |
| destination | Yes | "x y z" або нік/селектор цілі телепортації |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the behavioral burden. It states the core effect (teleporting), exposes that selectors can affect multiple entities, and identifies the underlying /tp command. However, it does not disclose failure behavior, coordinate interpretation, permission requirements, or what the caller receives on success or error.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence with the main action front-loaded and the parameter syntax summarized compactly. It is efficient and free of irrelevant details, though a short structured breakdown would improve readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the definition is usable but not fully complete. It covers the core teleport semantics and acceptable parameter forms, but omits usage context, error behavior, and side-effect notes beyond the basic movement. The 100% schema coverage prevents major gaps, but an agent still cannot fully predict call outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already documents all three parameters with descriptions, so the coverage baseline is 100%. The description mostly restates the schema's target and destination explanations, adding only slight clarification through examples and the /tp reference. It adds no new semantic information about timeout_ms.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names the exact operation: teleporting a target to a destination, and it specifies both valid target forms (player nick or vanilla selectors like @a/@p/@e[type=...]) and destination forms (coordinates or another entity). This makes the tool clearly distinguishable from siblings such as mc_say or mc_kick. The explicit reference to /tp also anchors the tool in the underlying Minecraft command.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance about when to use this tool versus alternatives, especially mc_command, which could potentially run /tp directly. The description explains what the tool does but never states conditions, exclusions, or routing rules. An agent is left to infer the appropriate use case from the tool name and purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
8 tool updates
v0.1.0- First observed
mc_command - First observed
mc_give - First observed
mc_kick - First observed
mc_list_players - First observed
mc_say - First observed
mc_set_time - First observed
mc_set_weather - First observed
mc_teleport
TDQS
Scored across 8 tools
Each structured tool targets a clear Minecraft operation (players, teleport, give, weather, time, kick), so they are easy to distinguish. There is intentional overlap with mc_command, which can run anything, but its description explicitly frames it as the fallback for cases not covered by the structured tools.
All tools share a consistent mc_ prefix and snake_case style, and most follow a verb_noun pattern like mc_set_weather, mc_list_players, and mc_kick. mc_command is the only slight deviation since it is noun-only, but it remains readable and fits the naming family.
Eight tools is well-scoped for a Minecraft RCON management server. The structured wrappers cover common admin operations while mc_command provides general-purpose coverage, so nothing feels excessive or too sparse.
The tool surface covers major server administration actions: chat, player listing/kicking, teleportation, item giving, weather, and time. mc_command fills any remaining gaps like bans or plugin commands, though a couple of structured wrappers (e.g. difficulty, ban) would make the set feel more complete.
Maintenance
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
One AI endpoint to search and call 22k+ MCP servers; 50+ hosted tools work instantly, no key.
Generate AI images, video, music, and sound effects, and upscale them, from any MCP client.
Generate AI images and videos from any compatible MCP client.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables control of a Minecraft server through RCON commands via natural language, including game commands, chat-based AI interactions, and server management capabilities.6-
- AlicenseAqualityDmaintenanceConnects AI agents to Minecraft servers via RCON to execute commands, monitor logs, and perform read-only SQLite database queries. It is specifically designed to facilitate AI-assisted plugin development, live debugging, and automated testing workflows.611MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to interact with and manage Minecraft servers through a standardized interface, supporting server monitoring, player management, log analysis, and command execution.11MIT
- AlicenseAqualityDmaintenanceEnables Minecraft server management via RCON: execute commands, list players, get server info, manage whitelist and operators.91MIT