CloudNet MCP Server
The CloudNet MCP Server provides an interface for AI assistants to monitor and manage a CloudNet Minecraft network cluster.
Node Management: List all cluster nodes and retrieve detailed statistics for specific nodes.
Service Management: List all active smart services and execute commands directly on a service's console.
Player Management: Retrieve a paginated, sortable list of online players; look up detailed player profiles by name or UUID; kick players with a custom message; send chat messages; and execute commands on behalf of a player (with optional proxy redirection).
QQ Bot Mode (Optional): Adds specialized tools (
get_services_summary,find_player,get_command_help,execute_safe_command) with permission-based safe command execution (Guest, Admin, Super User), custom command whitelists, and automatic blocking of dangerous commands likeop,deop, andexecute.
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., "@CloudNet MCP Serverlist all online players"
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.
CloudNet MCP Server
This is a Model Context Protocol (MCP) server that provides an interface to the CloudNet Service REST API v3. This allows AI assistants to observe your CloudNet nodes and services safely and accurately.
Features
Get Nodes & Information: List all cluster nodes and fetch detailed statistics.
Manage Services: List active smart services and seamlessly execute commands on server consoles.
Player Management: Retrieve online players, inspect player profiles, kick players, send messages, and execute commands on their behalf.
QQ Bot Mode: Optimized for QQ group server management bots with safe command execution.
Related MCP server: RunCloud MCP Server
Prerequisites
Python 3.12+
uvPackage Manager
Installation
git clone https://github.com/yourusername/cloudnet-mcp.git
cd cloudnet-mcp
uv syncConfiguration
Environment Variables
CLOUDNET_URL: The URL to the REST API (default:http://127.0.0.1:2812/api/v3)CLOUDNET_USER: Basic auth usernameCLOUDNET_PASSWORD: Basic auth password
QQ Bot Mode (Optional)
Copy the example config and customize:
cp config.example.yaml config.yamlEnable QQ mode in config.yaml:
qq_mode:
enabled: true
safe_commands_only: true
chinese_responses: trueRunning
# Basic usage
uv run cloudnet-mcp
# With config file
uv run cloudnet-mcp -c config.yamlCommand Line Options
Option | Description |
| Path to YAML configuration file |
QQ Bot Mode
When QQ mode is enabled, additional tools become available:
Tool | Description |
| Get server status overview |
| Search player across servers |
| List available commands by permission |
| Execute whitelisted commands only |
Safe Command Execution
Commands are organized by permission level:
Guest: Query commands (
list,tps,seed, etc.)Admin: Management commands (
kick,ban,whitelist,gamemode, etc.)Super User: Server commands (
stop,restart,reload, etc.)
Permission inheritance: Admin inherits Guest, Super User inherits all.
Custom Commands
Add custom commands in config.yaml:
safe_commands:
guest:
- command: stats
args: "<player>"
description: "View player statistics"
admin:
- command: money
args: "set <player> <amount>"
description: "Set player balance"Custom commands merge with built-in commands. Override built-in descriptions by using the same command name.
Blocked Commands
These patterns are always blocked:
op- Grant operator statusdeop- Revoke operator statusexecute- Execute as another entity
Using with Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"cloudnet": {
"command": "uv",
"args": [
"--directory",
"PATH/TO/YOUR/cloudnet-mcp",
"run",
"cloudnet-mcp",
"-c",
"PATH/TO/YOUR/cloudnet-mcp/config.yaml"
],
"env": {
"CLOUDNET_URL": "http://127.0.0.1:2812/api/v3",
"CLOUDNET_USER": "your_user",
"CLOUDNET_PASSWORD": "your_password"
}
}
}
}CloudNet MCP 服务器
这是一个模型上下文协议 (MCP) 服务器,提供了对 CloudNet Service REST API v3 的接口访问支持。它使得 AI 助手能够安全准确地观测您的 CloudNet 节点和服务。
功能特性
获取节点列表及信息: 查看整个 CloudNet 集群内所有节点的详细统计数据和信息
管理服务: 获取运行中的智能服务列表,支持在服务端控制台远程执行命令
玩家管理: 查询在线玩家、查看玩家详情、踢出玩家、发送消息、代替玩家执行命令
QQ Bot 模式: 针对 QQ 群服务器管理机器人的优化模式,支持安全命令执行
前置要求
Python 3.12 及以上版本
uv包管理器
安装指南
git clone https://github.com/yourusername/cloudnet-mcp.git
cd cloudnet-mcp
uv sync配置
环境变量
CLOUDNET_URL: CloudNet REST API 地址 (默认:http://127.0.0.1:2812/api/v3)CLOUDNET_USER: 基本认证的用户名CLOUDNET_PASSWORD: 基本认证的密码
QQ Bot 模式 (可选)
复制示例配置文件并修改:
cp config.example.yaml config.yaml在 config.yaml 中启用 QQ 模式:
qq_mode:
enabled: true
safe_commands_only: true
chinese_responses: true运行
# 基本用法
uv run cloudnet-mcp
# 使用配置文件
uv run cloudnet-mcp -c config.yaml命令行参数
参数 | 说明 |
| YAML 配置文件路径 |
QQ Bot 模式
启用 QQ 模式后,将提供以下额外工具:
工具 | 说明 |
| 获取服务器状态总览 |
| 跨服搜索玩家 |
| 按权限列出可用命令 |
| 仅执行白名单内的命令 |
安全命令执行
命令按权限级别组织:
Guest (访客): 查询类命令 (
list,tps,seed等)Admin (管理员): 管理类命令 (
kick,ban,whitelist,gamemode等)Super User (超级用户): 服务器管理命令 (
stop,restart,reload等)
权限继承:管理员继承访客权限,超级用户继承所有权限。
内置命令列表
Guest 级别 (11个):
list- 查看在线玩家列表tps- 查看服务器TPSseed- 查看世界种子difficulty- 查看游戏难度whitelist list- 查看白名单列表time query- 查询游戏时间gamerule query- 查询游戏规则scoreboard objectives list- 列出计分板目标scoreboard players list- 列出计分板玩家bossbar list- 列出Boss栏trigger- 触发计分板目标
Admin 级别 (41个):
kick <玩家> [原因]- 踢出玩家ban <玩家> [原因]- 封禁玩家pardon <玩家>- 解封玩家ban-ip <地址|玩家> [原因]- 封禁IPpardon-ip <地址>- 解封IPwhitelist add/remove <玩家>- 白名单管理whitelist on/off/reload- 白名单开关与重载gamemode <模式> [玩家]- 设置游戏模式tp <实体|坐标>- 传送实体give <玩家> <物品> [数量]- 给予物品clear [玩家] [物品] [数量]- 清除物品effect <玩家> give|clear- 给予/清除效果enchant <玩家> <附魔> [等级]- 附魔物品summon <实体> [坐标]- 召唤实体kill [实体]- 杀死实体fill/setblock/clone- 方块操作weather clear|rain|thunder- 设置天气time set <时间>- 设置游戏时间更多...
Super User 级别 (16个):
stop- 停止服务器restart- 重启服务器reload- 重载数据包save-all/save-off/save-on- 保存控制debug start|stop- 调试性能分析gamerule set <规则> <值>- 设置游戏规则defaultgamemode <模式>- 设置默认游戏模式更多...
自定义命令
在 config.yaml 中添加自定义命令:
safe_commands:
guest:
- command: stats
args: "<玩家>"
description: "查看玩家统计"
- command: ping
description: "查看延迟"
admin:
- command: money
args: "set <玩家> <金额>"
description: "设置玩家余额"
- command: heal
args: "[玩家]"
description: "治疗玩家"
super_user:
- command: plugins
description: "查看插件列表"自定义命令会与内置命令合并。使用相同的命令名可覆盖内置命令的描述。
被阻止的命令
以下命令模板始终被阻止:
op- 授予管理员权限deop- 撤销管理员权限execute- 以其他实体身份执行
在 Claude Desktop 中使用
将以下配置添加至您的 claude_desktop_config.json:
{
"mcpServers": {
"cloudnet": {
"command": "uv",
"args": [
"--directory",
"PATH/TO/YOUR/cloudnet-mcp",
"run",
"cloudnet-mcp",
"-c",
"PATH/TO/YOUR/cloudnet-mcp/config.yaml"
],
"env": {
"CLOUDNET_URL": "http://127.0.0.1:2812/api/v3",
"CLOUDNET_USER": "您的用户名",
"CLOUDNET_PASSWORD": "您的密码"
}
}
}
}Available Tools
9 toolsexecute_player_commandC
Executes a command for a given player
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | The name or unique id of the player | |
| command | Yes | The command to execute (without prefixing slash) | |
| redirectToServer | No | Redirect downstream if not found on proxy |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is very brief and does not disclose behavioral traits such as permissions required, side effects, or whether the command execution is synchronized. No annotations are provided to compensate.
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 concise (one sentence) but lacks important details. It is efficient but not sufficiently informative for an agent to fully understand usage.
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 output schema and no annotations, the description should provide more context about the behavior and return value. It is insufficient for a complete understanding of the 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?
The input schema covers 100% of the parameters with descriptions. The tool description adds no additional meaning beyond what the schema already provides, so baseline 3 is appropriate.
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 clearly states the tool's action (execute a command) and target (a given player). It is a specific verb-resource pair, but does not distinguish from the sibling tool 'execute_service_command' which executes commands on a service.
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 provided on when to use this tool versus alternatives like kick_player or send_player_message. The description lacks any context for the agent to choose this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_service_commandC
Executes the specified command on a service console
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | The name or unique id of the service | |
| command | Yes | The command to execute on the service |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description only says 'executes the specified command', implying a write operation but no details on destructive potential, authorization needs, or side effects.
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 of 8 words, very concise. It could be slightly improved with additional context while remaining brief.
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 the simplicity (2 params, no output schema, no annotations), the description is minimal and does not explain return values or behavior. Incomplete for safe invocation.
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 100% (both parameters have descriptions). The description adds no extra meaning beyond the schema, so baseline of 3 is appropriate.
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 clearly states the action ('executes the specified command') and the target ('service console'). It distinguishes from sibling 'execute_player_command' by specifying 'service console', but does not explicitly differentiate.
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 on when to use or not use this tool, nor any mention of prerequisites or alternatives. The description lacks context for decision-making.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_node_infoB
Get detailed information about a specific node
| Name | Required | Description | Default |
|---|---|---|---|
| node_id | Yes | The ID of the node |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It merely states the function without mentioning read-only nature, permissions, or any side effects, leaving the agent to infer from the verb 'get'.
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 sentence with no extraneous words. Highly efficient and front-loaded.
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?
Despite simplicity, the lack of output schema and any hint of what 'detailed information' includes makes the description incomplete. An agent cannot anticipate the return structure.
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 100% with parameter description 'The ID of the node'. The tool description adds no additional context beyond the schema, 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 'Get detailed information about a specific node' clearly states the verb (Get) and resource (node), effectively distinguishing it from sibling 'get_nodes' which lists multiple nodes.
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 provided on when to use this tool versus alternatives like 'get_nodes' or 'get_player_info'. The description lacks context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_nodesA
List all nodes in the CloudNet cluster
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It implies a read-only list operation but omits any details about authentication, rate limits, or error conditions. The simplicity partially excuses this, but more context would be beneficial.
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, concise sentence that is front-loaded with the purpose. Every word adds value, and there is no wasted text.
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 the tool's simplicity (no parameters, no output schema), the description is minimally adequate. It states the purpose but does not hint at the return format or any limitations, which would be helpful for an agent.
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 tool has zero parameters and the schema description coverage is 100%. The description adds no parameter-level detail (none needed), and the baseline for 0 parameters is 4.
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 clearly states the tool lists all nodes in the CloudNet cluster, using a specific verb ('List') and resource ('nodes'). This distinguishes it from siblings like get_node_info which likely retrieves a single node.
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 provides no guidance on when to use this tool versus alternatives like get_node_info, nor does it mention any prerequisites or contexts. It only states the basic function.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_online_playersB
Get a list of online players based on the query parameters
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | The maximum amount of players to respond with | |
| skip | No | The amount of players to skip | |
| sort | No | Sort players by name |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits such as authentication requirements, rate limits, or behavior when no players are online. It is simply a read operation, but lacks any additional context.
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 extraneous information. It is front-loaded and to the point.
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 tool is simple and has no output schema, but the description could be improved by noting that it returns a list of player objects or mentioning pagination behavior. It is adequate but not thorough.
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 100% with descriptions for all three parameters (limit, skip, sort). The description adds no additional meaning beyond what is already in the schema, so baseline score of 3 is appropriate.
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 clearly identifies the action (get) and resource (online players), and implies filtering via query parameters. It distinguishes from siblings like get_player_info which returns a single player, but could be more specific about the scope.
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 on when to use this tool vs alternatives such as get_players (nonexistent) or other player-related tools. No exclusion criteria or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_player_infoB
Get a player by their unique id or name
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | The name or unique id of the player |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description lacks details like read-only nature, permission requirements, or return format. Minimal behavioral disclosure.
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?
Single sentence, 9 words, direct and efficient. No extraneous information.
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?
Adequate for a simple lookup tool, but lacks details about return value or scope. Could be more complete given 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?
Schema has 100% coverage; description merely restates the schema meaning. No additional semantic value beyond what the schema already provides.
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?
Clearly states it retrieves a player by identifier (name or id). Distinguishes from siblings like get_online_players (multiple players) and get_nodes (different resource).
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 on when to use this tool versus alternatives. Does not mention that get_online_players is for listing multiple players or that execute_player_command is for actions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_servicesA
List all smart services
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It only says 'List all smart services', implying a read-only operation, but does not explicitly state that it is non-destructive, has no side effects, or any other behavioral traits. The minimal information is insufficient.
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 extra words. It is front-loaded and efficient, earning its place.
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 list tool with no parameters and no output schema, the description provides the essential purpose. However, it could be slightly more complete by indicating that it returns a list of service identifiers or summaries, but the current level is adequate.
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?
There are no parameters, so the baseline score is 4. The description adds no parameter-specific information, which is acceptable given the absence of parameters.
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 clearly states the action ('List') and the resource ('all smart services'), making the purpose unambiguous. It distinguishes itself from sibling list tools by specifying 'services' rather than nodes, players, or other entities.
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 provided on when to use this tool versus alternatives like get_nodes or get_player_info. The description does not mention any conditions or context for use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kick_playerC
Kicks a given player from the entire network
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | The name or unique id of the player | |
| message | Yes | The kick message/reason |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only says 'kicks' without explaining effects (e.g., immediate disconnection), required permissions, or what happens to the player's session. Essential context is missing.
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 clear sentence with no wasted words. It is front-loaded and easy to parse, though it sacrifices detail for brevity.
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?
Despite low complexity (2 required params, no output schema), the description fails to explain the tool's side effects or return behavior. For a destructive action like kicking, more context is needed, such as whether confirmation is required or if the action is irreversible.
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 covers both parameters with descriptions (identifier and message). The tool description adds no additional meaning beyond the schema, so it meets the baseline for 100% coverage.
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 clearly states the action (kicks) and the target (a given player from the entire network), which distinguishes it from sibling tools like send_player_message or get_online_players. However, it could be more specific about the scope (e.g., network vs server).
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 provided on when to use this tool versus alternatives such as execute_player_command or send_player_message. The description lacks context about prerequisites or appropriate scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
send_player_messageB
Sends a chat message to a given player
| Name | Required | Description | Default |
|---|---|---|---|
| identifier | Yes | The name or unique id of the player | |
| message | Yes | The chat message to send |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description omits behavioral traits such as required permissions, player status checks, rate limits, or error handling.
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?
Single sentence, no unnecessary words, perfectly efficient.
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?
No output schema is provided, and the description does not explain return values or side effects. For a simple action, this is adequate but not complete.
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 100% and both parameters are clearly described. The tool description adds no extra meaning beyond the schema, meeting baseline expectation.
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?
Clearly states the verb ('sends') and resource ('chat message to a given player'), distinguishing it from sibling tools like kick_player or execute commands.
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 on when to use this tool vs alternatives, preconditions (e.g., player must be online), or when not to use it.
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.
9 tool updates
v0.1.0- First observed
execute_player_command - First observed
execute_service_command - First observed
get_node_info - First observed
get_nodes - First observed
get_online_players - First observed
get_player_info - First observed
get_services - First observed
kick_player - First observed
send_player_message
TDQS
Scored across 9 tools
Each tool targets a distinct action: player vs service commands, node info vs list, player info vs online list, kick vs message. No overlap.
All tools follow a consistent verb_noun pattern in snake_case: execute, get, kick, send. Naming is predictable.
9 tools is well-scoped for a cluster management server covering nodes, services, and players. Feels complete without bloat.
Covers essential node listing/info, player operations, and service commands. Missing service lifecycle (create/delete) and node actions, but core workflows are present.
Maintenance
Related MCP Connectors
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Use AI models for chat, image, and video generation from Claude Code and other MCP hosts.
Synap (pool.linkrra.com/v1), Linkrra's OpenAI-compatible LLM API, as an MCP server.
Generate AI images and videos from any compatible MCP client.
Related MCP Servers
- 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
- AlicenseNot gradedqualityBmaintenanceExposes the RunCloud v3 API to AI assistants, allowing natural language querying and management of servers with safety profiles for destructive operations.1MIT
- FlicenseNot gradedqualityBmaintenanceConnects VeryCloud/Wisp game servers to MCP-compatible AI clients, enabling server inspection, file and log reading, console commands, and power management with security-focused defaults.-
- AlicenseNot gradedqualityBmaintenanceEnables AI clients like Codex and Claude Code to manage Minecraft servers through the Exaroton API, including status, logs, crash diagnostics, player management, and guarded server actions with confirmation.MIT