Skip to content

Commit 0df4aeb

Browse files
authored
Merge branch 'master' into day-2-operations-drift-detection-and-remediation
2 parents 33e772c + ed6bdab commit 0df4aeb

File tree

35 files changed

+1487
-2197
lines changed

35 files changed

+1487
-2197
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,3 +69,6 @@ _vendor/
6969

7070
#Claude settings
7171
**/.claude/settings.local.json
72+
73+
# mise local
74+
mise.local.toml

content/blog/mcp-server-ai-assistants/index.md

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,17 +27,13 @@ Several AI coding assistants like GitHub Copilot, Anthropic's Claude Code, Winds
2727

2828
## Setting up the Pulumi MCP Integration in Cursor
2929

30-
Before diving in, you typically need to configure your AI assistant to communicate with the Pulumi MCP server. For Cursor, you can do so by visiting the following link:
30+
Before diving in, you typically need to configure your AI assistant to communicate with the Pulumi MCP server. For Cursor, you can do so by clicking the following button:
3131

32-
[![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](cursor://anysphere.cursor-deeplink/mcp/install?name=pulumi&config=eyJ0eXBlIjoic3RkaW8iLCJjb21tYW5kIjoibnB4IEBwdWx1bWkvbWNwLXNlcnZlciJ9)
33-
34-
Once set up, validate the connection within the assistant's settings to ensure that the server is properly working. Cursor has a dedicated section to check the MCP connection status:
35-
36-
![Cursor MCP Settings](cursor-mcp-settings.png)
32+
[![Install MCP Server](https://cursor.com/deeplink/mcp-install-dark.svg)](cursor://anysphere.cursor-deeplink/mcp/install?name=pulumi&config=eyJ0cmFuc3BvcnQiOiJodHRwIiwidXJsIjoiaHR0cHM6Ly9tY3AuYWkucHVsdW1pLmNvbS9tY3AifQ%3D%3D)
3733

3834
The assistant can now leverage Pulumi tools seamlessly. These tools are specific actions enabled by the MCP server—like searching the Pulumi Registry or running a `pulumi` command—allowing the assistant to gather information or interact with your Pulumi project.
3935

40-
For help on setting up the MCP server with other IDEs such as Claude Code and Windsurf, see the [Pulumi MCP](https://www.pulumi.com/docs/iac/using-pulumi/mcp-server/) docs.
36+
For detailed setup instructions for Cursor, Claude Code, Windsurf, Claude Desktop, and other AI assistants, see the [Pulumi MCP Server documentation](/docs/iac/using-pulumi/mcp-server/).
4137

4238
## The Goal: Provisioning an AKS Cluster
4339

Lines changed: 187 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
---
2+
title: "Announcing Pulumi Remote MCP Server"
3+
date: 2025-10-07
4+
draft: false
5+
meta_desc: Announcing Pulumi Remote MCP Server with new tools and integration with Pulumi Neo
6+
meta_image: meta.png
7+
authors:
8+
- artur-laksberg
9+
tags:
10+
- MCP
11+
- ai
12+
13+
---
14+
15+
We're excited to announce the Pulumi Remote MCP Server—a hosted service that brings AI-powered infrastructure management to any AI assistant that supports the [Model Context Protocol](https://modelcontextprotocol.io). Connect your favorite AI assistant to `https://mcp.ai.pulumi.com/mcp` and instantly access your Pulumi Cloud infrastructure, search resources across stacks, and delegate complex automation tasks to [Pulumi Neo](/docs/pulumi-cloud/neo/).
16+
17+
<!--more-->
18+
19+
## The Evolution of Pulumi MCP
20+
21+
Earlier this year, we [launched the Pulumi MCP server](https://www.pulumi.com/blog/mcp-server-ai-assistants/) as a local npm package that brought AI-assisted infrastructure management to developers' machines. The adoption and feedback from users and partners has been positive, validating the power of combining AI assistants with infrastructure-as-code.
22+
23+
As the MCP ecosystem has matured and more organizations have adopted the protocol, a clear pattern has emerged: remote MCP servers are becoming the industry standard. Remote servers provide a key advantage—**accessibility**. One endpoint works everywhere, with no per-machine setup.
24+
25+
Following industry trends and feedback from users and partners, we're introducing the Remote MCP Server to ease installation and version management. The remote server preserves everything developers love about the local version while adding powerful new capabilities like seamless Pulumi Neo integration.
26+
27+
> **Note:** The local MCP server continues to be available and fully supported for developers who prefer local tooling or need offline capabilities.
28+
29+
## Why Remote MCP?
30+
31+
The Pulumi Remote MCP Server runs as a hosted service. Instead of managing local installations, you configure it once and get automatic updates and consistent functionality across all your development environments.
32+
33+
### Zero local setup, universal access
34+
35+
Instead of installing npm packages, you simply configure your AI assistant with a single URL: `https://mcp.ai.pulumi.com/mcp`. That's it.
36+
37+
- **No per-machine installations** - Works the same on your laptop, desktop, or cloud workstation
38+
- **No manual updates** - New features and improvements roll out automatically to all users
39+
- **Works with any MCP-compatible AI assistant** - Cursor, Claude Code, Windsurf, Claude Desktop, and more
40+
41+
For instructions on how to configure different AI assistants, see [Pulumi MCP Server](/docs/iac/using-pulumi/mcp-server).
42+
43+
### Centralized authentication & secrets
44+
45+
Remote MCP also solves a critical security challenge: credential management. Instead of scattering Pulumi Access Tokens across laptops, containers, and scripts, the Remote MCP Server uses OAuth-based authentication with your Pulumi Cloud organization.
46+
47+
When you first connect, a browser window opens where you:
48+
49+
1. Enter your Pulumi Access Token (which is validated server-side)
50+
2. Select which organization to access
51+
3. Return to your AI assistant - now authenticated
52+
53+
Your credentials are stored securely in Pulumi Cloud, not on your individual machine.
54+
55+
## What Can You Do With It?
56+
57+
The Remote MCP Server is your AI assistant's gateway to your entire Pulumi infrastructure. It combines real-time access to your cloud resources with the power of autonomous infrastructure automation through Pulumi Neo.
58+
59+
### Discover and query infrastructure
60+
61+
Your AI assistant can instantly explore what you've deployed across your entire organization:
62+
63+
- List all stacks in your organization
64+
- Search for specific resources across all stacks
65+
- Find resources by type, name, tags, or any property
66+
- Check for policy violations
67+
- View organization members and their roles
68+
- Identify security gaps, untagged resources, or misconfigured infrastructure
69+
70+
Ask questions like:
71+
72+
- "Show me all RDS databases without encryption enabled"
73+
- "Which stacks have resources in us-east-1?"
74+
- "Find all Lambda functions using deprecated runtimes"
75+
76+
### Generate infrastructure code
77+
78+
The MCP server connects directly to the [Pulumi Registry](https://www.pulumi.com/registry/), giving your AI assistant access to thousands of cloud resources with complete type information:
79+
80+
- Browse available resources
81+
- Get detailed resource schemas
82+
- Access property documentation, input/output types, and examples
83+
84+
Your AI assistant can:
85+
86+
- Look up the exact properties for any cloud resource
87+
- Generate type-safe infrastructure code in TypeScript, Python, Go, or any Pulumi language
88+
- Include proper configurations, security settings, and best practices
89+
- Reference real documentation and examples
90+
91+
This means code generation is more accurate and up-to-date with the latest provider versions.
92+
93+
### Autonomous infrastructure with Pulumi Neo
94+
95+
This is where the Remote MCP Server truly shines. For complex infrastructure tasks that require multiple steps, code changes, testing, and pull requests, your AI assistant can delegate directly to [Pulumi Neo](https://www.pulumi.com/docs/pulumi-cloud/neo/)—Pulumi's autonomous infrastructure AI agent.
96+
97+
**What makes Neo special:**
98+
99+
Neo isn't just an AI that writes code—it's an AI that *ships* infrastructure changes autonomously:
100+
101+
- **Multi-step planning** - Neo breaks down complex requests into actionable plans
102+
- **Code generation at scale** - Works across multiple stacks and repositories
103+
- **Automated testing** - Validates changes before creating pull requests
104+
- **Pull request workflows** - Creates PRs with detailed explanations and comments
105+
- **Continuous execution** - Runs in Pulumi Cloud, not consuming your local resources
106+
- **Human-in-the-loop** - Pauses for approval on critical changes
107+
108+
**Real-world Neo examples:**
109+
110+
Security remediation:
111+
**"Ask Neo to find all security groups allowing SSH from 0.0.0.0/0 and create a PR restricting them to my office IP"**
112+
113+
Neo will:
114+
115+
1. Search your infrastructure for overly permissive security groups
116+
2. Create a detailed plan for restricting access
117+
3. Generate infrastructure code changes
118+
4. Create a pull request with explanations
119+
5. Wait for your approval to merge
120+
121+
Runtime migrations:
122+
**"Ask Neo to migrate all Lambda functions from Python 3.8 to Python 3.12 and create PRs for each affected stack"**
123+
124+
Neo handles:
125+
126+
- Finding all Lambda functions with Python 3.8
127+
- Checking for compatibility issues
128+
- Updating runtime configurations
129+
- Running tests to ensure functionality
130+
- Creating separate PRs per stack for easy review
131+
132+
Policy compliance:
133+
**"Ask Neo to scan for policy violations and fix them automatically"**
134+
135+
Neo will:
136+
137+
- Identify violations across all stacks
138+
- Generate fixes following your policy rules
139+
- Test changes to ensure compliance
140+
- Create PRs with clear explanations of what was fixed and why
141+
142+
Cost optimization:
143+
**"Ask Neo to find idle resources and create a plan to shut them down"**
144+
145+
Neo analyzes usage patterns, identifies waste, and proposes infrastructure changes to reduce costs—all autonomously.
146+
147+
The key difference: your AI assistant identifies *what* needs to be done, and Neo *does* it—writing code, running tests, creating PRs, and managing the entire workflow in Pulumi Cloud.
148+
149+
## Real-World Workflow
150+
151+
Here's what a typical session looks like:
152+
153+
**You:** "What stacks do I have with 'production' in the name?"
154+
155+
**AI Assistant:** Uses `get-stacks` to list: `api-production`, `web-production`, `data-production`
156+
157+
**You:** "Are there any policy violations in those stacks?"
158+
159+
**AI Assistant:** Uses `get-policy-violations` and reports: 3 S3 buckets without encryption, 2 security groups too permissive
160+
161+
**You:** "Ask Neo to fix those violations and create a PR"
162+
163+
**AI Assistant:** Uses `neo-bridge` to launch Neo task, provides link
164+
165+
**Neo:** Autonomously creates plan, generates fixes, tests changes, creates PR with detailed explanation
166+
167+
**You:** Review PR, approve, merge
168+
169+
## Getting Started
170+
171+
Ready to try it? Check out our [documentation](/docs/iac/using-pulumi/mcp-server/) for configuration instructions for your AI assistant of choice.
172+
173+
Key points:
174+
175+
1. **Configure once** - Add `https://mcp.ai.pulumi.com/mcp` to your AI assistant's MCP settings
176+
2. **Authenticate** - Browser popup for token entry and org selection (one time)
177+
3. **Start asking** - Query your infrastructure, generate code, delegate to Neo
178+
179+
The Remote MCP Server is available now for all Pulumi users. No installation required—just configure and connect.
180+
181+
## Learn More
182+
183+
- [Pulumi MCP Server Documentation](/docs/iac/using-pulumi/mcp-server/)
184+
- [Pulumi Neo Documentation](/docs/pulumi-cloud/neo/)
185+
- [Model Context Protocol](https://modelcontextprotocol.io)
186+
187+
We're excited to see what you build with AI-assisted infrastructure management. Let us know what you think in our [Community Slack](https://slack.pulumi.com)!
536 KB
Loading

content/docs/iac/build-with-pulumi/debugging-providers.md

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,19 +31,21 @@ For GoLand you can follow these steps.
3131

3232
1. Configure the working directory to the program you are going to run to mirror how Pulumi would start the provider
3333

34-
![Screenshot of GoLand configuration for debugging providers](/docs/iac/extending-pulumi/img/goland-debug-config.png)
34+
![Screenshot of GoLand configuration for debugging providers](/docs/iac/build-with-pulumi/img/goland-debug-config.png)
3535

3636
### Example for VS Code
3737

3838
For VS Code you can follow these steps.
3939

4040
1. Navigate to **Run -> Add Configuration** and add the **Go: launch package** configuration
41-
2. Edit `"program": "${fileDirname}"` to point to `cmd/pulumi-resource-<PROVIDER>` , e.g., `cmd/pulumi-resource-azure-native` for the Azure Native provider
42-
![Screenshot of VS Code configuration for debugging providers](/docs/iac/extending-pulumi/img/vscode-launch-config.png)
43-
3. Edit "name": `"Launch Package"` to give it a descriptive name
44-
4. Launch package
41+
1. Edit `"program": "${fileDirname}"` to point to `cmd/pulumi-resource-<PROVIDER>` , e.g., `cmd/pulumi-resource-azure-native` for the Azure Native provider
4542

46-
![Screenshot of VS Code configuration for debugging providers](/docs/iac/extending-pulumi/img/vscode-debug-config.png)
43+
![Screenshot of VS Code configuration for debugging providers](/docs/iac/build-with-pulumi/img/vscode-launch-config.png)
44+
45+
1. Edit "name": `"Launch Package"` to give it a descriptive name
46+
1. Launch package
47+
48+
![Screenshot of VS Code configuration for debugging providers](/docs/iac/build-with-pulumi/img/vscode-debug-config.png)
4749

4850
## Setting breakpoints
4951

@@ -130,9 +132,10 @@ make tfgen_build_only
130132
For VS Code you can follow these steps to connect to the debugger.
131133

132134
1. Navigate to **Run -> Add Configuration** and add the **Go: Connect to server** configuration
133-
![Screenshot of VS Code configuration for debugging providers](/docs/iac/extending-pulumi/img/vscode-launch-config-connect-to-server.png)
134135

135-
2. Edit "name": `"Connect to server"` to give it a descriptive name
136-
3. Connect to server
136+
![Screenshot of VS Code configuration for debugging providers](/docs/iac/build-with-pulumi/img/vscode-launch-config-connect-to-server.png)
137+
138+
1. Edit "name": `"Connect to server"` to give it a descriptive name
139+
1. Connect to server
137140

138-
![Screenshot of VS Code configuration for debugging tfgen](/docs/iac/extending-pulumi/img/vscode-debug-config-connect-to-server.png)
141+
![Screenshot of VS Code configuration for debugging tfgen](/docs/iac/build-with-pulumi/img/vscode-debug-config-connect-to-server.png)

0 commit comments

Comments
 (0)