Metadata-Version: 2.5
Name: beget-mcp
Version: 0.2.0
Summary: Beget hosting MCP server — manage sites, domains, MySQL, FTP, DNS, cron, backups via AI agents
Project-URL: Homepage, https://badigit.github.io/beget-mcp/
Project-URL: Repository, https://github.com/badigit/beget-mcp
Project-URL: Issues, https://github.com/badigit/beget-mcp/issues
License-Expression: MIT
License-File: LICENSE
Keywords: beget,claude,dns,hosting,mcp,model-context-protocol
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: System Administrators
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Internet :: WWW/HTTP :: Site Management
Classifier: Topic :: System :: Systems Administration
Requires-Python: >=3.11
Requires-Dist: dnspython>=2.6
Requires-Dist: mcp[cli]<2.0.0,>=1.27
Requires-Dist: python-dotenv
Requires-Dist: requests
Provides-Extra: test
Requires-Dist: pytest-mock>=3.12; extra == 'test'
Requires-Dist: pytest-timeout>=2.3; extra == 'test'
Requires-Dist: pytest>=8; extra == 'test'
Requires-Dist: responses>=0.25; extra == 'test'
Description-Content-Type: text/markdown

# beget-mcp

MCP-сервер для управления сервисами хостера [Beget](https://beget.com/p1211871) из AI-агентов.

Построен на [FastMCP](https://github.com/modelcontextprotocol/python-sdk) и покрывает весь [Beget REST API](https://beget.com/p1211871/kb/api/) — 73 инструмента в 10 разделах.

> [Model Context Protocol (MCP)](https://modelcontextprotocol.io/) — открытый стандарт для подключения AI-моделей к внешним сервисам.

<!-- mcp-name: io.github.badigit/beget-mcp -->

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

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

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

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

```bash
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
```

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

```bash
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](https://registry.modelcontextprotocol.io) под именем
`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](docs/api-coverage.md) | покрытие методов Beget API |
| [docs/beget-api-gotchas.md](docs/beget-api-gotchas.md) | грабли API: ошибка в success-конверте и прочее |
| [docs/dns-facts-vs-intent.md](docs/dns-facts-vs-intent.md) | DNS: несозданный поддомен, catch-all зоны, задержка распространения |
| [docs/new-app-deploy-chain.md](docs/new-app-deploy-chain.md) | цепочка вызовов для нового приложения на shared-хостинге |

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

| Переменная | Назначение |
|-----------|-----------|
| `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](LICENSE)

---

Нет аккаунта на Beget? [Зарегистрируйтесь по ссылке](https://beget.com/p1211871) — вы получите хостинг, а автор проекта небольшой бонус.
