풀루미 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
또는 stdio 대신 SSE(Server-Sent Events)를 사용한 HTTP를 선호하는 경우:
{
"mcpServers": {
"pulumi": {
"command": "npx",
"args": ["@pulumi/mcp-server@latest","sse"]
}
}
}Related MCP server: mcp-perplexity
도커 컨테이너
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", "stdio"]
}
}
}HTTP(SSE)를 통한 MCP 클라이언트 사용
HTTP(SSE)를 통해 MCP 클라이언트와 함께 컨테이너화된 서버를 사용하려면 다음 명령을 사용하여 컨테이너를 실행할 수 있습니다.
{
"mcpServers": {
"pulumi": {
"command": "docker",
"args": ["run", "-i", "--rm", "-p", "3000:3000", "pulumi/mcp-server:latest", "sse"]
}
}
}로컬 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').
개발
저장소를 복제합니다.
종속성 설치:
make ensure프로젝트 빌드:
make build프로젝트 테스트:
make test
특허
이 프로젝트는 Apache-2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하세요.