Skip to main content
Glama

Bedrock Server Manager MCP Server (bsm-mcp)

License: MIT

A Model Context Protocol (MCP) server for Bedrock Server Manager (BSM), enabling AI assistants (such as Antigravity, Claude Desktop, Cursor, and OpenHands) to manage Minecraft Bedrock Dedicated Servers via natural language.

Features

  • OpenAPI Powered: Automatically discovers and binds all endpoints from Bedrock Server Manager's OpenAPI specification (/openapi.json).

  • Dynamic Endpoint Support: Automatically adapts to any custom endpoints added by BSM plugins or server updates.

  • Automated Authentication: Seamlessly authenticates with BSM's /auth/token endpoint using JWT Bearer tokens and handles automatic token refreshing.

  • Server Lifecycle & Commands: Start, stop, restart, run commands (say, kick, whitelist), monitor resource stats, manage backups, and configure allowlists.

Related MCP server: Minecraft MCP Server

Quick Start

Using uvx (Recommended)

No installation required. Add bsm-mcp directly to your MCP client configuration (e.g. mcp_config.json or claude_desktop_config.json):

{
  "mcpServers": {
    "bedrock-server-manager": {
      "command": "uvx",
      "args": ["bedrock-server-manager-mcp"],
      "env": {
        "BSM_URL": "http://localhost:8000",
        "BSM_USERNAME": "admin",
        "BSM_PASSWORD": "your-password"
      }
    }
  }
}

Environment Variables

Variable

Description

Default

BSM_URL

Base URL of your Bedrock Server Manager web instance

http://localhost:8000

BSM_USERNAME

BSM user account with appropriate permissions

admin

BSM_PASSWORD

Password for the user account

""

BSM_TOKEN

Optional pre-existing JWT access token

None

BSM_OPENAPI_PATH

Path or URL to OpenAPI spec (if using local file)

None (fetches from /openapi.json)

BSM_TIMEOUT

Request timeout in seconds

30.0

BSM_VERIFY_SSL

Verify SSL certificates when connecting over HTTPS

true

Development

# Clone the repository
git clone https://github.com/DrPapaya17/bedrock-server-manager-mcp.git
cd bedrock-server-manager-mcp

# Install dependencies using uv
uv sync --all-extras

# Run the MCP server
uv run bsm-mcp

License

This project is licensed under the MIT License.

Available Tools

17 tools
add_to_allowlistAdd To AllowlistC

Add a player by gamertag and optional XUID to the server allowlist.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesPlayer Gamertag
xuidNoOptional Xbox Live XUID
server_nameYes
ignoresPlayerLimitNo

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, yet it only restates that a player is added. It says nothing about whether the change takes effect immediately or after a restart, whether the server must be running, what permissions are required, or whether it fails on a duplicate entry. The only real disclosure, that XUID is optional, is already in the schema.

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?

A single, front-loaded sentence with no filler or repetition. Its brevity is efficient, though it errs toward under-specification rather than genuine conciseness.

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?

For a 4-parameter mutation tool with no annotations and no output schema, the description is too thin. It leaves the ignoresPlayerLimit semantics, server targeting, and the effect/outcome of the operation entirely to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 50%: name and xuid are documented in the schema, and the description merely restates them. The two undocumented parameters, server_name and ignoresPlayerLimit, get no explanation here—notably ignoresPlayerLimit, whose meaning (bypassing the player cap) is non-obvious and unaddressed.

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 names a concrete verb ("Add") and resource ("player... to the server allowlist"), so an agent knows exactly what the tool does. It does not explicitly differentiate itself from the close siblings get_allowlist or remove_from_allowlist, though the add/remove distinction is largely self-evident.

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?

There is no guidance on when to use this tool versus alternatives, no prerequisites, and no exclusions. The agent must infer usage entirely from the name and the existence of get_allowlist and remove_from_allowlist.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

create_backupCreate BackupC

Create a hot backup of the specified Minecraft server's world and configuration.

ParametersJSON Schema
NameRequiredDescriptionDefault
server_nameYesThe name of the server to back up

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 carries the full behavioral burden. 'Hot backup' usefully implies an online backup without stopping the server, but it omits what gets written where, disk-space or permission implications, whether the operation is blocking or long-running, and what the agent can do with the result.

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?

One sentence, front-loaded with the verb and resource, with no filler. It is appropriately sized for the operation, though the budget freed by its brevity is not spent on any routing or constraint detail.

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?

For a mutation that creates disk artifacts, with no annotations and no output schema, the definition is under-specified: the agent does not know the backup's location, naming, whether the server must be running, or expected return. A single simple parameter keeps the gap from being fatal, but the description does not fill it.

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% for the single server_name parameter, so the schema already documents it fully. The description restates 'the specified Minecraft server' without adding format, naming rules, or validation info beyond the schema. Baseline 3 applies.

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?

States a specific verb (create) and resource (backup) with scope (world and configuration of a specified server). It is clear what the tool does, but it never distinguishes itself from the sibling list_backups or explains the relationship between creating and listing backups.

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?

There is no when-to-use guidance, no stated prerequisites (e.g., whether the server must be running or stopped), and no reference to alternatives such as list_backups to verify an existing backup first. The agent must infer all usage context.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_allowlistGet AllowlistC

Get the allowlist (whitelist) of players permitted to join the server.

ParametersJSON Schema
NameRequiredDescriptionDefault
server_nameYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It implies a read-only operation via 'Get', but does not state permissions required, whether the server must be running, whether the result is paginated, or what format is returned. These are material gaps for an unannotated tool.

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 front-loaded sentence with zero wasted words. It is appropriately sized for a simple one-parameter read tool.

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 annotations and no output schema, the description is under-specified: it doesn't document the required server_name parameter, permissions, or server-state requirements. It states the resource being retrieved but leaves key operational details to inference.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single required parameter server_name, and the description never explains how to specify the server (format, naming conventions) or what the parameter controls. It does not compensate for the missing schema documentation.

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 uses a specific verb ('Get') and resource ('allowlist') and clarifies the synonym ('whitelist') as players permitted to join. It is clear what the tool returns, but it does not distinguish itself from siblings like add_to_allowlist or remove_from_allowlist by name.

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?

There is no explicit when-to-use guidance, no mention of alternatives such as add_to_allowlist/remove_from_allowlist, and no stated preconditions (e.g., whether the server must be running). The usage context is only implied by the verb 'Get'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_permissionsGet PermissionsB

Get player permission levels (visitor, member, operator) configured for the server.

ParametersJSON Schema
NameRequiredDescriptionDefault
server_nameYes

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It implies a read via 'Get' and names the returned levels, but says nothing about read-only safety, required auth/permissions, whether it covers only explicitly-set levels or defaults, or failure behavior for an unknown server_name.

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, front-loaded with the verb and resource, with zero filler. Appropriately sized for a simple single-parameter read tool.

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?

For a one-parameter read tool with no output schema, the description is minimally adequate: it names the value it returns and the server scope. It stops short of describing the return shape or the meaning of unset permissions, which is the only thing an agent might still need.

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 0% and the single server_name parameter has no documentation. The phrase 'configured for the server' lightly implies the parameter selects the target server, but the description adds essentially no syntax or format detail beyond the self-explanatory name.

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?

States a specific verb+resource ('Get player permission levels') and scopes it to the server, with the enum of levels (visitor, member, operator) clarifying what kind of permissions. It implicitly but clearly contrasts with the write-side sibling set_permission. It doesn't explicitly name that sibling, so it falls short of a 5.

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?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as set_permission or get_allowlist. The agent must infer that this is the read counterpart to set_permission.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_propertiesGet PropertiesC

Retrieve key-value settings from server.properties (e.g. gamemode, difficulty, max-players, port).

ParametersJSON Schema
NameRequiredDescriptionDefault
server_nameYes

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 carries the full behavioral burden. 'Retrieve' implies a read-only operation, but it says nothing about permissions, behavior when the file or server is missing, whether defaults are returned, or whether all or a subset of properties come back.

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?

A single front-loaded sentence with no filler. The resource is stated first and the examples are compact and useful.

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?

For a simple one-parameter read tool with no output schema, the description is roughly adequate: it conveys the source file and the kind of values returned. It is missing error/edge-case behavior and any parameter clarification, which for a 0%-coverage schema leaves a real gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the single required parameter server_name is documented nowhere. The description does not explain what server_name should contain or whether it must be an exact registered name, leaving the agent to guess from context alone.

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 gives a specific verb ('Retrieve'), a precise resource ('key-value settings from server.properties'), and concrete examples (gamemode, difficulty, max-players, port). This distinguishes it reasonably from get_server_status or get_system_info, though it never names those siblings explicitly.

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?

There is no when-to-use guidance, no mention of when this is preferable to get_server_status or get_system_info, and no prerequisites stated. The agent must infer usage purely from the noun 'settings'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_server_statusGet Server StatusB

Get detailed runtime status, CPU/RAM usage, and active player counts for a specific server.

ParametersJSON Schema
NameRequiredDescriptionDefault
server_nameYesThe name of the Minecraft Bedrock server

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It does disclose the nature of the payload (runtime status, CPU/RAM, player counts), which implies a non-destructive read, but it says nothing about auth requirements, failure modes for an unknown/stopped server, or whether the call is expensive.

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?

A single front-loaded sentence that packs the verb, scope, and returned fields with zero filler. Nothing to trim.

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 one-parameter read tool with no output schema and no annotations, the description conveys enough to call it correctly and sets expectations for the returned data. Only the absence of any routing guidance against sibling tools keeps it from being fully 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 the single parameter is fully documented in the schema as the Minecraft Bedrock server name. The description adds no format, case-sensitivity, or naming-convention detail beyond what the schema already states, so the baseline 3 applies.

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 names a specific verb ('Get') and resource ('runtime status') and enumerates the returned data (CPU/RAM usage, active player counts) for a named server. It implicitly distinguishes itself from the sibling get_system_info by scoping to 'a specific server', but never names that sibling explicitly.

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?

There is no statement of when to use this tool versus alternatives such as get_system_info or list_all_servers, and no preconditions (e.g., server must be running, token required). The agent must infer the routing decision entirely from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_system_infoGet System InfoA

Retrieve host system resource usage, OS details, and BSM application version.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are supplied, so the description carries the full burden. 'Retrieve' plus a static enumeration of returned data conveys that this is a non-mutating, informational read, which is the main behavioral fact for a zero-parameter tool, but there is no mention of permissions, cost, or frequency limits.

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?

A single sentence with no filler, and the resource scope is front-loaded immediately after the verb. Every clause earns its place by naming a distinct category of returned data.

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?

With no output schema, the description compensates by enumerating the three categories of data returned, and with no parameters there is little else an agent needs. It stops short of describing the shape of that data or how it is scoped to a host, which keeps it from a 5.

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 takes zero parameters, so the baseline of 4 applies. Nothing in the description conflicts with the empty schema.

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?

Specific verb (Retrieve) plus an enumerated resource set (host resource usage, OS details, BSM application version), so an agent knows exactly what comes back. It does not, however, differentiate itself from the nearby read-only sibling get_server_status, which an agent could reasonably confuse with it.

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?

There is no when-to-use guidance, no stated prerequisites, and no mention of alternatives such as get_server_status or list_all_servers. The agent must infer the appropriate context entirely on its own.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_addonsList AddonsC

List all behavior and resource packs installed on the server.

ParametersJSON Schema
NameRequiredDescriptionDefault
server_nameYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'List' implies a non-destructive read, but the description does not state permission requirements, whether the target server must be running, or what happens on failure, leaving the safety/behavior profile largely unstated.

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?

A single, front-loaded sentence with no filler. Every word contributes to identifying the resource being listed.

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?

For a simple one-parameter listing tool with no output schema, the purpose is conveyed adequately. However, the meaning of server_name and the read-only nature are left to inference, so it is minimally viable rather than complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for the single parameter server_name, and the description never mentions it. It implies a server context ('installed on the server') but does not explain that server_name selects which server, so it fails to compensate for the schema gap.

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?

Uses a specific verb ('List') and names the exact resource ('behavior and resource packs installed on the server'), which is clear and distinct from siblings like list_backups or get_allowlist. It does not explicitly differentiate itself from other list_* tools, but the resource is specific enough to identify it.

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, and no prerequisites stated. A reader infers it is a read-only enumeration, but nothing explicitly says so or distinguishes it from the other listing tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_all_serversList All ServersA

Retrieve overview and operational status for all managed Minecraft Bedrock servers.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
serversNo

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. The verb "Retrieve" signals a safe read, and it says what is returned (overview plus operational status), but it says nothing about authorization requirements, cost of enumerating every server, or whether results are cached or live.

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?

A single sentence with no filler, front-loading the verb and the scope constraint. Every word earns 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?

With an output schema present and no input parameters, the description only needs to frame what the call does and roughly what it yields, which it does. Minor gaps remain around authentication or scale, but nothing blocks correct invocation.

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 takes zero parameters, so there is nothing for the description to clarify beyond the schema. Baseline 4 applies for a parameterless tool.

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 gives a specific verb (Retrieve) and resource (all managed Minecraft Bedrock servers), and the scope word "all" distinguishes it from the singular sibling get_server_status. It stops short of naming that sibling explicitly, so an agent must infer the boundary between listing and fetching one server's status.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: "all managed ... servers" suggests a fleet-wide inventory use case versus the single-server get_server_status, but the description never states when to prefer this over get_server_status or get_system_info. No prerequisites or exclusions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_backupsList BackupsC

List all available backup archives for a specific server.

ParametersJSON Schema
NameRequiredDescriptionDefault
server_nameYesThe name of the server

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It implies a read-only listing but says nothing about ordering, pagination, what happens if the server has no backups, or whether authentication/permissions are required.

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?

A single front-loaded sentence with no filler; the resource and scope come first. It is efficient, though it is arguably too terse to be a 5 given the gaps elsewhere.

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?

For a simple one-parameter read tool with no output schema, the description is minimally viable. It does not describe what a returned backup archive record looks like or how results are ordered, which the absence of an output schema leaves uncovered.

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% for the single server_name parameter, so the schema already documents the input. The phrase 'for a specific server' reinforces which server is targeted but adds no format or constraint detail beyond the schema, making the baseline 3 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?

States a specific verb (List) and resource (backup archives) with scope ('for a specific server'), which distinguishes it from create_backup in the sibling set. However, it never explicitly names or contrasts with any sibling, so it falls short of a 5.

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 gives no when-to-use, when-not-to-use, or alternative guidance. It is inferable that this is the read counterpart to create_backup, but nothing in the text says so or explains prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

obtain_tokenObtain TokenB

Authenticate using username and password to receive a Bearer JWT access token.

ParametersJSON Schema
NameRequiredDescriptionDefault
passwordYes
usernameYes
remember_meNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
token_typeNo
access_tokenNo

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It helpfully discloses the output type (a Bearer JWT access token), but says nothing about token expiry, session duration, credential validation, or failure behavior, and does not explain what 'remember_me' changes.

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?

A single front-loaded sentence that states the action and the result with zero filler. Every word earns its place.

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?

An output schema exists, so return-value explanation is not required. However, for an authentication tool with no annotations, the description omits token lifecycle, error handling, and the meaning of 'remember_me', leaving gaps an agent would want filled.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, but it only names username and password with no format or semantic detail. The optional 'remember_me' parameter is completely undocumented in both the schema and the description.

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 states a specific verb (Authenticate) and a concrete outcome (receive a Bearer JWT access token), so an agent knows exactly what the tool produces. It does not name or differentiate from siblings, but none of the listed siblings perform authentication, so the distinction is naturally unambiguous.

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?

There is no explicit guidance on when to call this tool, whether it must precede other operations, or what to do with the returned token. No alternatives exist among the siblings, so routing is trivial, but the description still leaves sequencing and prerequisites to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

remove_from_allowlistRemove From AllowlistB

Remove a player from the server allowlist by gamertag.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYesPlayer Gamertag
server_nameYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden for a destructive access-revocation operation. It does not say whether removal is reversible, whether the player must currently be on the allowlist, what error occurs if not, or whether elevated permissions or a running server are required.

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?

A single front-loaded sentence with zero filler; the verb, target, and identifying key all appear immediately.

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 two-parameter mutation with no output schema, the sentence is nearly enough, but the absence of annotations means the description should have covered failure behavior and permission requirements for revoking access.

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 50%: the 'name' parameter is documented as 'Player Gamertag' in the schema and the description reinforces that identification is by gamertag, but server_name is undocumented in both places and the description adds no format or scoping detail beyond the schema.

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?

States a specific verb (Remove), resource (player), and target collection (server allowlist), plus the identifier type (gamertag). It is clearly the inverse of the sibling add_to_allowlist, though it never names that sibling explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the verb and the existence of add_to_allowlist, but the description offers no explicit when-to-use or when-not-to-use guidance, no prerequisites, and no named alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

restart_serverRestart ServerB

Restart a running Minecraft Bedrock Dedicated Server.

ParametersJSON Schema
NameRequiredDescriptionDefault
server_nameYesThe name of the server to restart

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, yet it discloses nothing beyond the action itself. It does not say whether the restart is graceful, whether world state or config is preserved, expected downtime, or permission requirements.

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?

A single, front-loaded sentence with no filler or repetition. It is efficient, though its brevity is also the source of its missing detail rather than a genuine strength.

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?

For a state-changing operation with no annotations and no output schema, the description should mention preconditions, downtime or data implications, and failure behavior. None of that is present, leaving an agent under-informed about the consequences of calling it.

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% for the single server_name parameter, so the schema already documents it fully. The description adds no format, naming, or matching guidance beyond what the schema provides, making the baseline 3 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?

States a specific verb (restart) and resource (Minecraft Bedrock Dedicated Server), and the word 'running' signals a precondition. It is clear on its own but does not explicitly differentiate itself from the sibling start_server/stop_server tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: 'running' hints that the server must already be up, and the name implies use versus start_server/stop_server. There is no explicit when-to-use, when-not-to-use, or named alternative.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

send_commandSend CommandB

Execute a console command on a running Minecraft server (e.g. 'say Hello', 'whitelist on', 'time set day').

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYesThe command string to execute in server console
server_nameYesThe name of the target server

TDQS

B3.3/5.0
Behavior2/5

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 implies arbitrary command execution and mutation but never states permissions required, that commands can be destructive/irreversible, or what happens on an invalid command. This is a significant gap for an execute-arbitrary-string tool.

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?

A single sentence, front-loaded with the verb and resource, with parenthetical examples that earn their place by clarifying what a 'command' looks like. No waste.

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?

For a two-parameter tool with no output schema and no annotations, the description covers the core action but omits the safety/permission profile and any notion of the response or error behavior. Adequate but with clear gaps.

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%, so both parameters are documented in the schema and the baseline is 3. The examples in the description loosely illustrate the expected command format, adding marginal value beyond the schema but no syntax or format rules.

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?

States a specific verb (execute) and resource (console command) and adds concrete examples ('say Hello', 'whitelist on') that pin down the scope. It is distinguishable from siblings like start_server or set_permission, though it doesn't explicitly name what separates it from them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'on a running Minecraft server' implies the prerequisite that the server must already be up, which is useful context. However, there is no explicit when-to-use vs. alternatives guidance, nor any note about when this tool is inappropriate (e.g. use stop_server instead).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_permissionSet PermissionC

Set a player's permission level by XUID.

ParametersJSON Schema
NameRequiredDescriptionDefault
xuidYesPlayer Xbox Live XUID
permissionYesRole to grant
server_nameYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Set' implies a mutation, but the description does not explain permissions required, reversibility, side effects, or what happens to an existing permission.

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 front-loaded sentence with no wasted words. It is appropriately short for a concise tool definition, though its brevity contributes to gaps addressed in other dimensions.

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?

For a mutation tool with no annotations, no output schema, and one undocumented required parameter, this description is incomplete. An agent can infer the basic operation but lacks guidance on permissions, side effects, and server-state prerequisites.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 67%, so the schema already documents xuid and permission, and server_name is undocumented. The description adds only 'by XUID', which repeats schema information without explaining server_name or the meaning of the permission enum values.

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 states a specific verb (Set) and resource (a player's permission level), and it identifies the key parameter (by XUID). It does not differentiate from siblings like get_permissions or add_to_allowlist, so it falls short of a 5.

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?

There is no guidance on when to use this tool versus alternatives such as get_permissions or add_to_allowlist. The description also omits prerequisites like whether the server must be running or whether the caller needs operator rights.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_serverStart ServerB

Start a stopped Minecraft Bedrock Dedicated Server.

ParametersJSON Schema
NameRequiredDescriptionDefault
server_nameYesThe name of the server to start

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It does not disclose whether starting requires authentication, what happens on an already-running or nonexistent server, whether the call blocks until ready, or what is returned on success/failure.

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?

A single front-loaded sentence with no filler; the essential verb-resource-scope information comes first and nothing is wasted.

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?

For a simple one-param mutation tool this is minimally adequate, but with no annotations and no output schema the definition omits the safety and outcome context (permissions, failure modes, timing) an agent needs to invoke it confidently.

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?

With one parameter and 100% schema description coverage, the schema already documents server_name fully. The description adds no naming conventions, format constraints, or lookup semantics beyond what the schema provides, so baseline 3 applies.

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?

States a specific verb (start) and resource (Minecraft Bedrock Dedicated Server) with the 'stopped' qualifier, which implicitly distinguishes it from restart_server and stop_server. Clear, though it does not explicitly name those siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The word 'stopped' implies the precondition that the server is not currently running, and the sibling list contains restart_server as an alternative, but the description never states when to prefer this over restart_server or what to do if the server is already running.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stop_serverStop ServerB

Gracefully stop a running Minecraft Bedrock Dedicated Server.

ParametersJSON Schema
NameRequiredDescriptionDefault
server_nameYesThe name of the server to stop

TDQS

B3.4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. 'Gracefully' is a meaningful behavioral disclosure implying a clean shutdown rather than a hard kill, but it says nothing about permissions required, whether world data is flushed/saved, or what happens if the server is already stopped.

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?

A single front-loaded sentence with zero filler; the verb and resource appear immediately.

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 one-parameter, no-output tool with complete schema coverage, the description is nearly sufficient. It is slightly thin for a state-changing operation with no annotations, but an agent has enough to invoke it correctly.

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 the single server_name parameter is fully documented in the schema. The description adds no format, naming-convention, or resolution detail beyond it, so the baseline 3 applies.

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?

States a specific verb ('stop') and resource ('Minecraft Bedrock Dedicated Server'), and 'running' scopes it to an active server. It does not explicitly differentiate itself from restart_server or start_server, though the verb makes the distinction reasonably clear.

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?

There is no guidance on when to use this versus restart_server or send_command, nor any prerequisites such as the server needing to be running. The agent must infer usage entirely from the name.

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. 17 tool updatesv0.1.0
    • First observedadd_to_allowlist
    • First observedcreate_backup
    • First observedget_allowlist
    • First observedget_permissions
    • First observedget_properties
    • First observedget_server_status
    • First observedget_system_info
    • First observedlist_addons
    • First observedlist_all_servers
    • First observedlist_backups
    • First observedobtain_token
    • First observedremove_from_allowlist
    • First observedrestart_server
    • First observedsend_command
    • First observedset_permission
    • First observedstart_server
    • First observedstop_server

TDQS

B3.3/5.0

Scored across 17 tools

Disambiguation5/5

Each tool targets a distinct resource or action: auth, host info, server listing, per-server status, lifecycle, console, backups, allowlist, permissions, properties, and addons. Overlaps like list_all_servers versus get_server_status are differentiated by scope (all servers vs one server) and descriptions clarify intent. No two tools appear to do the same thing.

Naming Consistency5/5

Names follow a consistent snake_case verb_noun pattern (get_, list_, start_, stop_, add_, remove_, set_, create_). Minor variations like obtain_token versus get_* and get_permissions versus set_permission are still predictable. Overall naming is highly consistent.

Tool Count4/5

17 tools is slightly above the typical 3-15 sweet spot but each tool maps to a distinct capability in server management. No obvious redundant tools exist, though the count is on the heavier side.

Completeness3/5

Core read and lifecycle coverage exists, but notable gaps remain: properties can be read (get_properties) but not written (no set_properties), backups can be created and listed but not restored or deleted, and there is no server create/delete. These missing operations create dead ends for common administrative workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers