tfmcp
MCP-сервер на Rust для Terraform: агент проверяет проект, строит сохраненный план, оценивает опасные изменения и применяет этот же план
- 371 ★ репозитория
- Последний коммит
- MIT
Широкий доступ
Почему такой уровень
- При включенных переменных запускает terraform apply и destroy и может менять и удалять боевую инфраструктуру
- Работает с состоянием, переменными и токеном HCP Terraform, где бывают секреты и данные облачных аккаунтов
- Журнал аудита хранится в ~/.tfmcp/audit.log, а режим записи чувствительных данных в журнал включается отдельной переменной
Установка
- Работает в
Ручная установка
cargo install tfmcpНужны Rust 1.88 или новее и Terraform CLI в PATH. Затем найдите путь командой which tfmcp.
Доступ и проверки
Как мы проверяемШирокий доступИнструмент может менять данные, выполнять команды или работать с секретами.
- При включенных переменных запускает terraform apply и destroy и может менять и удалять боевую инфраструктуру
- Работает с состоянием, переменными и токеном HCP Terraform, где бывают секреты и данные облачных аккаунтов
- Журнал аудита хранится в ~/.tfmcp/audit.log, а режим записи чувствительных данных в журнал включается отдельной переменной
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
tfmcp запускает локальные процессы Terraform через MCP и ведет агента по безопасному порядку. Инструмент prepare_terraform_change проверяет выбранную папку: версию Terraform, рабочее пространство, бэкенд, валидность конфигурации и читаемость состояния. Инструмент get_terraform_plan строит план и сохраняет его под идентификатором plan_id, причем чувствительные значения скрыты. По этому идентификатору analyze_plan, review_terraform_plan и summarize_plan_for_pr оценивают опасные изменения и готовят текст для комментария в pull request. Применить план можно только по plan_id инструментом apply_terraform, а удалить инфраструктуру по сохраненному плану уничтожения инструментом destroy_terraform. Сам Terraform применяет сохраненный план, даже если файлы конфигурации после этого правили. Для записи на сервере нужны переменные TFMCP_ALLOW_DANGEROUS_OPS и TFMCP_ALLOW_AUTO_APPROVE, а для удаления еще TFMCP_DELETE_ENABLED. Результат применения включает код выхода, диагностику и шаги восстановления, а при ошибке или тайм-ауте тот же план повторно применить нельзя. Кроме локального Terraform сервер умеет искать провайдеры, модули и политики в публичном и частном реестре и читать данные HCP Terraform и Terraform Enterprise: организации, проекты, рабочие пространства, запуски и планы. Анализ охватывает конфигурацию, состояние с поиском дрейфа, здоровье модулей, секреты и граф зависимостей. Сервер работает по stdio и Streamable HTTP, ведет журнал аудита и умеет ограничивать число ресурсов.
Для кого. Для DevOps-инженеров и разработчиков инфраструктуры, которые работают в Claude Desktop или Codex и хотят давать агенту читать Terraform-проекты и готовить изменения с обязательной проверкой плана.
Подходит, если
- Нужно разобрать незнакомый Terraform-проект: найти корневой модуль, оценить качество кода и здоровье модулей
- Перед применением изменений нужна оценка опасных мест плана и готовый текст для комментария в pull request
- Вы хотите, чтобы агент применял только проверенный сохраненный план, а правки файлов после проверки не попадали в apply
- Нужно найти дрейф между состоянием и реальной инфраструктурой, ничего не меняя
- Вы ищете провайдеры, модули и политики Sentinel или OPA в реестре и читаете данные запусков HCP Terraform
Не подходит, если
- Нужен проект на Pulumi, Ansible или CloudFormation: сервер работает только с Terraform CLI
- Нужен сервер без установленного Terraform: он вызывает CLI и требует версию 1.15.8 в PATH
- Нужно автоматически применять изменения в боевой среде без человека: apply и destroy выключены по умолчанию, и принимать решение должен человек в клиенте
- Вам нужно восстановление после сбоя apply: откат и автоматический повтор сервер не делает, живой прогресс и восстановление после перезапуска не поддерживаются
Пример запроса к агенту
Проверь мой Terraform-проект в этой папке, построй сохраненный план, оцени опасные изменения и покажи резюме для pull request, но ничего не применяйMCP
- Транспорт
- stdio, http
- Авторизация
- не нужна
Переменные окружения
TERRAFORM_DIR- Папка Terraform-проекта; если ее нет, создается пример в ~/terraform
TFMCP_ALLOW_DANGEROUS_OPS- Значение true разрешает apply и destroy, по умолчанию выключено
TFMCP_ALLOW_AUTO_APPROVE- Значение true разрешает автоподтверждение опасных операций, по умолчанию выключено
TFMCP_DELETE_ENABLED- Значение true разрешает применение сохраненных планов уничтожения
Ограничения
- Нужны Rust 1.88 или новее для сборки, Terraform CLI 1.15.8 в PATH и MCP-клиент, например Claude Desktop или Codex.
- Автор предупреждает, что проект активно развивается, и советует проверять все операции в боевой среде.
- Идентификаторы планов живут, пока работает процесс сервера, одновременно хранится не больше 64 планов. Сохраненный план привязан к проекту, рабочему пространству, версии Terraform и файлу блокировки провайдеров.
- Проверка состояния после применения сверяет адреса ресурсов, а значения атрибутов и выходов не сверяет.
- Для HCP Terraform и Terraform Enterprise в описании сказано про инструменты только для чтения и операции под защитой разрешений.
- Переход с версии 0.2.2: `apply_terraform` теперь требует `plan_id`, а вызовы с одним `auto_approve` возвращают пояснение вместо работы.
Как отключить. Уберите блок tfmcp из claude_desktop_config.json и перезапустите клиент. Установленную программу снимает cargo uninstall tfmcp, а журнал аудита лежит в ~/.tfmcp/audit.log, его можно удалить вручную.
Частые вопросы
Как подключить tfmcp к Claude Desktop?
Выполните cargo install tfmcp, найдите путь командой which tfmcp и добавьте в claude_desktop_config.json сервер с этой командой и аргументом mcp. В env укажите HOME, PATH и при желании TERRAFORM_DIR с папкой проекта. Для Docker вместо этого используйте команду docker и образ tfmcp.
Может ли tfmcp сам применить изменения в инфраструктуре?
Только если вы разрешили это переменными TFMCP_ALLOW_DANGEROUS_OPS и TFMCP_ALLOW_AUTO_APPROVE. По умолчанию они выключены. Применяется строго сохраненный план по plan_id, и решение о применении принимается в клиенте до вызова, потому что Terraform не получает интерактивного ввода.
Как удалить инфраструктуру через tfmcp?
Постройте план командой get_terraform_plan с параметром destroy, проверьте его и вызовите destroy_terraform с его plan_id и auto_approve. Помимо двух разрешений на применение серверу нужна переменная TFMCP_DELETE_ENABLED=true. Уничтожение без сохраненного плана больше не выполняется.
Что делать, если apply завершился ошибкой или не уложился во время?
Статус failed означает ненулевой код выхода Terraform, при этом часть изменений могла примениться. Статус outcome_unknown означает, что итог не получен, например из-за тайм-аута. Тот же план повторно применить нельзя: проверьте состояние и фактические ресурсы, найдите причину и постройте новый план. Откат и автоповтор сервер не делает.
Скрывает ли tfmcp секреты в выводе?
Да, чувствительные значения скрываются в плане и в выходных значениях, включая запросы по имени. По умолчанию ведется журнал аудита в ~/.tfmcp/audit.log, а переменная TFMCP_AUDIT_LOG_SENSITIVE=true, которая включает чувствительные данные в журнал, по умолчанию выключена.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
MCP-серверыTerraform MCP
Terraform MCP Server
Официальный MCP-сервер HashiCorp для Terraform Registry и HCP Terraform: провайдеры, модули, политики и рабочие пространства
MCP-сервер и CLI от AWS: по коду приложения или плану Terraform собирает стартовые IAM-политики и разбирает ошибки AccessDenied
Агент управляет серверами через каталог объявленных действий: политика решает, что выполнить, а что ждет человека
Terraform Skill
Terraform & OpenTofu Skill for AI Agents
Скилл лучших практик Terraform и OpenTofu: тесты, модули, state, CI/CD и проверки безопасности для AWS, Azure и GCP
Планировщик задач cronstable открывает агенту список заданий, историю запусков и разбор расписаний через MCP.
Terragrunt организует конфигурации OpenTofu и Terraform в блоки с общими параметрами, зависимостями и упорядоченным запуском.
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| tfmcp (эта карточка) | нет | не нужна | 371 | |
| HashiCorp Agent Skills | нет | 917 | официальные скиллы HashiCorp со стилем HCL и тестами, без запуска Terraform через MCP | |
| Terraform Skill | нет | 2 450 | скилл с рекомендациями по Terraform и OpenTofu: тесты, модули, состояние, CI | |
| TerraShark | нет | 710 | скилл против галлюцинаций агента в Terraform, сервер MCP не запускает |
Коротко о README
Страница репозитория начинается с последнего релиза и таблицы возможностей, затем идут установка из исходников, crates.io и Docker, требования и подключение к Claude Desktop. Основная часть разбирает порядок работы с планом от подготовки до проверки результата, таблицы всех инструментов, переменные окружения и рекомендации по безопасности.