Skip to main content
Glama
README.md
# Bedrock Server Manager MCP Server (`bsm-mcp`)

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

A Model Context Protocol (MCP) server for [Bedrock Server Manager (BSM)](https://github.com/DMedina559/bedrock-server-manager), 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.

## 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`):

```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

```bash
# 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](LICENSE).

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