Skip to content
badigitPublic

About

MCP server for Beget hosting — 73 tools covering 100% of Beget REST API (sites, domains, DNS, MySQL, FTP, cron, backups, mail)

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Repository files navigation

beget-mcp

MCP-сервер для управления сервисами хостера Beget из AI-агентов.

Построен на FastMCP и покрывает весь Beget REST API — 73 инструмента в 10 разделах.

Model Context Protocol (MCP) — открытый стандарт для подключения AI-моделей к внешним сервисам.

Быстрый старт

Из PyPI, без установки в систему:

claude mcp add beget -s user \
  -e BEGET_API_LOGIN=your_login \
  -e BEGET_API_PASSWORD=your_password \
  -- uvx beget-mcp

Контейнером (образ по умолчанию поднимает SSE — локальному клиенту нужен stdio):

docker run -i --rm \
  -e MCP_TRANSPORT=stdio \
  -e BEGET_API_LOGIN=your_login \
  -e BEGET_API_PASSWORD=your_password \
  ghcr.io/badigit/beget-mcp:latest

Из исходников:

pip install -e .

claude mcp add beget -s user \
  -e BEGET_API_LOGIN=your_login \
  -e BEGET_API_PASSWORD=your_password \
  -- python -m mcp_beget

Сервер публикуется в MCP Registry под именем io.github.badigit/beget-mcp. Страница проекта — https://badigit.github.io/beget-mcp/.

Что умеет

Раздел Инструменты Примеры операций
Сайты 8 создание, удаление, привязка доменов, заморозка файлов
Домены 13 управление, поддомены, PHP-версии, директивы, проверка доступности
DNS 8 A, CNAME, MX, TXT — безопасный merge; частичное обновление через dns_patch_record; dns_verify сверяет факт у авторитативного NS
MySQL 6 базы, доступы с хостов, пароли
FTP 4 аккаунты, домашние каталоги
Cron 7 задачи, расписание, активация, email-отчёты
Бэкапы 9 просмотр содержимого, откат, выгрузка файлов и БД
Почта 12 ящики, пароли, спам-фильтр, пересылка, catch-all, one-shot-настройка Яндекс 360 / Mail.ru
Статистика 4 нагрузка по сайтам и БД — сводная и детальная
Аккаунт 2 тариф, баланс, SSH-доступ

Документация

Файл О чём
docs/api-coverage.md покрытие методов Beget API
docs/beget-api-gotchas.md грабли API: ошибка в success-конверте и прочее
docs/dns-facts-vs-intent.md DNS: несозданный поддомен, catch-all зоны, задержка распространения
docs/new-app-deploy-chain.md цепочка вызовов для нового приложения на shared-хостинге

Релиз и деплой

  • push в main = выкатка на боевой хост. .github/workflows/deploy.yml дёргает на VPS forced-command deploy, который пересобирает контейнер из /opt/beget-mcp. Отдельного ручного шага нет — правка в main уезжает на прод сама.
  • тег vX.Y.Z = публикация пакетов. publish-mcp.yml гонит тесты и заливает PyPI (trusted publishing), GHCR и MCP Registry — всё по OIDC, без секретов. Версия обязана совпадать в pyproject.toml, server.json и теге: workflow сверяет их до заливки, потому что версию на PyPI не перезалить.

Переменные окружения

Переменная Назначение
BEGET_API_LOGIN Логин Beget
BEGET_API_PASSWORD Пароль Beget

Архитектура

src/mcp_beget/
├── app.py       — экземпляр FastMCP
├── config.py    — конфигурация (dataclass + валидация)
├── client.py    — HTTP-клиент с переиспользованием сессии
├── errors.py    — типизированные исключения (Auth / API)
├── server.py    — точка входа, инициализация, логирование
└── tools/       — инструменты, сгруппированные по разделам API

Требования

  • Python >= 3.11
  • mcp[cli]
  • requests
  • python-dotenv

Contributing

Issues и pull requests приветствуются. Если нашли баг или хотите предложить улучшение — создайте issue.

Лицензия

MIT


Нет аккаунта на Beget? Зарегистрируйтесь по ссылке — вы получите хостинг, а автор проекта небольшой бонус.

About

MCP server for Beget hosting — 73 tools covering 100% of Beget REST API (sites, domains, DNS, MySQL, FTP, cron, backups, mail)

Topics

Resources

Stars

3 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages