Сервер 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 .
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
- AsecurityFlicenseAqualityEnables AI assistants to interact with Confluence Cloud for managing spaces, pages, and content via the Model Context Protocol (MCP).Last updated -1115TypeScript
- -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 -331RustMIT License
- AsecurityFlicenseAqualityImplements the Model Context Protocol (MCP) to provide AI models with a standardized interface for connecting to external data sources and tools like file systems, databases, or APIs.Last updated -1125Python
- -securityAlicense-qualityEnables connections to Azure AI Agents within any MCP client, allowing users to leverage Azure AI Foundry's models and knowledge tools like Azure AI Search and Bing Web Grounding through a conversational interface.Last updated -173PythonMIT License