dbatools-mcp-server — MCP-сервер для Claude Code: команды dbatools
MCP-сервер, который отдаёт ИИ-ассистенту команды PowerShell-модуля dbatools: поиск, справку и запуск.
claude mcp add --env DBATOOLS_SAFE_MODE=<DBATOOLS_SAFE_MODE> --env MAX_OUTPUT_ROWS=<MAX_OUTPUT_ROWS> --env COMMAND_TIMEOUT_SECONDS=<COMMAND_TIMEOUT_SECONDS> --env PWSH_EXE=<PWSH_EXE> --transport stdio dbatools-mcp-server -- npx -y dbatools-mcp-serverЧто делает dbatools-mcp-server
Сервер подключает модуль dbatools к ассистенту через MCP. Четыре инструмента: list_dbatools_commands ищет команды по глаголу, существительному, ключевому слову или уровню риска, get_dbatools_command_help возвращает нормализованную справку из Get-Help -Full, invoke_dbatools_command запускает команду с проверкой параметров, а check_dbatools_environment проверяет установку PowerShell и dbatools, свежесть индекса и совпадение версий. Справка берётся из comment-based help самого модуля, поэтому описания не расходятся с установленной версией.
Каждая команда доступна и как ресурс dbatools://command/{name} — например, dbatools://command/Get-DbaDatabase — в виде структурированного JSON. Команды классифицируются по глаголу: readonly выполняется всегда, change и destructive в safe mode требуют confirm: true. Для SQL-аутентификации передаётся SqlCredential с именем пользователя и паролем.
Для работы нужны Node.js 20+, PowerShell 7+ (pwsh) и сам модуль dbatools. Индекс справки генерируется из локальной установки: npm run refresh-help, после обновления модуля его надо пересобрать, иначе сервер предупредит о расхождении версий. По умолчанию invoke_dbatools_command переиспользует один живой процесс pwsh с уже импортированным dbatools, поэтому кэш SMO-подключений виден между вызовами в рамках одного запуска сервера.
Какие задачи решает
- найти нужную команду dbatools по глаголу или ключевому слову
- получить полную справку по команде с параметрами и примерами
- выполнить команду dbatools из чата с проверкой параметров
- защитить базу от случайных изменений через safe mode
- проверить, что PowerShell и dbatools установлены и версии совпадают
Примеры запросов агенту
- Найди команды dbatools для работы с бэкапами
- Покажи справку по
Get-DbaDatabase - Запусти
Get-DbaDatabaseна инстансеSQL01
Как установить dbatools-mcp-server
Командой платформы
claude mcp add --env DBATOOLS_SAFE_MODE=<DBATOOLS_SAFE_MODE> --env MAX_OUTPUT_ROWS=<MAX_OUTPUT_ROWS> --env COMMAND_TIMEOUT_SECONDS=<COMMAND_TIMEOUT_SECONDS> --env PWSH_EXE=<PWSH_EXE> --transport stdio dbatools-mcp-server -- npx -y dbatools-mcp-serverВместо <…> подставьте свои значения
Командой платформы
codex mcp add dbatools-mcp-server --env DBATOOLS_SAFE_MODE=<DBATOOLS_SAFE_MODE> --env MAX_OUTPUT_ROWS=<MAX_OUTPUT_ROWS> --env COMMAND_TIMEOUT_SECONDS=<COMMAND_TIMEOUT_SECONDS> --env PWSH_EXE=<PWSH_EXE> -- npx -y dbatools-mcp-serverВместо <…> подставьте свои значения
Файл настроек
{
"mcpServers": {
"dbatools-mcp-server": {
"command": "npx",
"args": [
"-y",
"dbatools-mcp-server"
],
"env": {
"DBATOOLS_SAFE_MODE": "<DBATOOLS_SAFE_MODE>",
"MAX_OUTPUT_ROWS": "<MAX_OUTPUT_ROWS>",
"COMMAND_TIMEOUT_SECONDS": "<COMMAND_TIMEOUT_SECONDS>",
"PWSH_EXE": "<PWSH_EXE>"
}
}
}
}Вместо <…> подставьте свои значения
Файл настроек
{
"servers": {
"dbatools-mcp-server": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"dbatools-mcp-server"
],
"env": {
"DBATOOLS_SAFE_MODE": "<DBATOOLS_SAFE_MODE>",
"MAX_OUTPUT_ROWS": "<MAX_OUTPUT_ROWS>",
"COMMAND_TIMEOUT_SECONDS": "<COMMAND_TIMEOUT_SECONDS>",
"PWSH_EXE": "<PWSH_EXE>"
}
}
}
}Вместо <…> подставьте свои значения
Командой платформы
gemini mcp add -e DBATOOLS_SAFE_MODE=<DBATOOLS_SAFE_MODE> -e MAX_OUTPUT_ROWS=<MAX_OUTPUT_ROWS> -e COMMAND_TIMEOUT_SECONDS=<COMMAND_TIMEOUT_SECONDS> -e PWSH_EXE=<PWSH_EXE> dbatools-mcp-server npx -y dbatools-mcp-serverВместо <…> подставьте свои значения
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о dbatools-mcp-server
Как установить dbatools-mcp-server в Claude Code?
Выполните claude mcp add dbatools-mcp-server -- npx -y dbatools-mcp-server. Если нужны переменные окружения, используйте вариант с `--env DBATOOLS_SAFE_MODE=<DBATOOLS_SAFE_MODE> --env MAX_OUTPUT_ROWS=<MAX_OUTPUT_ROWS> --env COMMAND_TIMEOUT_SECONDS=<COMMAND_TIMEOUT_SECONDS> --env PWSH_EXE=<PWSH_EXE> --transport stdio dbatools-mcp-server -- npx -y dbatools-mcp-server`.
Что делает dbatools-mcp-server?
Открывает команды PowerShell-модуля dbatools как MCP-инструменты: поиск, справку, запуск с валидацией параметров и проверку окружения. Ассистент может находить и выполнять команды dbatools прямо из чата.
Что нужно для работы сервера?
Node.js 20+, PowerShell 7+ и установленный модуль dbatools. Индекс справки генерируется командой npm run refresh-help из локальной установки модуля.