Beget Hosting
Beget hosting: sites, domains, DNS, MySQL, FTP, cron, backups, mail — 73 tools
Install
Add this to your client's MCP configuration (Claude Desktop: claude_desktop_config.json; Cursor: .cursor/mcp.json; VS Code and others use the same "mcpServers" shape).
beget-mcpclaude mcp add beget-hosting -e 'BEGET_API_LOGIN=<BEGET_API_LOGIN>' -e 'BEGET_API_PASSWORD=<your beget_api_password>' -- uvx beget-mcp==0.2.0
{
"mcpServers": {
"beget-hosting": {
"command": "uvx",
"args": [
"beget-mcp==0.2.0"
],
"env": {
"BEGET_API_LOGIN": "<BEGET_API_LOGIN>",
"BEGET_API_PASSWORD": "<your beget_api_password>"
}
}
}
}
Environment variables
BEGET_API_LOGINrequired Beget account loginBEGET_API_PASSWORDrequired secret Beget account password (API access must be enabled in the panel)
ghcr.io/badigit/beget-mcp:0.2.0claude mcp add beget-hosting -e 'BEGET_API_LOGIN=<BEGET_API_LOGIN>' -e 'BEGET_API_PASSWORD=<your beget_api_password>' -e 'MCP_TRANSPORT=stdio' -- docker run -i --rm ghcr.io/badigit/beget-mcp:0.2.0
{
"mcpServers": {
"beget-hosting": {
"command": "docker",
"args": [
"run",
"-i",
"--rm",
"ghcr.io/badigit/beget-mcp:0.2.0"
],
"env": {
"BEGET_API_LOGIN": "<BEGET_API_LOGIN>",
"BEGET_API_PASSWORD": "<your beget_api_password>",
"MCP_TRANSPORT": "stdio"
}
}
}
}
Environment variables
BEGET_API_LOGINrequired Beget account loginBEGET_API_PASSWORDrequired secret Beget account password (API access must be enabled in the panel)MCP_TRANSPORTrequired Transport: stdio for local clients, sse for a shared HTTP deployment. The image defaults to sse, so stdio clients must set this.
Documentation
From the project's README on GitHub, refreshed weekly. Links open on GitHub.
Contents
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-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
Contributing
Issues и pull requests приветствуются. Если нашли баг или хотите предложить улучшение — создайте issue.
Лицензия
Нет аккаунта на Beget? Зарегистрируйтесь по ссылке — вы получите хостинг, а автор проекта небольшой бонус.
Frequently asked questions
What is Beget Hosting?
Beget hosting: sites, domains, DNS, MySQL, FTP, cron, backups, mail — 73 tools
How do I install Beget Hosting?
It runs on your machine. In Claude Code: claude mcp add beget-hosting -e 'BEGET_API_LOGIN=<BEGET_API_LOGIN>' -e 'BEGET_API_PASSWORD=<your beget_api_password>' -- uvx beget-mcp==0.2.0. For other clients, paste the JSON configuration from this page into their MCP settings.
Does Beget Hosting need an API key?
Yes. It expects BEGET_API_LOGIN, BEGET_API_PASSWORD, MCP_TRANSPORT, which you set in its configuration.
Is Beget Hosting open source?
Yes. Its code is on GitHub under the MIT license.
Who maintains Beget Hosting?
It is published by badigit. AI.tn lists it but does not maintain or endorse it.
From the official MCP Registry. Listing is not an endorsement: review a server's code and permissions before giving it access to your data.