@pulumi/mcp-server

by pulumi
Apache 2.0
44
20

Integrations

  • Supports running the MCP server in a Docker container, with the ability to mount local Pulumi project directories to perform operations on containerized Pulumi projects.

  • Allows retrieving information about Git-hosted Pulumi component resources from GitHub repositories, accessible through the get-resource and list-resources commands.

  • Enables programmatic interaction with Pulumi infrastructure as code, allowing operations like retrieving package information, previewing infrastructure changes, deploying stack updates, and retrieving stack outputs without requiring the Pulumi CLI in the client environment.

풀루미 MCP 서버

참고: 이 MCP 서버는 현재 활발하게 개발 중입니다. API(사용 가능한 명령 및 인수 포함)는 실험 단계이므로 예고 없이 호환성 문제가 발생할 수 있습니다. 버그가 발생하거나 추가 Pulumi 명령에 대한 지원이 필요한 경우 GitHub 에 문제를 제기해 주세요.

Pulumi Automation API와 Pulumi Cloud API를 사용하여 Pulumi CLI와 상호 작용하기 위한 MCP( Model Context Protocol )를 구현하는 서버입니다.

이 패키지를 사용하면 MCP 클라이언트가 Pulumi CLI를 클라이언트 환경에 직접 설치하지 않고도 패키지 정보 검색, 변경 사항 미리 보기, 업데이트 배포, 스택 출력 검색과 같은 Pulumi 작업을 프로그래밍 방식으로 수행할 수 있습니다.

용법

Pulumi CLI를 컴퓨터에 설치해야 합니다.

이 패키지는 주로 MCP 서버를 AI 도구로 사용할 수 있는 애플리케이션에 통합되도록 설계되었습니다. 예를 들어, Claude 데스크톱의 MCP 구성 파일에 Pulumi MCP 서버를 포함하는 방법은 다음과 같습니다.

지엑스피1

도커 컨테이너

Pulumi MCP 서버를 Docker 컨테이너로 실행할 수도 있습니다. 이 방법을 사용하면 Node.js와 패키지 종속성을 호스트 머신에 직접 설치할 필요가 없습니다.

컨테이너 만들기

컨테이너를 만들려면:

docker build -t pulumi/mcp-server:latest .

MCP 클라이언트와 함께 사용

MCP 클라이언트에서 컨테이너화된 서버를 사용하려면 Docker 컨테이너를 사용하도록 클라이언트를 구성해야 합니다. 예를 들어 Claude 데스크톱의 MCP 구성은 다음과 같습니다.

{ "mcpServers": { "pulumi": { "command": "docker", "args": ["run", "-i", "--rm", "pulumi/mcp-server:latest"] } } }

로컬 Pulumi 프로젝트에 액세스해야 하는 Pulumi 작업의 경우, 적절한 디렉터리를 마운트해야 합니다. 예를 들어, Pulumi 프로젝트가 ~/projects/my-pulumi-app 에 있는 경우:

{ "mcpServers": { "pulumi": { "command": "docker", "args": ["run", "-i", "--rm", "-v", "~/projects/my-pulumi-app:/app/project", "pulumi/mcp-server:latest"] } } }

그런 다음 MCP 도구를 사용할 때 요청에서 프로젝트 디렉토리를 /app/project 로 참조합니다.

사용 가능한 명령

서버는 MCP 요청을 통해 호출 가능한 다음 Pulumi 작업에 대한 핸들러를 제공합니다.

  • preview : 지정된 스택에서 pulumi preview 실행합니다.
    • workDir (문자열, 필수): Pulumi.yaml 프로젝트 파일이 포함된 작업 디렉토리입니다.
    • stackName (문자열, 선택 사항): 작업할 스택 이름(기본값은 'dev')
  • up : 지정된 스택에 대한 변경 사항을 배포하기 위해 pulumi up 실행합니다.
    • workDir (문자열, 필수): Pulumi.yaml 프로젝트 파일이 포함된 작업 디렉토리입니다.
    • stackName (문자열, 선택 사항): 작업할 스택 이름(기본값은 'dev')
  • stack-output : 배포가 성공적으로 완료된 후 지정된 스택에서 출력을 검색합니다.
    • workDir (문자열, 필수): Pulumi.yaml 프로젝트 파일이 포함된 작업 디렉토리입니다.
    • stackName (문자열, 선택 사항): 출력을 검색할 스택 이름(기본값은 'dev')
    • outputName (문자열, 선택 사항): 검색할 특정 스택 출력 이름입니다. 생략하면 스택의 모든 출력이 반환됩니다.
  • get-resource : 입력 및 출력을 포함하여 특정 Pulumi Registry 리소스에 대한 정보를 반환합니다.
    • provider (문자열, 필수): 클라우드 공급자(예: 'aws', 'azure', 'gcp', 'random') 또는 Git 호스팅 구성 요소의 경우 github.com/org/repo .
    • module (문자열, 선택 사항): 쿼리할 모듈(예: 's3', 'ec2', 'lambda').
    • resource (문자열, 필수): 리소스 유형 이름(예: '버킷', '함수', '인스턴스').
  • list-resources : Pulumi 공급자 패키지 내에서 사용 가능한 리소스를 나열하며, 선택적으로 모듈별로 필터링합니다.
    • provider (문자열, 필수): 클라우드 공급자(예: 'aws', 'azure', 'gcp', 'random') 또는 Git 호스팅 구성 요소의 경우 github.com/org/repo .
    • module (문자열, 선택 사항): 필터링할 모듈(예: 's3', 'ec2', 'lambda').

개발

  1. 저장소를 복제합니다.
  2. 종속성 설치: make ensure
  3. 프로젝트 빌드: make build
  4. 프로젝트 테스트: make test

특허

이 프로젝트는 Apache-2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.

Related MCP Servers

View all related MCP servers

ID: jplel66nks