@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 (включая доступные команды и их аргументы) является экспериментальным и может вносить критические изменения без уведомления. Пожалуйста, отправьте запрос на GitHub , если вы столкнулись с ошибками или вам нужна поддержка для дополнительных команд Pulumi.

Сервер, реализующий протокол контекста модели (MCP) для взаимодействия с Pulumi CLI с использованием Pulumi Automation API и Pulumi Cloud API.

Этот пакет позволяет клиентам MCP выполнять операции Pulumi, такие как получение информации о пакете, предварительный просмотр изменений, развертывание обновлений и получение выходных данных стека программным способом, без необходимости установки Pulumi CLI непосредственно в клиентской среде.

Использование

На вашем компьютере должен быть установлен Pulumi CLI.

Этот пакет в первую очередь предназначен для интеграции в приложения, которые могут использовать серверы MCP в качестве инструментов AI. Например, вот как можно включить сервер Pulumi MCP в файл конфигурации MCP рабочего стола Claude:

{ "mcpServers": { "pulumi": { "command": "npx", "args": ["@pulumi/mcp-server@latest"] } } }

Докер-контейнер

Вы также можете запустить Pulumi MCP Server как контейнер Docker. Такой подход устраняет необходимость установки Node.js и зависимостей пакетов непосредственно на хост-машине.

Строительство контейнера

Чтобы построить контейнер:

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

Использование с клиентами MCP

Чтобы использовать контейнерный сервер с клиентами MCP, вам нужно настроить клиент на использование контейнера Docker. Например, в конфигурации MCP рабочего стола Claude:

{ "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 .

Доступные команды

Сервер предоставляет обработчики для следующих операций Pulumi, вызываемых через запросы MCP:

  • 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, включая его входные и выходные данные.
    • provider (строка, обязательно): поставщик облачных услуг (например, «aws», «azure», «gcp», «random») или github.com/org/repo для компонентов, размещенных на Git.
    • module (строка, необязательно): модуль для запроса (например, «s3», «ec2», «lambda»).
    • resource (строка, обязательно): Имя типа ресурса (например, «Корзина», «Функция», «Экземпляр»).
  • list-resources : список доступных ресурсов в пакете поставщика Pulumi, опционально отфильтрованный по модулю.
    • provider (строка, обязательно): поставщик облачных услуг (например, «aws», «azure», «gcp», «random») или github.com/org/repo для компонентов, размещенных на Git.
    • 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