Enables access to HashiCorp's Terraform Registry, allowing lookup of HashiCorp-provided providers and modules, with detailed information on their configuration, requirements, and usage examples.
Provides tools for interacting with the Terraform Registry API, enabling querying of provider information, resource details, module metadata, and recommendations. Supports looking up providers, retrieving resource usage examples, finding modules, listing data sources, and fetching comprehensive resource argument details.
Сервер Terraform Registry MCP
Сервер Model Context Protocol (MCP), который предоставляет инструменты для взаимодействия с API Terraform Registry. Этот сервер позволяет агентам ИИ запрашивать информацию о поставщике, сведения о ресурсах и метаданные модуля.
[!ВАЖНО] Этот проект был использован в качестве PoC для нового официального сервера Terraform MCP . Этот репозиторий был архивирован в пользу того.
Установка
Установка в курсор
Чтобы установить и использовать этот MCP-сервер в Cursor :
- В курсоре откройте «Настройки» (⌘+,) и перейдите на вкладку «MCP».
- Нажмите «+ Добавить новый сервер MCP».
- Введите следующее:
- Имя: terraform-registry
- Тип: команда
- Команда: npx -y terraform-mcp-server
- Нажмите «Добавить», затем прокрутите до сервера и нажмите «Отключено», чтобы включить сервер.
- При необходимости перезапустите курсор, чтобы убедиться, что сервер MCP загружен правильно.
Установка в Claude Desktop
Чтобы установить и использовать этот MCP-сервер в Claude Desktop:
- В Claude Desktop откройте «Настройки» (⌘+,) и перейдите на вкладку «Разработчик».
- Нажмите «Изменить конфигурацию» в нижней части окна.
- Отредактируйте файл (
~/Library/Application Support/Claude/claude_desktop_config.json
), добавив следующий код, затем сохраните файл.
- Перезапустите Claude Desktop, чтобы убедиться, что сервер MCP загружен правильно.
Инструменты
На этом сервере MCP доступны следующие инструменты:
Основные инструменты реестра
Инструмент | Описание |
---|---|
providerDetails | Получает подробную информацию о поставщике Terraform |
resourceUsage | Получает пример использования ресурса Terraform и связанных ресурсов |
moduleSearch | Ищет и рекомендует модули Terraform на основе запроса |
listDataSources | Перечисляет все доступные источники данных для поставщика и их основные данные. |
resourceArgumentDetails | Извлекает полную информацию об аргументах типа ресурса. |
moduleDetails | Извлекает подробные метаданные для модуля Terraform. |
functionDetails | Получает сведения о функции поставщика Terraform |
providerGuides | Списки и просмотры руководств и документации, специфичных для поставщика |
policySearch | Поиск библиотек политик в реестре Terraform |
policyDetails | Получает подробную информацию о конкретной библиотеке политик |
Облачные инструменты Terraform
Для этих инструментов требуется токен Terraform Cloud API ( TFC_TOKEN
):
Инструмент | Описание |
---|---|
listOrganizations | Перечисляет все организации, к которым имеет доступ аутентифицированный пользователь. |
privateModuleSearch | Поиск частных модулей в организации |
privateModuleDetails | Получает подробную информацию о частном модуле |
explorerQuery | Запрашивает API Terraform Cloud Explorer для анализа данных |
listWorkspaces | Перечисляет рабочие пространства в организации |
workspaceDetails | Получает подробную информацию о конкретном рабочем пространстве |
lockWorkspace | Блокирует рабочее пространство для предотвращения запусков |
unlockWorkspace | Разблокирует рабочее пространство для выполнения запусков |
listRuns | Список запусков для рабочего пространства |
runDetails | Получает подробную информацию о конкретном прогоне |
createRun | Создает новый запуск для рабочего пространства |
applyRun | Применяет запланированный запуск |
cancelRun | Отменяет текущий запуск |
listWorkspaceResources | Перечисляет ресурсы в рабочей области |
Ресурсы
Сервер MCP поддерживает следующие URI ресурсов для перечисления и чтения с помощью методов resources/*
:
Тип ресурса | Пример(ы) URI | Описание |
---|---|---|
Поставщики | terraform:providers | Список всех пространств имен/провайдеров |
terraform:provider:<namespace>/<name> | Получить данные по конкретному поставщику | |
Версии провайдера | terraform:provider:<namespace>/<name>/versions | Список доступных версий для провайдера |
Ресурсы поставщика | terraform:provider:<namespace>/<name>/resources | Список ресурсов для поставщика |
terraform:resource:<namespace>/<name>/<resource_name> | Получить подробную информацию о конкретном типе ресурса | |
Источники данных поставщика | terraform:provider:<namespace>/<name>/dataSources | Список источников данных для поставщика |
terraform:dataSource:<namespace>/<name>/<data_source_name> | Получить подробную информацию о конкретном источнике данных | |
Функции провайдера | terraform:provider:<namespace>/<name>/functions | Список функций для провайдера |
terraform:function:<namespace>/<name>/<function_name> | Получить подробную информацию о конкретной функции |
Сервер также поддерживает resources/templates/list
для предоставления шаблонов для создания:
terraform:provider
terraform:resource
terraform:dataSource
Подсказки
Для генерации контекстных ответов доступны следующие подсказки:
Быстрый | Описание | Требуемые аргументы |
---|---|---|
migrate-clouds | Генерация кода Terraform для миграции инфраструктуры между поставщиками облачных услуг | sourceCloud , targetCloud , terraformCode |
generate-resource-skeleton | Помогает пользователям быстро создавать новые ресурсы Terraform с использованием передового опыта | resourceType |
optimize-terraform-module | Предоставляет действенные рекомендации по улучшению кода Terraform | terraformCode |
migrate-provider-version | Помогает с обновлениями версий провайдера и критическими изменениями | providerName , currentVersion , targetVersion , terraformCode (необязательно) |
analyze-workspace-runs | Анализирует недавние сбои в работе и предоставляет рекомендации по устранению неполадок для рабочих пространств Terraform Cloud. | workspaceId , runsToAnalyze (необязательно, по умолчанию: 5) |
Известные проблемы с подсказками
Примечание : существует известная проблема с функциональностью getPrompt
, которая может привести к сбоям сервера. Сервер правильно регистрирует подсказки и может перечислять их, но прямые запросы с использованием метода getPrompt
могут вызывать проблемы с подключением. Это расследуется и может быть связано с совместимостью SDK или деталями реализации. Пока проблема не решена, используйте listPrompts
для просмотра доступных подсказок, но избегайте прямых вызовов getPrompt
.
Запуск сервера
Сервер работает с использованием транспорта stdio для связи с MCP:
Конфигурация с переменными среды
Сервер можно настроить с помощью переменных среды:
Переменная среды | Описание | Значение по умолчанию |
---|---|---|
TERRAFORM_REGISTRY_URL | Базовый URL для API Terraform Registry | https://registry.terraform.io |
DEFAULT_PROVIDER_NAMESPACE | Пространство имен по умолчанию для поставщиков | хашикорп |
LOG_LEVEL | Уровень ведения журнала (ошибка, предупреждение, информация, отладка) | информация |
REQUEST_TIMEOUT_MS | Тайм-аут для запросов API в миллисекундах | 10000 |
RATE_LIMIT_ENABLED | Включить ограничение скорости для запросов API | ЛОЖЬ |
RATE_LIMIT_REQUESTS | Количество разрешенных запросов в указанном временном окне | 60 |
RATE_LIMIT_WINDOW_MS | Временное окно для ограничения скорости в миллисекундах | 60000 |
TFC_TOKEN | Токен Terraform Cloud API для доступа к частному реестру (необязательно) |
Пример использования с переменными среды:
Тестирование
Информацию о тестировании этого проекта смотрите в файле TESTS.md .
You must be authenticated.
remote-capable server
The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.
Tools
Подключает модели ИИ к реестру Terraform через MCP, обеспечивая поиск поставщиков, примеры использования ресурсов и рекомендации модулей для оптимизированных рабочих процессов Terraform.
Related Resources
Related MCP Servers
- AsecurityAlicenseAqualityEnhances Claude AI with persistent memory storage for Infrastructure-as-Code components, supporting version tracking and relationship mapping for Terraform and Ansible resources.Last updated -234PythonMIT License
- -securityAlicense-quality🌍 Terraform Model Context Protocol (MCP) Tool - An experimental CLI tool that enables AI assistants to manage and operate Terraform environments. Supports reading Terraform configurations, analyzing plans, applying configurations, and managing state with Claude Desktop integration. ⚡️Last updated -239RustMIT License
- AsecurityAlicenseAqualityA Model Context Protocol (MCP) server that integrates Claude with the Terraform Cloud API, allowing Claude to manage your Terraform infrastructure through natural conversation.Last updated -2510PythonMIT License
- -securityAlicense-qualityA lightweight service that enables AI assistants to execute AWS CLI commands through the Model Context Protocol (MCP), allowing AI tools to retrieve AWS documentation and interact with AWS services.Last updated -57PythonMIT License