Fire in da houseTop Tip:Paying $100+ per month for Perplexity, MidJourney, Runway, ChatGPT and other tools is crazy - get all your AI tools in one site starting at $15 per month with Galaxy AI Fire in da houseCheck it out free

mcp-server

MCP.Pizza Chef: pulumi

The Pulumi MCP Server is an MCP server implementation that enables programmatic interaction with Pulumi CLI through the Pulumi Automation API and Pulumi Cloud API. It allows MCP clients to perform Pulumi operations such as retrieving package info, previewing infrastructure changes, deploying updates, and fetching stack outputs without requiring the Pulumi CLI installed locally. This server facilitates infrastructure as code workflows within MCP-enabled environments, streamlining cloud resource management and deployment automation.

Use This MCP server To

Programmatically preview Pulumi infrastructure changes Deploy Pulumi stacks via MCP clients without local CLI Retrieve Pulumi stack outputs for integration in workflows Fetch Pulumi package information for environment introspection Automate Pulumi operations in CI/CD pipelines Enable MCP clients to manage cloud infrastructure remotely

README

Pulumi MCP Server

Note: This MCP server is currently under active development. Its API (including available commands and their arguments) is experimental and may introduce breaking changes without notice. Please file an issue on GitHub if you encounter bugs or need support for additional Pulumi commands.

A server implementing the Model Context Protocol (MCP) for interacting with Pulumi CLI using the Pulumi Automation API and Pulumi Cloud API.

This package allows MCP clients to perform Pulumi operations like retrieving package information, previewing changes, deploying updates, and retrieving stack outputs programmatically without needing the Pulumi CLI installed directly in the client environment.

Usage

The Pulumi CLI has to be installed on you machine.

This package is primarily intended to be integrated into applications that can use MCP servers as AI tools. For example, here is how you can include Pulumi MCP Server in Claude desktop's MCP configuration file:

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

Docker Container

You can also run the Pulumi MCP Server as a Docker container. This approach eliminates the need to install Node.js and the package dependencies directly on your host machine.

Building the Container

To build the container:

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

Using with MCP Clients

To use the containerized server with MCP clients, you'll need to configure the client to use the Docker container. For example, in Claude desktop's MCP configuration:

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

For Pulumi operations that require access to local Pulumi projects, you'll need to mount the appropriate directories. For example, if your Pulumi project is in ~/projects/my-pulumi-app:

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

Then when using the MCP tools, you would reference the project directory as /app/project in your requests.

Available Commands

The server exposes handlers for the following Pulumi operations, callable via MCP requests:

  • preview: Runs pulumi preview on a specified stack.
    • workDir (string, required): The working directory containing the Pulumi.yaml project file.
    • stackName (string, optional): The stack name to operate on (defaults to 'dev').
  • up: Runs pulumi up to deploy changes for a specified stack.
    • workDir (string, required): The working directory containing the Pulumi.yaml project file.
    • stackName (string, optional): The stack name to operate on (defaults to 'dev').
  • stack-output: Retrieves outputs from a specified stack after a successful deployment.
    • workDir (string, required): The working directory containing the Pulumi.yaml project file.
    • stackName (string, optional): The stack name to retrieve outputs from (defaults to 'dev').
    • outputName (string, optional): The specific stack output name to retrieve. If omitted, all outputs for the stack are returned.
  • get-resource: Returns information about a specific Pulumi Registry resource, including its inputs and outputs.
    • provider (string, required): The cloud provider (e.g., 'aws', 'azure', 'gcp', 'random') or github.com/org/repo for Git-hosted components.
    • module (string, optional): The module to query (e.g., 's3', 'ec2', 'lambda').
    • resource (string, required): The resource type name (e.g., 'Bucket', 'Function', 'Instance').
  • list-resources: Lists available resources within a Pulumi provider package, optionally filtered by module.
    • provider (string, required): The cloud provider (e.g., 'aws', 'azure', 'gcp', 'random') or github.com/org/repo for Git-hosted components.
    • module (string, optional): The module to filter by (e.g., 's3', 'ec2', 'lambda').

Development

  1. Clone the repository.
  2. Install dependencies: make ensure
  3. Build the project: make build
  4. Test the project: make test

License

This project is licensed under the Apache-2.0 License. See the LICENSE file for details.

mcp-server FAQ

How does the Pulumi MCP Server interact with Pulumi CLI?
It uses the Pulumi Automation API and Pulumi Cloud API to perform Pulumi CLI operations programmatically.
Do I need to install Pulumi CLI locally to use this server?
No, the server allows MCP clients to run Pulumi commands without local Pulumi CLI installation.
Is the Pulumi MCP Server stable for production use?
The server is currently under active development and its API is experimental, so breaking changes may occur.
Can I extend the server to support additional Pulumi commands?
Yes, users can file issues or contribute to add support for more Pulumi commands.
Which LLM providers can integrate with this MCP server?
It is provider-agnostic and can work with OpenAI, Anthropic Claude, and Google Gemini models.
How does this server improve infrastructure as code workflows?
It enables automated, programmatic Pulumi operations within MCP-enabled environments, simplifying cloud resource management.
Where can I report bugs or request features?
Issues can be filed on the GitHub repository at https://github.com/pulumi/mcp-server/issues.