pdns-mcp-server
by bblrlo
pdns-mcp-server
MCP-сервер для управления DNS записями PowerDNS через API PowerDNS-Admin.
Архитектура
src/pdns_mcp_server/
config.py — PdnsConfig: чтение конфигурации из переменных окружения
client.py — PdnsClient: async HTTP-клиент для PowerDNS-Admin API
tools.py — create_app(): регистрация MCP инструментов
main.py — точка входа, запуск streamable-http сервера
tests/
test_config.py — тесты конфигурации
test_client.py — тесты API-клиента (respx моки)
test_tools.py — тесты MCP инструментов
test_main.py — тесты точки входаКонфигурация
Переменная | Обязательно | По умолчанию | Описание |
| Да | — | URL PowerDNS-Admin (например |
| Да | — | API-ключ для X-API-Key аутентификации |
| Нет |
| ID сервера PowerDNS |
| Нет |
| Порт MCP сервера |
Инструменты MCP
Инструмент | Описание |
| Список всех DNS зон |
| Детали зоны с записями |
| Создать/заменить RRset в зоне |
| Обновить содержимое записи |
| Удалить RRset |
Подробные параметры и примеры — в docs/usage.md.
Запуск
export PDNS_ADMIN_URL=http://pda.example.com:9191
export PDNS_API_KEY=your-api-key-here
uv run pdns-mcp-serverСервер будет доступен на http://0.0.0.0:8000 (streamable-http транспорт).
Docker
export PDNS_ADMIN_URL=http://pda.example.com:9191
export PDNS_API_KEY=your-api-key-here
docker compose upТестирование
uv run pytest -vВсе тесты используют respx для мокирования HTTP-вызовов — не требуют реального PowerDNS.