Minecraft MCP Сервер
Управление сервером Minecraft через RCON. Интегрирует FastMCP для простого выполнения команд, поддерживает взаимодействие с Claude Desktop и другими клиентами MCP, а также предлагает гибкую архитектуру для локальной разработки и использования в производстве.
Обзор
Minecraft-MCP-Server
Python MCP сервер, разработанный для управления сервером Minecraft через RCON, использующий FastMCP для бесшовной интеграции и выполнения команд.
🔧 Функции
- Словарь команд: Предоставляет обширный набор команд для улучшения взаимодействия с сервером Minecraft.
- Выполнение RCON: Выполняет команды непосредственно на сервере Minecraft с использованием RCON для управления в реальном времени.
- Интеграция с клиентом: Совместим с Claude Desktop или любым MCP клиентом для удобного управления.
- Гибкая структура: Поддерживает как локальную разработку через
stdio
, так и производственные среды через HTTP/SSE.
📦 Структура проекта
mcp_server/
├── commands.json # Содержит команды и примеры использования
├── server.py # Основной скрипт сервера для MCP
├── commands.json # Команды Minecraft для контекстного понимания
└── (venv/) # Необязательная виртуальная среда для зависимостей
⚙️ Установка
-
Клонируйте репозиторий:
cd Minecraft-MCP-Server/mcp_server
-
Настройте окружение и установите зависимости:
python -m venv venv venv\Scripts\activate pip install mcp[cli] mcrcon
📝 Настройка
В файле commands.json
вы найдете разнообразные команды, такие как /give
, /weather
и /gamemode
, с описаниями и примерами использования.
Убедитесь, что RCON включен в вашем файле server.properties
Minecraft:
enable-rcon=true
rcon.password=minemcp
rcon.port=25575
🚀 Запуск сервера
Чтобы запустить сервер, активируйте виртуальное окружение и выполните:
venv\Scripts\activate
python server.py
По умолчанию сервер MCP запускается в режиме STDIO.
⚙️ Интеграция с Claude Desktop
Чтобы интегрироваться с Claude Desktop, измените файл claude_desktop_config.json
(находится в %APPDATA%\Claude\
):
{
"mcpServers": {
"minecraft-controller": {
"type": "stdio",
"command": "C:\\...\\venv\\Scripts\\python.exe",
"args": ["C:\\...\\mcp_server\\server.py"],
"env": {"PATH": "%PATH%"}
}
}
}
Перезапустите Claude, чтобы увидеть сервер ‘minecraft-controller’ в списке.
🧪 Локальное тестирование с Python
Вы можете протестировать сервер локально, используя следующий скрипт на Python:
from fastmcp import Client
import asyncio
async def test():
client = Client("mcp_server/server.py")
async with client:
res = await client.call_tool("run_minecraft_command", {"command": "/list"})
print("Игроки:", res)
cmds = await client.read_resource("minecraft://commands")
print("Команды:", list(cmds.keys())[:5])
asyncio.run(test())
🧰 Как это работает
- Функциональность FastMCP: Автоматически загружает инструменты и ресурсы для эффективной обработки команд.
- Ресурс команд: Ресурс
minecraft://commands
предоставляет словарь доступных команд. - Выполнение команд: Инструмент
run_minecraft_command
используетmcrcon
для отправки команд на сервер Minecraft.
📚 Ссылки
🛠 Следующие шаги
- Реализовать поддержку HTTP/SSE транспорта с использованием Docker.
- Улучшить валидацию аргументов и функции автозаполнения через словарь команд.
- Добавить логирование для дополнительных действий, таких как
/start
,/stop
,/backup
и/whitelist
.
Подготовьтесь поднять свой опыт на сервере Minecraft на новый уровень! 🚀
Деталь
Minecraft-MCP-Server
Python MCP Server to control a Minecraft server via RCON, using FastMCP.
🔧 Features
- Exposes a set of commands (dictionary) to contextualize the LLM
- Executes commands on the Minecraft server via RCON
- Integration with Claude Desktop or any MCP client
- Simple structure:
stdio
(local development) or HTTP/SSE (production)
📦 Project Structure
mcp_server/
├── commands.json # Commands dictionary and examples
├── server.py # Main MCP server
├── commands.json # Minecraft commands for context
└── (venv/) # Virtual environment (optional)
⚙️ Installation
-
Clone the repository:
cd Minecraft-MCP-Server/mcp_server
-
Create an environment and install dependencies:
python -m venv venv venv\Scripts\activate pip install mcp[cli] mcrcon
📝 Setup
In the commands.json
file, you will have a list of commands like /give
, /weather
, /gamemode
, etc., with descriptions and examples.
Don’t forget to enable RCON in the Minecraft server.properties
file:
enable-rcon=true
rcon.password=minemcp
rcon.port=25575
🚀 Running
Activate the virtual environment and run:
venv\Scripts\activate
python server.py
Monkey patch: starts MCP server in STDIO by default (apidog.com, reddit.com, github.com)
⚙️ Integration with Claude Desktop
In claude_desktop_config.json
(e.g., %APPDATA%\Claude\
):
{
"mcpServers": {
"minecraft-controller": {
"type": "stdio",
"command": "C:\\...\\venv\\Scripts\\python.exe",
"args": ["C:\\...\\mcp_server\\server.py"],
"env": {"PATH": "%PATH%"}
}
}
}
Then restart Claude — the ‘minecraft-controller’ server will appear.
🧪 Local Test with Python
from fastmcp import Client
import asyncio
async def test():
client = Client("mcp_server/server.py")
async with client:
res = await client.call_tool("run_minecraft_command", {"command": "/list"})
print("Players:", res)
cmds = await client.read_resource("minecraft://commands")
print("Commands:", list(cmds.keys())[:5])
asyncio.run(test())
🧰 How It Works
- 🎯
FastMCP
automatically loads tools and resources (medium.com, github.com) - Resource
minecraft://commands
provides the commands dictionary - Tool
run_minecraft_command
usesmcrcon
to send commands to Minecraft
📚 References
🛠 Next Steps
- Support for HTTP/SSE transport with Docker
- Argument validation/autocomplete via commands dictionary
- Logging extra actions:
/start
,/stop
,/backup
,/whitelist
Ready to make your server smart! 🚀
Конфигурация сервера
{
"mcpServers": {
"minecraft-controller": {
"type": "stdio",
"command": "C:\\...\\venv\\Scripts\\python.exe",
"args": [
"C:\\...\\mcp_server\\server.py"
],
"env": {
"PATH": "%PATH%"
}
}
}
}