MCRestAPI
REST API и админ-панель для выделенных серверов Minecraft. Следи за TPS, памятью, игроками, данными мира, выполняй команды и получай события в реальном времени через SSE. Без внешних зависимостей.
- Загрузчики
- Fabric
- Скачиваний на Modrinth
- 376
- Подписчиков на Modrinth
- 2
- версии
- 4
- Обновлён
- 12 июня 202612 июн.
- Опубликован
- в 2026
Коротко о моде
Ставится только на сервер; игрокам ставить не нужно
MCRestAPI
Мод для Fabric, который предоставляет REST API и поток событий в реальном времени (SSE) для мониторинга и управления выделенными серверами Minecraft. Построен на встроенном HTTP-сервере JDK без внешних зависимостей. Доступен для Minecraft 1.21.11 и 26.1+ — скачайте файл, подходящий вашей версии.
Возможности
- REST API для мониторинга сервера (TPS, MSPT, память, CPU, количество игроков, свойства сервера)
- Поток Server-Sent Events (SSE) в реальном времени для чата, входов, выходов, смертей и игровых сообщений
- Полные данные об игроках: здоровье, еда, позиция, измерение, пинг, игровой режим, статус OP, URL головы со скином
- Данные о мире: сид, время, погода, сложность, количество сущностей, загруженные чанки, статистика по измерениям
- Удалённое выполнение команд через API
- Встроенная админ-панель (одностраничное веб-приложение) для мониторинга и управления
- Встроенный Swagger UI со спецификацией OpenAPI 3.1.0
- Мультиключевая аутентификация с гранулярными правами
- Мастер-ключ для административных операций
- Настройка CORS с белым списком источников
- API-ключи хешируются с помощью PBKDF2-SHA256 (никогда не хранятся в открытом виде)
- Ноль внешних зависимостей (используется встроенный HTTP-сервер JDK)
- Виртуальные потоки для лёгкой конкурентности
- Только для серверной стороны (не работает на клиентах)
Требования
| Компонент | Линейка 1.21.11 | Линейка 26.1 |
|---|---|---|
| Minecraft | 1.21.11 | 26.1.x |
| Java | >= 21 | >= 25 |
| Fabric Loader | >= 0.18.4 | >= 0.19.3 |
| Fabric API | любая | любая |
Каждый релиз на Modrinth помечен поддерживаемой версией Minecraft — устанавливайте тот, что соответствует вашему серверу.
Установка
- Скачайте последний
mcrestapi-x.x.x.jarс этой страницы или из GitHub Releases - Поместите JAR-файл в папку
mods/вашего Fabric-сервера - Запустите сервер
- При первом запуске мод создаёт файл конфигурации
config/mcrestapi.jsonи выводит мастер-ключ и ключ API по умолчанию в консоль сервера. Сохраните оба ключа сразу — позже их получить не удастся. - API доступен по адресу
http://localhost:8080по умолчанию - Админ-панель находится по адресу
http://localhost:8080/admin
Конфигурация
Файл конфигурации расположен по пути config/mcrestapi.json и создаётся автоматически при первом запуске.
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
port | integer | 8080 | Порт, на котором слушает HTTP-сервер |
bindAddress | string | 127.0.0.1 | Адрес для привязки. Используйте 0.0.0.0 для всех интерфейсов |
maxConnections | integer | 50 | Максимум одновременных HTTP-соединений |
swagger | boolean | true | Включить/отключить Swagger UI и спецификацию OpenAPI |
masterKeyHash | string | (генерируется) | PBKDF2-хеш мастер-ключа |
auth | object | (включено) | Установите auth.enabled в false, чтобы делегировать аутентификацию обратному прокси |
keys | array | (генерируется) | Список API-ключей с правами |
cors | object | (отключено) | Конфигурация CORS |
Хеши API-ключей хранятся с использованием PBKDF2-SHA256. Исходные значения ключей показываются только один раз при создании.
Аутентификация
Все эндпоинты API (кроме публичных) требуют Bearer-токен в заголовке Authorization:
Authorization: Bearer mcsapi_xxxxxxxxxxxxxxxx
**Мастер-ключ** создаётся при первом запуске и даёт доступ к админским эндпоинтам (`/api/admin/*`) и панели управления (`/admin`). Также у него есть права-джокеры на все эндпоинты данных.
### Отключение аутентификации
Если обратный прокси уже занимается аутентификацией (basic auth, OIDC/forward-auth и т. п.), установи `auth.enabled` в `false` в конфиге:
```json
{ "auth": { "enabled": false } }Это отключает всю аутентификацию, включая админские эндпоинты — обратный прокси становится единственной границей доверия. Делай так только если мод слушает 127.0.0.1 за прокси, который контролирует доступ. Мод пишет предупреждение при запуске (громче, если адрес привязки не loopback). Переключить можно и на лету из панели управления (Settings → Require API Key), перезапуск не нужен.
Права
| Право | Описание | Эндпоинты |
|---|---|---|
server.read | Чтение статистики сервера | GET /api/server |
players.read | Чтение списка игроков | GET /api/players |
world.read | Чтение данных мира | GET /api/world |
chat.read | Чтение истории событий | GET /api/chat |
chat.stream | Подключение к SSE-потоку событий | GET /api/events/stream |
command.execute | Выполнение команд сервера | POST /api/command |
* | Все права (джокер) | Все эндпоинты |
Эндпоинты API
Базовый URL: `http://:(по умолчанию:http://localhost:8080`)
Подробные примеры запросов и ответов смотри во встроенном Swagger UI по адресу /api/docs.
Публичные (аутентификация не требуется)
| Метод | Путь | Описание |
|---|---|---|
| GET | /api/server/icon | Иконка сервера в виде PNG |
| GET | /api/docs | Swagger UI |
| GET | /api/openapi.json | Спецификация OpenAPI 3.1.0 |
Эндпоинты данных
| Метод | Путь | Право | Описание |
|---|---|---|---|
| GET | /api/server | server.read | Статистика сервера (TPS, MSPT, память, CPU). Поддерживает фильтрацию ?fields= |
| GET | /api/players | players.read | Список игроков онлайн со здоровьем, позицией, измерением, пингом |
| GET | /api/world | world.read | Глобальные данные мира и статистика по измерениям. Поддерживает фильтрацию ?fields= |
| GET | /api/chat | chat.read | История событий. Поддерживает фильтрацию ?limit= и ?type= |
| GET | /api/events/stream | chat.stream | SSE-поток в реальном времени. Поддерживает фильтрацию ?types= |
| POST | /api/command | command.execute | Выполнение команды сервера |
Админские эндпоинты (требуется мастер-ключ)
| Метод | Путь | Описание |
|---|---|---|
| GET | /api/admin/keys | Список всех API-ключей |
| POST | /api/admin/keys | Создать новый API-ключ |
| PUT | /api/admin/keys?id= | Обновить API-ключ |
| DELETE | /api/admin/keys?id= | Отозвать API-ключ |
| GET | /api/admin/cors | Получить конфигурацию CORS |
| POST | /api/admin/cors | Добавить разрешённый origin |
| PUT | /api/admin/cors | Включить/выключить CORS |
| DELETE | /api/admin/cors | Удалить разрешённый origin |
| GET | /api/admin/settings | Получить текущие настройки |
| PUT | /api/admin/settings | Обновить настройки |
Поток событий SSE
Подключитесь к /api/events/stream для получения событий сервера в реальном времени. События отправляются в стандартном формате SSE. Каждые 30 секунд отправляется keepalive-пинг.
Типы событий: chat, command, join, leave, death, game
Для SSE-подключений из браузера передавайте API-ключ через query-параметр ?auth=, так как EventSource не поддерживает кастомные заголовки.
CORS
CORS отключён по умолчанию. Когда он включён, CORS-заголовки получают только источники из белого списка. Настраивается через админ-панель или эндпоинты /api/admin/cors.
CORS обеспечивает защиту только в контексте браузера. Он не заменяет аутентификацию по API-ключу.
Админ-панель
Встроенная веб-панель по адресу /admin (требуется мастер-ключ).
Страницы: Dashboard (статистика сервера), Players, World, Chat (живой поток SSE), Console (выполнение команд), Keys, CORS, Settings.
Безопасность
- Адрес привязки по умолчанию —
127.0.0.1(только localhost) - API-ключи хешируются с помощью PBKDF2-SHA256 со случайной солью
- Мастер-ключ хранится отдельно от API-ключей
- Для удалённого доступа используйте обратный прокси (nginx, Caddy) с HTTPS/TLS
- Создавайте API-ключи с минимальными правами, необходимыми для каждого случая использования
- Отключайте аутентификацию только при привязке к
127.0.0.1за доверенным обратным прокси, который обеспечивает аутентификацию
Частые вопросы
Как установить MCRestAPI?
Установите Fabric под свою версию Minecraft, скачайте MCRestAPI под ту же версию и загрузчик, положите файл в папку mods и запустите игру с профилем загрузчика.
Для каких версий Minecraft есть MCRestAPI?
У MCRestAPI есть сборки для Minecraft 1.21.11–26.1.2.
Нужен ли MCRestAPI на сервере?
Ставится только на сервер; игрокам ставить не нужно