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-commanddeploy, который пересобирает контейнер из/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
Issues и pull requests приветствуются. Если нашли баг или хотите предложить улучшение — создайте issue.
Нет аккаунта на Beget? Зарегистрируйтесь по ссылке — вы получите хостинг, а автор проекта небольшой бонус.