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.
Integrations
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 레지스트리 MCP 서버
Terraform Registry API와 상호 작용하기 위한 도구를 제공하는 모델 컨텍스트 프로토콜(MCP) 서버입니다. 이 서버를 통해 AI 에이전트는 공급자 정보, 리소스 세부 정보 및 모듈 메타데이터를 쿼리할 수 있습니다.
설치
커서에 설치
Cursor 에 이 MCP 서버를 설치하고 사용하려면:
- 커서에서 설정(⌘+,)을 열고 "MCP" 탭으로 이동합니다.
- "+ 새 MCP 서버 추가"를 클릭합니다.
- 다음을 입력하세요.
- 이름: terraform-registry
- 유형: 명령
- 명령어: npx -y terraform-mcp-server
- "추가"를 클릭한 다음 서버로 스크롤하여 "비활성화"를 클릭하여 서버를 활성화합니다.
- 필요한 경우 커서를 다시 시작하여 MCP 서버가 올바르게 로드되었는지 확인하세요.
Claude Desktop에 설치
Claude Desktop에 이 MCP 서버를 설치하고 사용하려면:
- Claude Desktop에서 설정(⌘+,)을 열고 "개발자" 탭으로 이동합니다.
- 창 하단의 "구성 편집"을 클릭하세요.
- 파일(
~/Library/Application Support/Claude/claude_desktop_config.json
)을 편집하여 다음 코드를 추가한 다음 파일을 저장합니다.
지엑스피1
- MCP 서버가 제대로 로드되었는지 확인하려면 Claude Desktop을 다시 시작하세요.
도구
이 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 | Terraform Cloud Explorer API를 쿼리하여 데이터를 분석합니다. |
listWorkspaces | 조직의 작업 공간을 나열합니다. |
workspaceDetails | 특정 작업 공간에 대한 자세한 정보를 얻습니다. |
lockWorkspace | 실행을 방지하기 위해 작업 공간을 잠급니다. |
unlockWorkspace | 실행을 허용하기 위해 작업 공간 잠금 해제 |
listRuns | 작업 공간에 대한 실행 목록 |
runDetails | 특정 실행에 대한 자세한 정보를 얻습니다. |
createRun | 작업 공간에 대한 새 실행을 만듭니다. |
applyRun | 계획된 실행을 적용합니다. |
cancelRun | 진행 중인 실행을 취소합니다. |
listWorkspaceResources | 작업 공간의 리소스를 나열합니다. |
자원
MCP 서버는 resources/*
메서드를 통해 나열하고 읽기 위한 다음 리소스 URI를 지원합니다.
리소스 유형 | 예제 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
직접 호출하지 마십시오.
서버 실행
서버는 MCP 통신을 위해 stdio 전송을 사용하여 실행됩니다.
환경 변수를 사용한 구성
서버는 환경 변수를 사용하여 구성할 수 있습니다.
환경 변수 | 설명 | 기본값 |
---|---|---|
TERRAFORM_REGISTRY_URL | Terraform Registry API의 기본 URL | 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.
Tools
MCP를 통해 AI 모델을 Terraform 레지스트리에 연결하여 공급자 조회, 리소스 사용 사례, 간소화된 Terraform 워크플로에 대한 모듈 권장 사항을 제공합니다.