API Pano и агент
Агент может писать скрипты, ботов и небольшие сервисы, которые общаются с работающим Pano по HTTP. Дайте ему две вещи: документ OpenAPI вашего сайта и ровно столько доступа, сколько нужно задаче.
У Pano нет MCP-сервера для управления сайтом
MCP-сервер по адресу https://panomc.com/mcp только читает эту документацию. Ничто не позволяет агенту управлять сайтом Pano через MCP. Всё, что агент делает с сайтом, он делает через описанный здесь HTTP API и с тем доступом, который вы ему передали.
Дайте агенту ваш документ OpenAPI
Каждый Pano сам описывает свой API, включая плагины. Сохраните документы и положите их рядом с кодом, над которым работает агент (Чтение справочника OpenAPI):
curl -s http://localhost:8088/api/v1/openapi.json -o pano-openapi.json
curl -s http://localhost:8088/api/v1/plugins/pano-plugin-market/_/openapi.json -o market-openapi.jsonОба документа публичные, ключ не нужен. Именно они верны для вашего сайта и версии; эта документация описывает Pano только в целом. Для JavaScript пусть агент сгенерирует типизированный клиент, а не пишет вызовы fetch вручную:
bunx @panomc/client-gen pull --url http://localhost:8088 --out src/lib/panoКакой доступ для какой задачи
Личного «API-токена администратора» в Pano нет. Способы доступа такие (Доступ):
| Задача | Доступ | Где его взять |
|---|---|---|
| Читать публичные данные: записи, серверы, сведения о сайте | не нужен | создавать нечего |
| Сервер, действующий от имени посетителей (сайт, бот со входом игроков) | ключ фронтенда (pfk_...), а после входа ещё токен сессии посетителя | Внешний вид -> Темы -> кнопка шестерёнки (Настройки показа сайта) -> Ключи подключения сайта -> Настроить |
| Реагировать на события (игрок зарегистрировался, запись опубликована, заказ оплачен) | вебхук со своим секретом | Настройки -> Вебхуки, см. Вебхуки |
Операции панели (/api/v1/panel/...) | сессия входа в панель; внутренний API без обещания стабильности | не для скриптов |
Две детали, в которых агенты ошибаются: строка «Ключи подключения сайта» скрыта, пока сайт показывает Тему, а токен сессии сайта никогда не работает в API панели (403 SITE_TOKEN_NOT_ALLOWED).
Примеры запросов
Прочитай pano-openapi.json. Напиши скрипт для Bun, который печатает заголовок и адрес пяти
последних записей с http://localhost:8088. Используй page и pageSize, при ошибке печатай error.code.Прочитай pano-openapi.json. Напиши небольшую команду Discord-бота, которая показывает, какие
серверы Minecraft моего Pano в сети и сколько на них игроков, через GET /api/v1/servers.
Ключ не нужен.Напиши приёмник вебхука для события Pano core.user.registered. Проверяй X-Pano-Signature так,
как описано на странице «Вебхуки» документации Pano, игнорируй повторные id событий,
отвечай 2xx в течение 10 секунд.Прочитай pano-openapi.json и market-openapi.json. Перечисли операции, которые нужны скрипту,
чтобы показать игроку его собственные заказы, и скажи, каким из них нужен вход. Код пока не пиши.Минимум прав
- Начинайте без ключа. Многое из того, что нужно скрипту, публично. Добавляйте ключ, только когда задаче нужен вход.
- Ключи хранятся в
.env, а не в запросе и не в репозитории. Ключ фронтенда показывается один раз; если он попал в чат или в коммит, удалите его в панели и создайте новый. - Входите как тестовый игрок, а не под своей учётной записью. Скрипт, которому нужна сессия, должен использовать аккаунт без прав панели.
- Вебхук лучше опроса со входом. В содержимом вебхуков нет адресов e-mail, IP-адресов и текстов сообщений.
- Оставайтесь в публичном API. Скажите агенту не вызывать
/api/v1/panel/...: это внутренний API, он может измениться в любом релизе.
Безопасность
Агент с вашим доступом администратора может изменить ваш сайт
Если вы дадите агенту пароль от панели, сессию панели из вашего браузера или оболочку на машине, где работает Pano, он сможет всё, что можете вы: удалять игроков, менять права, переключать фронтенд, останавливать серверы. Неверная команда выполняется так же охотно, как верная.
- Используйте тестовый сайт. Пусть агент работает с локальным Pano или копией, а не с рабочим сайтом. Установка Pano занимает несколько минут.
- Читайте перед запуском. Пусть агент сначала напишет скрипт и объяснит его; запускайте сами. Не позволяйте ему без присмотра выполнять запросы на запись (
POST,PUT,PATCH,DELETE) на рабочем сайте. - Сначала сделайте резервную копию, если скрипт меняет данные.
- Помните о лимитах запросов. Скрипт в цикле получит
429 RATE_LIMIT_EXCEEDED; он должен соблюдатьRetry-After(Основы API).