Skip to main content
Glama

CloudNet MCP 서버

이 서버는 CloudNet Service REST API v3에 대한 인터페이스를 제공하는 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이를 통해 AI 어시스턴트가 사용자의 CloudNet 노드와 서비스를 안전하고 정확하게 관찰할 수 있습니다.

주요 기능

  • 노드 및 정보 가져오기: 모든 클러스터 노드를 나열하고 상세 통계를 가져옵니다.

  • 서비스 관리: 활성 스마트 서비스 목록을 확인하고 서버 콘솔에서 명령을 원활하게 실행합니다.

  • 플레이어 관리: 온라인 플레이어 조회, 플레이어 프로필 검사, 플레이어 추방, 메시지 전송 및 플레이어를 대신하여 명령 실행을 수행합니다.

  • QQ 봇 모드: 안전한 명령 실행 기능을 갖춘 QQ 그룹 서버 관리 봇에 최적화되어 있습니다.

Related MCP server: RunCloud MCP Server

사전 요구 사항

  • Python 3.12+

  • uv 패키지 관리자

설치

git clone https://github.com/yourusername/cloudnet-mcp.git
cd cloudnet-mcp
uv sync

구성

환경 변수

  • CLOUDNET_URL: REST API URL (기본값: http://127.0.0.1:2812/api/v3)

  • CLOUDNET_USER: 기본 인증 사용자 이름

  • CLOUDNET_PASSWORD: 기본 인증 비밀번호

QQ 봇 모드 (선택 사항)

예제 설정을 복사하여 사용자 정의합니다:

cp config.example.yaml config.yaml

config.yaml에서 QQ 모드를 활성화합니다:

qq_mode:
  enabled: true
  safe_commands_only: true
  chinese_responses: true

실행

# Basic usage
uv run cloudnet-mcp

# With config file
uv run cloudnet-mcp -c config.yaml

명령줄 옵션

옵션

설명

-c, --config

YAML 구성 파일 경로

QQ 봇 모드

QQ 모드가 활성화되면 추가 도구를 사용할 수 있습니다:

도구

설명

get_services_summary

서버 상태 개요 가져오기

find_player

서버 전체에서 플레이어 검색

get_command_help

권한별 사용 가능한 명령 나열

execute_safe_command

화이트리스트에 등록된 명령만 실행

안전한 명령 실행

명령은 권한 수준별로 구성됩니다:

  • Guest (게스트): 쿼리 명령 (list, tps, seed 등)

  • Admin (관리자): 관리 명령 (kick, ban, whitelist, gamemode 등)

  • Super User (슈퍼 유저): 서버 명령 (stop, restart, reload 등)

권한 상속: 관리자는 게스트 권한을 상속받으며, 슈퍼 유저는 모든 권한을 상속받습니다.

사용자 정의 명령

config.yaml에 사용자 정의 명령을 추가합니다:

safe_commands:
  guest:
    - command: stats
      args: "<player>"
      description: "View player statistics"
  admin:
    - command: money
      args: "set <player> <amount>"
      description: "Set player balance"

사용자 정의 명령은 내장 명령과 병합됩니다. 동일한 명령 이름을 사용하여 내장 명령 설명을 재정의할 수 있습니다.

차단된 명령

다음 패턴은 항상 차단됩니다:

  • 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": "your_user",
        "CLOUDNET_PASSWORD": "your_password"
      }
    }
  }
}

CloudNet MCP 서버

이것은 CloudNet Service REST API v3에 대한 인터페이스 액세스 지원을 제공하는 모델 컨텍스트 프로토콜(MCP) 서버입니다. 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

명령줄 매개변수

매개변수

설명

-c, --config

YAML 구성 파일 경로

QQ Bot 모드

QQ 모드를 활성화하면 다음과 같은 추가 도구가 제공됩니다:

도구

설명

get_services_summary

서버 상태 개요 가져오기

find_player

서버 간 플레이어 검색

get_command_help

권한별 사용 가능한 명령 나열

execute_safe_command

화이트리스트 내의 명령만 실행

안전한 명령 실행

명령은 권한 수준별로 구성됩니다:

  • Guest (게스트): 쿼리류 명령 (list, tps, seed 등)

  • Admin (관리자): 관리류 명령 (kick, ban, whitelist, gamemode 등)

  • Super User (슈퍼 유저): 서버 관리 명령 (stop, restart, reload 등)

권한 상속: 관리자는 게스트 권한을 상속받으며, 슈퍼 유저는 모든 권한을 상속받습니다.

내장 명령 목록

Guest 레벨 (11개):

  • list - 온라인 플레이어 목록 확인

  • tps - 서버 TPS 확인

  • seed - 월드 시드 확인

  • difficulty - 게임 난이도 확인

  • whitelist list - 화이트리스트 목록 확인

  • time query - 게임 시간 조회

  • gamerule query - 게임 규칙 조회

  • scoreboard objectives list - 스코어보드 목표 나열

  • scoreboard players list - 스코어보드 플레이어 나열

  • bossbar list - 보스바 나열

  • trigger - 스코어보드 목표 트리거

Admin 레벨 (41개):

  • kick <플레이어> [사유] - 플레이어 추방

  • ban <플레이어> [사유] - 플레이어 차단

  • pardon <플레이어> - 플레이어 차단 해제

  • ban-ip <주소|플레이어> [사유] - IP 차단

  • pardon-ip <주소> - IP 차단 해제

  • whitelist 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 tools
execute_player_commandC

Executes a command for a given player

NameRequiredDescriptionDefault
identifierYesThe name or unique id of the player
commandYesThe command to execute (without prefixing slash)
redirectToServerNoRedirect downstream if not found on proxy

TDQS

C2.8/5.0
Behavior2/5

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.

Conciseness3/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
identifierYesThe name or unique id of the service
commandYesThe command to execute on the service

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
node_idYesThe ID of the node

TDQS

B3.2/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
limitNoThe maximum amount of players to respond with
skipNoThe amount of players to skip
sortNoSort players by name

TDQS

B3.1/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
identifierYesThe name or unique id of the player

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault

No parameters

TDQS

A3.6/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
identifierYesThe name or unique id of the player
messageYesThe kick message/reason

TDQS

C2.9/5.0
Behavior2/5

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.

Conciseness4/5

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.

Completeness2/5

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.

Parameters3/5

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.

Purpose4/5

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.

Usage Guidelines2/5

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

NameRequiredDescriptionDefault
identifierYesThe name or unique id of the player
messageYesThe chat message to send

TDQS

B3.3/5.0
Behavior2/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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.

  1. 9 tool updatesv0.1.0
    • First observedexecute_player_command
    • First observedexecute_service_command
    • First observedget_node_info
    • First observedget_nodes
    • First observedget_online_players
    • First observedget_player_info
    • First observedget_services
    • First observedkick_player
    • First observedsend_player_message

TDQS

A3.5/5.0

Scored across 9 tools

Disambiguation5/5

Each tool targets a distinct action: player vs service commands, node info vs list, player info vs online list, kick vs message. No overlap.

Naming Consistency5/5

All tools follow a consistent verb_noun pattern in snake_case: execute, get, kick, send. Naming is predictable.

Tool Count5/5

9 tools is well-scoped for a cluster management server covering nodes, services, and players. Feels complete without bloat.

Completeness4/5

Covers essential node listing/info, player operations, and service commands. Missing service lifecycle (create/delete) and node actions, but core workflows are present.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    B
    quality
    D
    maintenance
    Enables AI assistants to interact with and manage Minecraft servers through a standardized interface, supporting server monitoring, player management, log analysis, and command execution.
    11
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables 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