Title: Pulumi MCP Server | AI-Assisted Infrastructure as Code
URL Source: https://www.pulumi.com/docs/ai/mcp-server/
Markdown Content:
Skip to main content
Core product
Key capabilities
-
AI infrastructure agent Meet Neo, our AI-powered infrastructure engineering agent
-
Secrets & configuration Environments, secrets, and configuration management
-
Discovery & governance Asset management, compliance remediation, and AI insights over the cloud
-
Internal developer platform The fastest, most secure way to deliver cloud infrastructure
-
Get started Install Pulumi and deploy your first project in minutes
-
Documentation Complete guides and API references
-
Registry Browse hundreds of cloud providers and packages
-
Dev Center Tutorials, templates, examples, and more
-
Events and workshops Live sessions and workshops
-
Community Join 10k+ developers on Slack
-
Engineers love Pulumi Hear from engineers why they love us
-
Releases Major platform updates from the team
-
Enterprise solutions Security, compliance, and support for teams
-
Customers Get a glimpse of who's using Pulumi and hear their stories
-
Request a demo See how Pulumi can help your team
-
Professional services Get expert help with your implementation
-
Contact sales Talk to our team about your needs
Whitepaper The agentic infrastructure operating model The path to agents operating your infrastructure at scale
25.8KContact usSign inDashboardGet started
25.8KContact usSign inDashboardGet started
Navigation
Product
Core product
Key capabilities
For engineers
For enterprises
DocsRegistryBlogPricing
Company
25.8KContact usSign inDashboardGet started
-
Copy logo SVG
-
Download mark
-
Get other variants
-
Read brand guide
-
* [Docs Home](https://www.pulumi.com/docs/)
-
* [Download & Install Pulumi](https://www.pulumi.com/docs/install/)
-
* [Get Started](https://www.pulumi.com/docs/get-started/)
-
* [Infrastructure as Code](javascript:void(0))
* [Overview](https://www.pulumi.com/docs/iac/)
* [Get Started](javascript:void(0))
* [AWS](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/get-started/aws/)
* [Install Pulumi](https://www.pulumi.com/docs/iac/get-started/aws/begin/)
* [Configure access](https://www.pulumi.com/docs/iac/get-started/aws/configure/)
* [Create project](https://www.pulumi.com/docs/iac/get-started/aws/create-project/)
* [Deploy](https://www.pulumi.com/docs/iac/get-started/aws/deploy-stack/)
* [Make an update](https://www.pulumi.com/docs/iac/get-started/aws/modify-program/)
* [Create a component](https://www.pulumi.com/docs/iac/get-started/aws/create-component/)
* [Cleanup & destroy](https://www.pulumi.com/docs/iac/get-started/aws/destroy-stack/)
* [Next steps](https://www.pulumi.com/docs/iac/get-started/aws/next-steps/)
* [Azure](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/get-started/azure/)
* [Install Pulumi](https://www.pulumi.com/docs/iac/get-started/azure/begin/)
* [Configure access](https://www.pulumi.com/docs/iac/get-started/azure/configure/)
* [Create project](https://www.pulumi.com/docs/iac/get-started/azure/create-project/)
* [Deploy](https://www.pulumi.com/docs/iac/get-started/azure/deploy-stack/)
* [Make an update](https://www.pulumi.com/docs/iac/get-started/azure/modify-program/)
* [Create a component](https://www.pulumi.com/docs/iac/get-started/azure/create-component/)
* [Cleanup & destroy](https://www.pulumi.com/docs/iac/get-started/azure/destroy-stack/)
* [Next steps](https://www.pulumi.com/docs/iac/get-started/azure/next-steps/)
* [Google Cloud](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/get-started/gcp/)
* [Install Pulumi](https://www.pulumi.com/docs/iac/get-started/gcp/begin/)
* [Configure access](https://www.pulumi.com/docs/iac/get-started/gcp/configure/)
* [Create project](https://www.pulumi.com/docs/iac/get-started/gcp/create-project/)
* [Deploy](https://www.pulumi.com/docs/iac/get-started/gcp/deploy-stack/)
* [Make an update](https://www.pulumi.com/docs/iac/get-started/gcp/modify-program/)
* [Create a component](https://www.pulumi.com/docs/iac/get-started/gcp/create-component/)
* [Cleanup & destroy](https://www.pulumi.com/docs/iac/get-started/gcp/destroy-stack/)
* [Next steps](https://www.pulumi.com/docs/iac/get-started/gcp/next-steps/)
* [Kubernetes](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/get-started/kubernetes/)
* [Install Pulumi](https://www.pulumi.com/docs/iac/get-started/kubernetes/begin/)
* [Configure access](https://www.pulumi.com/docs/iac/get-started/kubernetes/configure/)
* [Create project](https://www.pulumi.com/docs/iac/get-started/kubernetes/create-project/)
* [Deploy](https://www.pulumi.com/docs/iac/get-started/kubernetes/deploy-stack/)
* [Make an update](https://www.pulumi.com/docs/iac/get-started/kubernetes/modify-program/)
* [Create a component](https://www.pulumi.com/docs/iac/get-started/kubernetes/create-component/)
* [Cleanup & destroy](https://www.pulumi.com/docs/iac/get-started/kubernetes/destroy-stack/)
* [Next steps](https://www.pulumi.com/docs/iac/get-started/kubernetes/next-steps/)
* [Concepts](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/concepts/)
* [Pulumi Cloud](https://www.pulumi.com/docs/iac/concepts/pulumi-cloud/)
* [Projects](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/concepts/projects/)
* [Project file reference](https://www.pulumi.com/docs/iac/concepts/projects/project-file/)
* [Stack settings file reference](https://www.pulumi.com/docs/iac/concepts/projects/stack-settings-file/)
* [Stacks](https://www.pulumi.com/docs/iac/concepts/stacks/)
* [Stash](https://www.pulumi.com/docs/iac/concepts/stash/)
* [Configuration](https://www.pulumi.com/docs/iac/concepts/config/)
* [Resources](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/concepts/resources/)
* [Names](https://www.pulumi.com/docs/iac/concepts/resources/names/)
* [Resource options](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/concepts/resources/options/)
* [additionalSecretOutputs](https://www.pulumi.com/docs/iac/concepts/resources/options/additionalsecretoutputs/)
* [aliases](https://www.pulumi.com/docs/iac/concepts/resources/options/aliases/)
* [customTimeouts](https://www.pulumi.com/docs/iac/concepts/resources/options/customtimeouts/)
* [deleteBeforeReplace](https://www.pulumi.com/docs/iac/concepts/resources/options/deletebeforereplace/)
* [deletedWith](https://www.pulumi.com/docs/iac/concepts/resources/options/deletedwith/)
* [dependsOn](https://www.pulumi.com/docs/iac/concepts/resources/options/dependson/)
* [envVarMappings](https://www.pulumi.com/docs/iac/concepts/resources/options/envvarmappings/)
* [hideDiffs](https://www.pulumi.com/docs/iac/concepts/resources/options/hidediffs/)
* [hooks](https://www.pulumi.com/docs/iac/concepts/resources/options/hooks/)
* [ignoreChanges](https://www.pulumi.com/docs/iac/concepts/resources/options/ignorechanges/)
* [import](https://www.pulumi.com/docs/iac/concepts/resources/options/import/)
* [parent](https://www.pulumi.com/docs/iac/concepts/resources/options/parent/)
* [protect](https://www.pulumi.com/docs/iac/concepts/resources/options/protect/)
* [provider](https://www.pulumi.com/docs/iac/concepts/resources/options/provider/)
* [providers](https://www.pulumi.com/docs/iac/concepts/resources/options/providers/)
* [replacementTrigger](https://www.pulumi.com/docs/iac/concepts/resources/options/replacementtrigger/)
* [replaceOnChanges](https://www.pulumi.com/docs/iac/concepts/resources/options/replaceonchanges/)
* [replaceWith](https://www.pulumi.com/docs/iac/concepts/resources/options/replacewith/)
* [retainOnDelete](https://www.pulumi.com/docs/iac/concepts/resources/options/retainondelete/)
* [stateMigrations](https://www.pulumi.com/docs/iac/concepts/resources/options/statemigrations/)
* [transformations](https://www.pulumi.com/docs/iac/concepts/resources/options/transformations/)
* [transforms](https://www.pulumi.com/docs/iac/concepts/resources/options/transforms/)
* [version](https://www.pulumi.com/docs/iac/concepts/resources/options/version/)
* [Providers](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/concepts/providers/)
* [Any Terraform Provider](https://www.pulumi.com/docs/iac/concepts/providers/any-terraform-provider/)
* [Dynamic providers](https://www.pulumi.com/docs/iac/concepts/providers/dynamic-providers/)
* [Inputs & Outputs](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/concepts/inputs-outputs/)
* [Apply](https://www.pulumi.com/docs/iac/concepts/inputs-outputs/apply/)
* [All](https://www.pulumi.com/docs/iac/concepts/inputs-outputs/all/)
* [Helpers](https://www.pulumi.com/docs/iac/concepts/inputs-outputs/helpers/)
* [State & backends](https://www.pulumi.com/docs/iac/concepts/state-and-backends/)
* [Secrets Handling](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/concepts/secrets/)
* [Write-Only Fields](https://www.pulumi.com/docs/iac/concepts/secrets/write-only-fields/)
* [Functions](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/concepts/functions/)
* [Provider functions](https://www.pulumi.com/docs/iac/concepts/functions/provider-functions/)
* [Get functions](https://www.pulumi.com/docs/iac/concepts/functions/get-functions/)
* [Resource methods](https://www.pulumi.com/docs/iac/concepts/functions/resource-methods/)
* [Function serialization](https://www.pulumi.com/docs/iac/concepts/functions/function-serialization/)
* [Components](https://www.pulumi.com/docs/iac/concepts/components/)
* [Packages](https://www.pulumi.com/docs/iac/concepts/packages/)
* [Automation API](https://www.pulumi.com/docs/iac/concepts/automation-api/)
* [Assets & archives](https://www.pulumi.com/docs/iac/concepts/assets-archives/)
* [Plugins](https://www.pulumi.com/docs/iac/concepts/plugins/)
* [Converters](https://www.pulumi.com/docs/iac/concepts/converters/)
* [Guides](javascript:void(0))
* [Basics](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/guides/basics/)
* [How Pulumi IaC Works](https://www.pulumi.com/docs/iac/guides/basics/how-pulumi-works/)
* [Pulumi Cloud vs. OSS](https://www.pulumi.com/docs/iac/guides/basics/pulumi-cloud-vs-oss/)
* [Language Essentials](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/guides/basics/language-essentials/)
* [Variables & Values](https://www.pulumi.com/docs/iac/guides/basics/language-essentials/variables/)
* [Conditionals](https://www.pulumi.com/docs/iac/guides/basics/language-essentials/conditionals/)
* [Loops](https://www.pulumi.com/docs/iac/guides/basics/language-essentials/loops/)
* [Functions](https://www.pulumi.com/docs/iac/guides/basics/language-essentials/functions/)
* [Classes & Components](https://www.pulumi.com/docs/iac/guides/basics/language-essentials/classes/)
* [Packages & Dependencies](https://www.pulumi.com/docs/iac/guides/basics/language-essentials/packages-and-dependencies/)
* [Organizing Projects & Stacks](https://www.pulumi.com/docs/iac/guides/basics/organizing-projects-stacks/)
* [Building & Extending](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/guides/building-extending/)
* [Components](javascript:void(0))
* [When to Build a Component](https://www.pulumi.com/docs/iac/guides/building-extending/components/when-to-build-a-component/)
* [Build a Component](https://www.pulumi.com/docs/iac/guides/building-extending/components/build-a-component/)
* [Testing Components](https://www.pulumi.com/docs/iac/guides/building-extending/components/testing-components/)
* [Packaging Components](https://www.pulumi.com/docs/iac/guides/building-extending/components/packaging-components/)
* [State migrations](https://www.pulumi.com/docs/iac/guides/building-extending/components/state-migrations/)
* [Packages](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/guides/building-extending/packages/)
* [Authoring a Source-Based Plugin Package](https://www.pulumi.com/docs/iac/guides/building-extending/packages/source-based-plugin/)
* [Authoring an Executable Plugin Package](https://www.pulumi.com/docs/iac/guides/building-extending/packages/executable-plugin/)
* [Publishing to the Pulumi Registry](https://www.pulumi.com/docs/iac/guides/building-extending/packages/publishing-packages/)
* [Repository Strategy](https://www.pulumi.com/docs/iac/guides/building-extending/packages/repository-strategy/)
* [Local SDKs](https://www.pulumi.com/docs/iac/guides/building-extending/packages/local-sdks/)
* [Pulumi Go Provider SDK](https://www.pulumi.com/docs/iac/guides/building-extending/packages/pulumi-go-provider-sdk/)
* [Schema reference](https://www.pulumi.com/docs/iac/guides/building-extending/packages/schema/)
* [Providers](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/guides/building-extending/providers/)
* [Provider Architecture](https://www.pulumi.com/docs/iac/guides/building-extending/providers/provider-architecture/)
* [Build a Provider](https://www.pulumi.com/docs/iac/guides/building-extending/providers/build-a-provider/)
* [Author a Dynamic Provider](https://www.pulumi.com/docs/iac/guides/building-extending/providers/dynamic-providers/)
* [Provider Configuration](https://www.pulumi.com/docs/iac/guides/building-extending/providers/provider-configuration/)
* [Debugging providers](https://www.pulumi.com/docs/iac/guides/building-extending/providers/debugging-providers/)
* [Direct Implementation](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/guides/building-extending/providers/implementers/)
* [Protocol reference](https://www.pulumi.com/docs/iac/guides/building-extending/providers/implementers/protocol-reference/)
* [Python](https://www.pulumi.com/docs/iac/guides/building-extending/providers/implementers/python/)
* [TypeScript](https://www.pulumi.com/docs/iac/guides/building-extending/providers/implementers/typescript/)
* [Creating Templates](https://www.pulumi.com/docs/iac/guides/building-extending/creating-templates/)
* [Automation API](https://www.pulumi.com/docs/iac/guides/building-extending/automation-api/)
* [Advanced Patterns](https://www.pulumi.com/docs/iac/guides/building-extending/automation-api-advanced/)
* [Clouds](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/guides/clouds/)
* [AWS](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/guides/clouds/aws/)
* [Choosing a Provider](https://www.pulumi.com/docs/iac/guides/clouds/aws/providers/)
* [Azure](https://www.pulumi.com/docs/iac/guides/clouds/azure/)
* [Migration](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/guides/migration/)
* [Migrating from...](javascript:void(0))
* [Terraform](https://www.pulumi.com/docs/iac/guides/migration/migrating-to-pulumi/from-terraform/)
* [AWS CDK](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/guides/migration/migrating-to-pulumi/from-cdk/)
* [Migrating existing CDK](https://www.pulumi.com/docs/iac/guides/migration/migrating-to-pulumi/migrating-from-cdk/migrating-existing-cdk-app/)
* [Using Pulumi with AWS CDK](https://www.pulumi.com/docs/iac/guides/migration/migrating-to-pulumi/migrating-from-cdk/using-pulumi-cdk/)
* [AWS CloudFormation](https://www.pulumi.com/docs/iac/guides/migration/migrating-to-pulumi/from-cloudformation/)
* [Azure Resource Manager](https://www.pulumi.com/docs/iac/guides/migration/migrating-to-pulumi/from-arm/)
* [Kubernetes YAML or Helm Charts](https://www.pulumi.com/docs/iac/guides/migration/migrating-to-pulumi/from-kubernetes/)
* [Serverless Framework](https://www.pulumi.com/docs/iac/guides/migration/migrating-to-pulumi/from-serverless/)
* [Importing Resources](https://www.pulumi.com/docs/iac/guides/migration/import/)
* [Conversion tools](https://www.pulumi.com/docs/iac/guides/migration/converters/)
* [Finding AWS import IDs](https://www.pulumi.com/docs/iac/guides/migration/aws-import-ids/)
* [Testing](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/guides/testing/)
* [Unit testing](https://www.pulumi.com/docs/iac/guides/testing/unit/)
* [Integration testing](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/guides/testing/integration/)
* [Integration testing framework](https://www.pulumi.com/docs/iac/guides/testing/integration/framework/)
* [Automation API testing](https://www.pulumi.com/docs/iac/guides/testing/integration/automation-api/)
* [Operations](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/operations/)
* [Stack Management](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/operations/stack-management/)
* [Protecting against undesired changes](https://www.pulumi.com/docs/iac/operations/stack-management/protecting-against-undesired-changes/)
* [Targeted updates](https://www.pulumi.com/docs/iac/operations/stack-management/targeted-updates/)
* [Running your program on refresh and destroy](https://www.pulumi.com/docs/iac/operations/stack-management/run-program/)
* [Update plans](https://www.pulumi.com/docs/iac/operations/stack-management/update-plans/)
* [Drift detection](https://www.pulumi.com/docs/iac/operations/stack-management/drift/)
* [Editing state files](https://www.pulumi.com/docs/iac/operations/stack-management/editing-state-files/)
* [Removing resources without deleting them](https://www.pulumi.com/docs/iac/operations/stack-management/removing-resources-without-deleting-them/)
* [Restoring deleted stacks](https://www.pulumi.com/docs/iac/operations/stack-management/restoring-deleted-stacks/)
* [Using a DIY Backend](https://www.pulumi.com/docs/iac/operations/stack-management/using-a-diy-backend/)
* [Moving resources between stacks](https://www.pulumi.com/docs/iac/operations/stack-management/moving-resources-between-stacks/)
* [Refactoring with aliases](https://www.pulumi.com/docs/iac/operations/stack-management/refactoring-with-aliases/)
* [Continuous Delivery](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/operations/continuous-delivery/)
* [Argo CD](https://www.pulumi.com/docs/iac/operations/continuous-delivery/argocd/)
* [AWS Code Services](https://www.pulumi.com/docs/iac/operations/continuous-delivery/aws-code-services/)
* [Azure DevOps](https://www.pulumi.com/docs/iac/operations/continuous-delivery/azure-devops/)
* [Bitbucket Pipelines](https://www.pulumi.com/docs/iac/operations/continuous-delivery/bitbucket/)
* [Buildkite](https://www.pulumi.com/docs/iac/operations/continuous-delivery/buildkite/)
* [CircleCI](https://www.pulumi.com/docs/iac/operations/continuous-delivery/circleci/)
* [Codefresh](https://www.pulumi.com/docs/iac/operations/continuous-delivery/codefresh/)
* [GitHub Actions](https://www.pulumi.com/docs/iac/operations/continuous-delivery/github-actions/)
* [GitLab CI/CD](https://www.pulumi.com/docs/iac/operations/continuous-delivery/gitlab-ci/)
* [Google Cloud Build](https://www.pulumi.com/docs/iac/operations/continuous-delivery/google-cloud-build/)
* [Harness](https://www.pulumi.com/docs/iac/operations/continuous-delivery/harness/)
* [Jenkins](https://www.pulumi.com/docs/iac/operations/continuous-delivery/jenkins/)
* [Octopus Deploy](https://www.pulumi.com/docs/iac/operations/continuous-delivery/octopus-deploy/)
* [TeamCity](https://www.pulumi.com/docs/iac/operations/continuous-delivery/teamcity/)
* [Travis CI](https://www.pulumi.com/docs/iac/operations/continuous-delivery/travis/)
* [Troubleshooting](https://www.pulumi.com/docs/iac/operations/continuous-delivery/troubleshooting/)
* [Troubleshooting](javascript:void(0))
* [Overview](https://www.pulumi.com/docs/iac/operations/troubleshooting/)
* [Update Conflicts](https://www.pulumi.com/docs/iac/operations/troubleshooting/update-conflicts/)
* [Server Errors](https://www.pulumi.com/docs/iac/operations/troubleshooting/server-errors/)
* [Post-Step Event Errors](https://www.pulumi.com/docs/iac/operations/troubleshooting/post-step-errors/)
* [Connection Issues](https://www.pulumi.com/docs/iac/operations/troubleshooting/connection-issues/)
* [Destroy Failures](https://www.pulumi.com/docs/iac/operations/troubleshooting/destroy-failures/)
* [Interrupted Updates](https://www.pulumi.com/docs/iac/operations/troubleshooting/interrupted-updates/)
* [macOS Architecture Mismatch](https://www.pulumi.com/docs/iac/operations/troubleshooting/architecture-mismatch/)
* [Output Value Errors](https://www.pulumi.com/docs/iac/operations/troubleshooting/output-values/)
* [Debugging](javascript:void(0))
* [Overview](https://www.pulumi.com/docs/iac/operations/debugging/)
* [Logging](https://www.pulumi.com/docs/iac/operations/debugging/logging/)
* [Attaching a debugger](https://www.pulumi.com/docs/iac/operations/debugging/debugger-attachment/)
* [Performance and Tracing](https://www.pulumi.com/docs/iac/operations/debugging/performance-tracing/)
* [Using Dev Builds for Unreleased Fixes](https://www.pulumi.com/docs/iac/operations/debugging/using-dev-builds/)
* [Docker Images](https://www.pulumi.com/docs/iac/operations/docker-images/)
* [Image Build & Caching](https://www.pulumi.com/docs/iac/operations/container-image-reproducibility/)
* [Languages & SDKs](javascript:void(0))
* [Overview](https://www.pulumi.com/docs/iac/languages-sdks/)
* [TypeScript](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/languages-sdks/javascript/)
* [SDK docs ↗](https://www.pulumi.com/docs/reference/pkg/nodejs/pulumi/pulumi/)
* [Policy SDK docs ↗](https://www.pulumi.com/docs/reference/pkg/nodejs/pulumi/policy)
* [Provider package version management](https://www.pulumi.com/docs/iac/languages-sdks/javascript/provider-package-versions/)
* [Python](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/languages-sdks/python/)
* [SDK docs ↗](https://www.pulumi.com/docs/reference/pkg/python/pulumi/)
* [Policy SDK docs ↗](https://www.pulumi.com/docs/reference/pkg/python/pulumi_policy/)
* [Blocking & async](https://www.pulumi.com/docs/iac/languages-sdks/python/python-blocking-async/)
* [Resource identity](https://www.pulumi.com/docs/iac/languages-sdks/python/resource-identity/)
* [C#, F#, VB (.NET)](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/languages-sdks/dotnet/)
* [SDK docs ↗](https://www.pulumi.com/docs/reference/pkg/dotnet/pulumi/pulumi.html)
* [Go](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/languages-sdks/go/)
* [Inputs & outputs](https://www.pulumi.com/docs/iac/languages-sdks/go/go-inputs-outputs/)
* [SDK docs ↗](https://pkg.go.dev/github.com/pulumi/pulumi/sdk/v3/go/pulumi)
* [Java](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/languages-sdks/java/)
* [SDK docs ↗](https://www.pulumi.com/docs/reference/pkg/java/)
* [YAML](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/languages-sdks/yaml/)
* [Reference](https://www.pulumi.com/docs/iac/languages-sdks/yaml/yaml-language-reference/)
* [Component Reference](https://www.pulumi.com/docs/iac/languages-sdks/yaml/yaml-component-reference/)
* [HCL](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/languages-sdks/hcl/)
* [Reference](https://www.pulumi.com/docs/iac/languages-sdks/hcl/hcl-language-reference/)
* [Component Reference](https://www.pulumi.com/docs/iac/languages-sdks/hcl/hcl-component-reference/)
* [Pulumi CLI](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/cli/)
* [Commands](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/cli/commands/)
* [pulumi](https://www.pulumi.com/docs/iac/cli/commands/pulumi/)
* [about](https://www.pulumi.com/docs/iac/cli/commands/pulumi_about/)
* [cancel](https://www.pulumi.com/docs/iac/cli/commands/pulumi_cancel/)
* [config](https://www.pulumi.com/docs/iac/cli/commands/pulumi_config/)
* [console](https://www.pulumi.com/docs/iac/cli/commands/pulumi_console/)
* [convert](https://www.pulumi.com/docs/iac/cli/commands/pulumi_convert/)
* [destroy](https://www.pulumi.com/docs/iac/cli/commands/pulumi_destroy/)
* [env](https://www.pulumi.com/docs/iac/cli/commands/pulumi_env/)
* [gen-completion](https://www.pulumi.com/docs/iac/cli/commands/pulumi_gen-completion/)
* [import](https://www.pulumi.com/docs/iac/cli/commands/pulumi_import/)
* [login](https://www.pulumi.com/docs/iac/cli/commands/pulumi_login/)
* [logout](https://www.pulumi.com/docs/iac/cli/commands/pulumi_logout/)
* [logs](https://www.pulumi.com/docs/iac/cli/commands/pulumi_logs/)
* [new](https://www.pulumi.com/docs/iac/cli/commands/pulumi_new/)
* [org](https://www.pulumi.com/docs/iac/cli/commands/pulumi_org/)
* [package](https://www.pulumi.com/docs/iac/cli/commands/pulumi_package/)
* [plugin](https://www.pulumi.com/docs/iac/cli/commands/pulumi_plugin/)
* [policy](https://www.pulumi.com/docs/iac/cli/commands/pulumi_policy/)
* [preview](https://www.pulumi.com/docs/iac/cli/commands/pulumi_preview/)
* [refresh](https://www.pulumi.com/docs/iac/cli/commands/pulumi_refresh/)
* [schema](https://www.pulumi.com/docs/iac/cli/commands/pulumi_schema/)
* [stack](https://www.pulumi.com/docs/iac/cli/commands/pulumi_stack/)
* [state](https://www.pulumi.com/docs/iac/cli/commands/pulumi_state/)
* [up](https://www.pulumi.com/docs/iac/cli/commands/pulumi_up/)
* [version](https://www.pulumi.com/docs/iac/cli/commands/pulumi_version/)
* [whoami](https://www.pulumi.com/docs/iac/cli/commands/pulumi_whoami/)
* [Environment variables](https://www.pulumi.com/docs/iac/cli/environment-variables/)
* [Command-line completion](https://www.pulumi.com/docs/iac/cli/command-line-completion/)
* [Available versions](https://www.pulumi.com/docs/install/versions/)
* [Direct Resource Operations](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/cli/direct-resource-operations/)
* [Get Started](https://www.pulumi.com/docs/iac/cli/direct-resource-operations/get-started/)
* [Calling the Cloud API](https://www.pulumi.com/docs/iac/cli/api/)
* [Pulumi CLI Exit Codes](https://www.pulumi.com/docs/iac/cli/exit-codes/)
* [Comparisons](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/iac/comparisons/)
* [Terraform](https://www.pulumi.com/docs/iac/comparisons/terraform/)
* [Terraform Cloud](https://www.pulumi.com/docs/iac/comparisons/terraform-cloud/)
* [AWS CloudFormation](https://www.pulumi.com/docs/iac/comparisons/cloudformation/)
* [AWS CDK](https://www.pulumi.com/docs/iac/comparisons/aws-cdk/)
* [CDKTF](https://www.pulumi.com/docs/iac/comparisons/cdktf/)
* [Crossplane](https://www.pulumi.com/docs/iac/comparisons/crossplane/)
* [OpenTofu](https://www.pulumi.com/docs/iac/comparisons/opentofu/)
* [Spacelift](https://www.pulumi.com/docs/iac/comparisons/spacelift/)
* [TACOS](https://www.pulumi.com/docs/iac/comparisons/tacos/)
* [ARM Templates](https://www.pulumi.com/docs/iac/comparisons/arm-templates/)
* [Helm](https://www.pulumi.com/docs/iac/comparisons/helm/)
* [Kubernetes YAML Manifests](https://www.pulumi.com/docs/iac/comparisons/k8s-yaml-dsls/)
* [Serverless Framework](https://www.pulumi.com/docs/iac/comparisons/serverless/)
* [Chef & Puppet](https://www.pulumi.com/docs/iac/comparisons/chef-puppet-etc/)
* [Cloud SDKs](https://www.pulumi.com/docs/iac/comparisons/cloud-sdks/)
* [Custom solutions](https://www.pulumi.com/docs/iac/comparisons/custom/)
-
* [Infrastructure AI](javascript:void(0))
* [Overview](https://www.pulumi.com/docs/ai/)
* [Get started](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/ai/get-started/)
* [Pulumi Neo](https://www.pulumi.com/docs/ai/get-started/neo/)
* [Concepts](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/ai/concepts/)
* [Agent Skills](https://www.pulumi.com/docs/ai/concepts/agent-skills/)
* [CLI for agents](https://www.pulumi.com/docs/ai/concepts/cli-for-agents/)
* [Pulumi Neo](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/ai/concepts/neo/)
* [Tasks](https://www.pulumi.com/docs/ai/concepts/neo/tasks/)
* [Permissions model](https://www.pulumi.com/docs/ai/concepts/neo/permissions/)
* [Automations](https://www.pulumi.com/docs/ai/concepts/neo/automations/)
* [Neo in the CLI](https://www.pulumi.com/docs/ai/concepts/neo/neo-in-the-cli/)
* [Neo in your editor (ACP)](https://www.pulumi.com/docs/ai/concepts/neo/neo-in-your-editor/)
* [Pull Requests](https://www.pulumi.com/docs/ai/concepts/neo/pull-requests/)
* [Code reviews](https://www.pulumi.com/docs/ai/concepts/neo/code-reviews/)
* [Previews](https://www.pulumi.com/docs/ai/concepts/neo/previews/)
* [Instructions](https://www.pulumi.com/docs/ai/concepts/neo/instructions/)
* [Slash commands](https://www.pulumi.com/docs/ai/concepts/neo/slash-commands/)
* [Model providers (BYOK)](https://www.pulumi.com/docs/ai/concepts/neo/model-providers/)
* [Settings](https://www.pulumi.com/docs/ai/concepts/neo/settings/)
* [Usage limits](https://www.pulumi.com/docs/ai/concepts/neo/usage-limits/)
* [Guides](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/ai/guides/)
* [Set up the MCP server](https://www.pulumi.com/docs/ai/guides/set-up-mcp-server/)
* [Integrations](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/ai/integrations/)
* [External MCP servers](https://www.pulumi.com/docs/ai/integrations/external-mcp-servers/)
* [CLI Integrations](https://www.pulumi.com/docs/ai/integrations/cli-integrations/)
* [Slack](https://www.pulumi.com/docs/ai/integrations/slack/)
* [Reference](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/ai/reference/)
* [MCP server tools](https://www.pulumi.com/docs/ai/reference/mcp-server-tools/)
-
* [Deployments & Workflows](javascript:void(0))
* [Overview](https://www.pulumi.com/docs/deployments/)
* [Get Started](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/deployments/get-started/)
* [New Project Wizard](https://www.pulumi.com/docs/deployments/get-started/deployments-using-new-project-wizard/)
* [Pulumi and GitHub CLIs](https://www.pulumi.com/docs/deployments/get-started/deployments-using-cli/)
* [Concepts](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/deployments/concepts/)
* [Deployments Settings](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/deployments/concepts/settings/)
* [Source Settings](https://www.pulumi.com/docs/deployments/concepts/settings/source/)
* [Path Filtering](https://www.pulumi.com/docs/deployments/concepts/settings/path-filtering/)
* [Tag Filtering](https://www.pulumi.com/docs/deployments/concepts/settings/tag-filtering/)
* [Runner pools](https://www.pulumi.com/docs/deployments/concepts/settings/runner-pools/)
* [Pre-run Commands](https://www.pulumi.com/docs/deployments/concepts/settings/pre-run-commands/)
* [Skipping Dependency Installation](https://www.pulumi.com/docs/deployments/concepts/settings/skip-dependency-installation/)
* [Skipping Intermediate Deployments](https://www.pulumi.com/docs/deployments/concepts/settings/skip-intermediate-deployments/)
* [Custom Executor Images](https://www.pulumi.com/docs/deployments/concepts/settings/custom-executor-images/)
* [Dependency Caching](https://www.pulumi.com/docs/deployments/concepts/settings/dependency-caching/)
* [Pulumi Cloud Role](https://www.pulumi.com/docs/deployments/concepts/settings/pulumi-cloud-role/)
* [Environment Variables](https://www.pulumi.com/docs/deployments/concepts/settings/environment-variables/)
* [Deployment Triggers](https://www.pulumi.com/docs/deployments/concepts/triggers/)
* [Drift Detection](https://www.pulumi.com/docs/deployments/concepts/drift/)
* [TTL Stacks](https://www.pulumi.com/docs/deployments/concepts/ttl/)
* [Review Stacks](https://www.pulumi.com/docs/deployments/concepts/review-stacks/)
* [Scheduled operations](https://www.pulumi.com/docs/deployments/concepts/schedules/)
* [Pulumi-managed runners](https://www.pulumi.com/docs/deployments/concepts/pulumi-managed-runners/)
* [Webhooks](https://www.pulumi.com/docs/deployments/concepts/webhooks/)
* [Guides](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/deployments/guides/)
* [Cloud Credentials](https://www.pulumi.com/docs/deployments/guides/cloud-credentials/)
* [Requiring Approval](https://www.pulumi.com/docs/deployments/guides/gated-deployments/)
* [Custom Images](https://www.pulumi.com/docs/deployments/guides/custom-images/)
* [Private Sources](https://www.pulumi.com/docs/deployments/guides/private-sources/)
* [Dependent Stack Updates](https://www.pulumi.com/docs/deployments/guides/dependent-stack-updates/)
* [OIDC Setup](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/deployments/guides/oidc/)
* [AWS](https://www.pulumi.com/docs/deployments/guides/oidc/aws/)
* [Azure](https://www.pulumi.com/docs/deployments/guides/oidc/azure/)
* [Google Cloud](https://www.pulumi.com/docs/deployments/guides/oidc/gcp/)
* [Operations](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/deployments/operations/)
* [Permissions](https://www.pulumi.com/docs/deployments/operations/permissions/)
* [Deployment queue](https://www.pulumi.com/docs/deployments/operations/deployment-queue/)
* [Vs. Traditional CI/CD](https://www.pulumi.com/docs/deployments/versus/)
-
* [Secrets & Configuration](javascript:void(0))
* [Overview](https://www.pulumi.com/docs/esc/)
* [Get Started](https://www.pulumi.com/docs/esc/get-started/)
* [Concepts](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/esc/concepts/)
* [Environments](https://www.pulumi.com/docs/esc/concepts/environments/)
* [Providers](https://www.pulumi.com/docs/esc/concepts/providers/)
* [Rotators](https://www.pulumi.com/docs/esc/concepts/rotators/)
* [Imports](https://www.pulumi.com/docs/esc/concepts/imports/)
* [Interpolations and References](https://www.pulumi.com/docs/esc/concepts/interpolations-and-references/)
* [Built-in Properties](https://www.pulumi.com/docs/esc/concepts/builtin-properties/)
* [Built-in Functions](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/esc/concepts/builtin-functions/)
* [fn::concat](https://www.pulumi.com/docs/esc/concepts/builtin-functions/fn-concat/)
* [fn::final](https://www.pulumi.com/docs/esc/concepts/builtin-functions/fn-final/)
* [fn::fromBase64](https://www.pulumi.com/docs/esc/concepts/builtin-functions/fn-from-base64/)
* [fn::fromJSON](https://www.pulumi.com/docs/esc/concepts/builtin-functions/fn-from-json/)
* [fn::join](https://www.pulumi.com/docs/esc/concepts/builtin-functions/fn-join/)
* [fn::open](https://www.pulumi.com/docs/esc/concepts/builtin-functions/fn-open/)
* [fn::rotate](https://www.pulumi.com/docs/esc/concepts/builtin-functions/fn-rotate/)
* [fn::split](https://www.pulumi.com/docs/esc/concepts/builtin-functions/fn-split/)
* [fn::toBase64](https://www.pulumi.com/docs/esc/concepts/builtin-functions/fn-to-base64/)
* [fn::toJSON](https://www.pulumi.com/docs/esc/concepts/builtin-functions/fn-to-json/)
* [fn::toString](https://www.pulumi.com/docs/esc/concepts/builtin-functions/fn-to-string/)
* [fn::toYAML](https://www.pulumi.com/docs/esc/concepts/builtin-functions/fn-to-yaml/)
* [fn::validate](https://www.pulumi.com/docs/esc/concepts/builtin-functions/fn-validate/)
* [fn::secret](https://www.pulumi.com/docs/esc/concepts/builtin-functions/fn-secret/)
* [Outputs](https://www.pulumi.com/docs/esc/concepts/outputs/)
* [Versioning](https://www.pulumi.com/docs/esc/concepts/versioning/)
* [Webhooks](https://www.pulumi.com/docs/esc/concepts/webhooks/)
* [Approvals](https://www.pulumi.com/docs/esc/concepts/approvals/)
* [Customer managed keys](https://www.pulumi.com/docs/esc/concepts/customer-managed-keys/)
* [SDKs](https://www.pulumi.com/docs/esc/concepts/sdks/)
* [Providers](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/esc/providers/)
* [Login & OIDC](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/esc/providers/login/)
* [aws-login](https://www.pulumi.com/docs/esc/providers/login/aws-login/)
* [azure-login](https://www.pulumi.com/docs/esc/providers/login/azure-login/)
* [doppler-login](https://www.pulumi.com/docs/esc/providers/login/doppler-login/)
* [gcp-login](https://www.pulumi.com/docs/esc/providers/login/gcp-login/)
* [gh-login](https://www.pulumi.com/docs/esc/providers/login/gh-login/)
* [infisical-login](https://www.pulumi.com/docs/esc/providers/login/infisical-login/)
* [snowflake-login](https://www.pulumi.com/docs/esc/providers/login/snowflake-login/)
* [vault-login](https://www.pulumi.com/docs/esc/providers/login/vault-login/)
* [oidc](https://www.pulumi.com/docs/esc/providers/login/oidc/)
* [debug-oidc-claims](https://www.pulumi.com/docs/esc/providers/login/debug-oidc-claims/)
* [Secrets & config](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/esc/providers/secrets/)
* [1password-secrets](https://www.pulumi.com/docs/esc/providers/secrets/1password-secrets/)
* [aws-parameter-store](https://www.pulumi.com/docs/esc/providers/secrets/aws-parameter-store/)
* [aws-secrets](https://www.pulumi.com/docs/esc/providers/secrets/aws-secrets/)
* [azure-secrets](https://www.pulumi.com/docs/esc/providers/secrets/azure-secrets/)
* [doppler-secrets](https://www.pulumi.com/docs/esc/providers/secrets/doppler-secrets/)
* [gcp-secrets](https://www.pulumi.com/docs/esc/providers/secrets/gcp-secrets/)
* [infisical-secrets](https://www.pulumi.com/docs/esc/providers/secrets/infisical-secrets/)
* [vault-secrets](https://www.pulumi.com/docs/esc/providers/secrets/vault-secrets/)
* [external](https://www.pulumi.com/docs/esc/providers/secrets/external/)
* [IaC](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/esc/providers/iac/)
* [pulumi-stacks](https://www.pulumi.com/docs/esc/providers/iac/pulumi-stacks/)
* [terraform-state](https://www.pulumi.com/docs/esc/providers/iac/terraform-state/)
* [Rotators](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/esc/providers/rotators/)
* [aws-iam](https://www.pulumi.com/docs/esc/providers/rotators/aws-iam/)
* [azure-app-secret](https://www.pulumi.com/docs/esc/providers/rotators/azure-app-secret/)
* [mysql](https://www.pulumi.com/docs/esc/providers/rotators/mysql/)
* [passphrase](https://www.pulumi.com/docs/esc/providers/rotators/passphrase/)
* [password](https://www.pulumi.com/docs/esc/providers/rotators/password/)
* [postgres](https://www.pulumi.com/docs/esc/providers/rotators/postgres/)
* [snowflake-user](https://www.pulumi.com/docs/esc/providers/rotators/snowflake-user/)
* [external](https://www.pulumi.com/docs/esc/providers/rotators/external/)
* [Operations](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/esc/operations/)
* [Rotating secrets](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/esc/operations/rotation/)
* [Best practices](https://www.pulumi.com/docs/esc/operations/rotation/best-practices/)
* [AWS Lambda Rotation Connector](https://www.pulumi.com/docs/esc/operations/rotation/aws-lambda/)
* [Database User Setup](https://www.pulumi.com/docs/esc/operations/rotation/db-user-setup/)
* [Guides](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/esc/guides/)
* [Environment Composition Patterns](https://www.pulumi.com/docs/esc/guides/environment-composition-patterns/)
* [Use with Pulumi IaC](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/esc/guides/pulumi-iac/)
* [Adopt ESC for config and secrets](https://www.pulumi.com/docs/esc/guides/pulumi-iac/adopt-esc-for-config-and-secrets/)
* [Migrate from stack references to pulumi-stacks](https://www.pulumi.com/docs/esc/guides/pulumi-iac/migrate-from-stack-references/)
* [Sync secrets to external platforms](https://www.pulumi.com/docs/esc/guides/sync-secrets-to-external-platforms/)
* [Migrate from the ESC CLI](https://www.pulumi.com/docs/esc/guides/migrate-from-esc-cli/)
* [Running Commands with pulumi env run](https://www.pulumi.com/docs/esc/guides/running-commands/)
* [Configuring OIDC](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/esc/guides/configuring-oidc/)
* [AWS](https://www.pulumi.com/docs/esc/guides/configuring-oidc/aws/)
* [Azure](https://www.pulumi.com/docs/esc/guides/configuring-oidc/azure/)
* [Doppler](https://www.pulumi.com/docs/esc/guides/configuring-oidc/doppler/)
* [Google Cloud](https://www.pulumi.com/docs/esc/guides/configuring-oidc/gcp/)
* [Infisical](https://www.pulumi.com/docs/esc/guides/configuring-oidc/infisical/)
* [Vault](https://www.pulumi.com/docs/esc/guides/configuring-oidc/vault/)
* [Custom audiences](https://www.pulumi.com/docs/esc/guides/configuring-oidc/custom-audience/)
* [Integrate with…](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/esc/guides/integrate-with/)
* [Kubernetes Cluster Access](https://www.pulumi.com/docs/esc/guides/integrate-with/kubernetes-cluster-access/)
* [Docker](https://www.pulumi.com/docs/esc/guides/integrate-with/docker/)
* [Direnv](https://www.pulumi.com/docs/esc/guides/integrate-with/direnv/)
* [GitHub](https://www.pulumi.com/docs/esc/guides/integrate-with/github-actions/)
* [Terraform](https://www.pulumi.com/docs/esc/guides/integrate-with/terraform/)
* [Cloudflare](https://www.pulumi.com/docs/esc/guides/integrate-with/cloudflare/)
* [Integrations](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/esc/integrations/)
* [Pulumi Service Provider](https://www.pulumi.com/docs/esc/integrations/pulumi-service-provider/)
* [Automation API](https://www.pulumi.com/docs/esc/integrations/automation-api/)
* [Kubernetes](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/esc/integrations/kubernetes/)
* [External Secrets Operator (ESO)](https://www.pulumi.com/docs/esc/integrations/kubernetes/external-secrets-operator/)
* [Secrets Store CSI Driver](https://www.pulumi.com/docs/esc/integrations/kubernetes/secret-store-csi-driver/)
* [Administration](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/esc/administration/)
* [Audit logs](https://www.pulumi.com/docs/esc/administration/audit-logs/)
* [Deletion protection](https://www.pulumi.com/docs/esc/administration/deletion-protection/)
* [Languages & SDKs](javascript:void(0))
* [Overview](https://www.pulumi.com/docs/esc/languages-sdks/)
* [TypeScript](https://www.pulumi.com/docs/esc/languages-sdks/javascript/)
* [Python](https://www.pulumi.com/docs/esc/languages-sdks/python/)
* [Go](https://www.pulumi.com/docs/esc/languages-sdks/go/)
* [.NET](https://www.pulumi.com/docs/esc/languages-sdks/dotnet/)
* [Comparisons](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/esc/vs/)
* [HashiCorp Vault](https://www.pulumi.com/docs/esc/vs/vault/)
* [Infisical](https://www.pulumi.com/docs/esc/vs/infisical/)
* [Doppler](https://www.pulumi.com/docs/esc/vs/doppler/)
-
* [Discovery & governance](javascript:void(0))
* [Overview](https://www.pulumi.com/docs/discovery-governance/)
* [Get started](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/discovery-governance/get-started/)
* [Before you begin](https://www.pulumi.com/docs/discovery-governance/get-started/before-you-begin/)
* [Create a Discovery account](https://www.pulumi.com/docs/discovery-governance/get-started/create-a-discovery-account/)
* [Manage accounts and scans](https://www.pulumi.com/docs/discovery-governance/get-started/manage-accounts-and-scans/)
* [Explore resources](https://www.pulumi.com/docs/discovery-governance/get-started/explore-resources/)
* [Add policies](https://www.pulumi.com/docs/discovery-governance/get-started/add-policies/)
* [Enforce policy as code](https://www.pulumi.com/docs/discovery-governance/get-started/enforce-policy-as-code/)
* [Concepts](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/discovery-governance/concepts/)
* [Discovery](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/discovery-governance/concepts/discovery/)
* [Cloud accounts](https://www.pulumi.com/docs/discovery-governance/concepts/discovery/cloud-accounts/)
* [Querying resources](https://www.pulumi.com/docs/discovery-governance/concepts/discovery/querying-resources/)
* [Visual Import](https://www.pulumi.com/docs/discovery-governance/concepts/discovery/visual-import/)
* [Discovered stacks](https://www.pulumi.com/docs/discovery-governance/concepts/discovery/discovered-stacks/)
* [Policy as code](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/discovery-governance/concepts/policy-as-code/)
* [Policies](https://www.pulumi.com/docs/discovery-governance/concepts/policy-as-code/policies/)
* [Policy packs](https://www.pulumi.com/docs/discovery-governance/concepts/policy-as-code/policy-packs/)
* [Policy groups](https://www.pulumi.com/docs/discovery-governance/concepts/policy-as-code/policy-groups/)
* [Context API](https://www.pulumi.com/docs/discovery-governance/concepts/context-api/)
* [Guides](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/discovery-governance/guides/)
* [Connect cloud accounts](https://www.pulumi.com/docs/discovery-governance/guides/connect-cloud-accounts/)
* [Search resources](https://www.pulumi.com/docs/discovery-governance/guides/search-resources/)
* [Import with Visual Import](https://www.pulumi.com/docs/discovery-governance/guides/visual-import/)
* [Migrate a discovered stack](https://www.pulumi.com/docs/discovery-governance/guides/migrate-discovered-stack/)
* [Export resource data](https://www.pulumi.com/docs/discovery-governance/guides/export-resource-data/)
* [Use pre-built policy packs](https://www.pulumi.com/docs/discovery-governance/guides/pre-built-policy-packs/)
* [Enforce AWS Organizations tag policies](https://www.pulumi.com/docs/discovery-governance/guides/aws-organizations-tag-policies/)
* [Write a policy pack](https://www.pulumi.com/docs/discovery-governance/guides/write-a-policy-pack/)
* [Write OPA policies](https://www.pulumi.com/docs/discovery-governance/guides/write-opa-policies/)
* [Enforce policies in CI/CD](https://www.pulumi.com/docs/discovery-governance/guides/policies-in-ci-cd/)
* [Query the Context API](https://www.pulumi.com/docs/discovery-governance/guides/context-api/)
* [Operations](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/discovery-governance/operations/)
* [Review policy findings](https://www.pulumi.com/docs/discovery-governance/operations/policy-findings/)
* [Customer-managed runners](https://www.pulumi.com/docs/discovery-governance/operations/customer-managed-runners/)
* [Reference](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/discovery-governance/reference/)
* [pulumi policy CLI ↗](https://www.pulumi.com/docs/iac/cli/commands/pulumi_policy/)
* [Policy API and SDK](https://www.pulumi.com/docs/discovery-governance/reference/policy-api-sdk/)
* [PulumiPolicy.yaml](https://www.pulumi.com/docs/discovery-governance/reference/policy-project-file/)
* [Policy fields](https://www.pulumi.com/docs/discovery-governance/reference/policy-fields/)
-
* [Internal Developer Platform](javascript:void(0))
* [Overview](https://www.pulumi.com/docs/idp/)
* [Concepts](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/idp/concepts/)
* [Private Registry](https://www.pulumi.com/docs/idp/concepts/private-registry/)
* [Terraform modules](https://www.pulumi.com/docs/integrations/terraform/module-registry/)
* [Organization templates](https://www.pulumi.com/docs/idp/concepts/organization-templates/)
* [New Project Wizard](https://www.pulumi.com/docs/idp/concepts/new-project-wizard/)
* [No-code stacks](https://www.pulumi.com/docs/idp/concepts/no-code-stacks/)
* [Services](https://www.pulumi.com/docs/idp/concepts/services/)
* [Guides](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/idp/guides/)
* [Best Practices](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/idp/guides/best-practices/)
* [The Four Factors Framework](https://www.pulumi.com/docs/idp/guides/best-practices/four-factors/)
* [Patterns](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/idp/guides/best-practices/patterns/)
* [One ESC environment per service](https://www.pulumi.com/docs/idp/guides/best-practices/patterns/one-esc-environment-per-service/)
* [One ESC environment per team](https://www.pulumi.com/docs/idp/guides/best-practices/patterns/one-esc-environment-per-team/)
* [One ESC environment per lifecycle stage](https://www.pulumi.com/docs/idp/guides/best-practices/patterns/one-esc-environment-per-lifecycle-stage/)
* [Composable environments](https://www.pulumi.com/docs/idp/guides/best-practices/patterns/composable-environments/)
* [Multiple workloads on shared infrastructure](https://www.pulumi.com/docs/idp/guides/best-practices/patterns/multiple-workloads-shared-infrastructure/)
* [Policies as tests](https://www.pulumi.com/docs/idp/guides/best-practices/patterns/policies-as-tests/)
* [Components using other Components](https://www.pulumi.com/docs/idp/guides/best-practices/patterns/components-using-other-components/)
* [Validating Component Inputs using Policy functions](https://www.pulumi.com/docs/idp/guides/best-practices/patterns/validating-component-inputs-using-policy-functions/)
* [Cost control using Components, Policies, and constrained inputs](https://www.pulumi.com/docs/idp/guides/best-practices/patterns/cost-control-using-components-policies-constrained-inputs/)
* [Security Updates using Components](https://www.pulumi.com/docs/idp/guides/best-practices/patterns/security-updates-using-components/)
* [Publishing Components from GitHub Actions](https://www.pulumi.com/docs/idp/guides/publishing-from-github-actions/)
* [Integrations](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/idp/integrations/)
* [Deploy with Pulumi button](https://www.pulumi.com/docs/idp/integrations/pulumi-button/)
* [Pulumi Backstage plugin](https://www.pulumi.com/docs/idp/integrations/backstage-plugin/)
-
* [Administration](javascript:void(0))
* [Overview](https://www.pulumi.com/docs/administration/)
* [Get Started](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/administration/get-started/)
* [Select the right model](https://www.pulumi.com/docs/administration/get-started/choose-edition/)
* [Ways of working](https://www.pulumi.com/docs/administration/get-started/ways-of-working/)
* [Setting up for success](https://www.pulumi.com/docs/administration/get-started/setting-up-for-success/)
* [Migrating to Pulumi](https://www.pulumi.com/docs/administration/get-started/migrating-to-pulumi/)
* [Concepts](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/administration/concepts/)
* [Organizations](https://www.pulumi.com/docs/administration/concepts/organizations/)
* [Identity providers and SSO](https://www.pulumi.com/docs/administration/concepts/identity-providers/)
* [SCIM provisioning](https://www.pulumi.com/docs/administration/concepts/scim/)
* [Accounts](https://www.pulumi.com/docs/administration/concepts/accounts/)
* [Organization-Managed Users](https://www.pulumi.com/docs/administration/concepts/org-managed-users/)
* [Agent Accounts](https://www.pulumi.com/docs/administration/concepts/agent-accounts/)
* [Billing managers](https://www.pulumi.com/docs/administration/concepts/billing-managers/)
* [Access tokens](https://www.pulumi.com/docs/administration/concepts/access-tokens/)
* [Role-Based Access Control (RBAC)](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/administration/concepts/rbac/)
* [Scopes](https://www.pulumi.com/docs/administration/concepts/rbac/scopes/)
* [Permission sets](https://www.pulumi.com/docs/administration/concepts/rbac/permission-sets/)
* [Entities & Org Level](https://www.pulumi.com/docs/administration/concepts/rbac/entities/)
* [Roles](https://www.pulumi.com/docs/administration/concepts/rbac/roles/)
* [Teams](https://www.pulumi.com/docs/administration/concepts/rbac/teams/)
* [OIDC issuers](https://www.pulumi.com/docs/administration/concepts/oidc-issuers/)
* [Audit Logs](https://www.pulumi.com/docs/administration/concepts/audit-logs/)
* [Customer managed keys](https://www.pulumi.com/docs/administration/concepts/customer-managed-keys/)
* [Customer-managed runners](https://www.pulumi.com/docs/administration/concepts/customer-managed-runners/)
* [Cloud SDK](https://www.pulumi.com/docs/administration/concepts/cloud-sdk/)
* [Guides](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/administration/guides/)
* [SAML SSO](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/administration/guides/saml/)
* [Using SAML](https://www.pulumi.com/docs/administration/guides/saml/sso/)
* [Auth0](https://www.pulumi.com/docs/administration/guides/saml/auth0/)
* [Entra ID](https://www.pulumi.com/docs/administration/guides/saml/entra/)
* [Google Workspace](https://www.pulumi.com/docs/administration/guides/saml/gsuite/)
* [JumpCloud](https://www.pulumi.com/docs/administration/guides/saml/jumpcloud/)
* [Okta](https://www.pulumi.com/docs/administration/guides/saml/okta/)
* [OneLogin](https://www.pulumi.com/docs/administration/guides/saml/onelogin/)
* [SAML admin](https://www.pulumi.com/docs/administration/guides/saml/saml-admin/)
* [Troubleshooting](https://www.pulumi.com/docs/administration/guides/saml/troubleshooting/)
* [SCIM](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/administration/guides/scim/)
* [Entra ID](https://www.pulumi.com/docs/administration/guides/scim/entra/)
* [Okta](https://www.pulumi.com/docs/administration/guides/scim/okta/)
* [OneLogin](https://www.pulumi.com/docs/administration/guides/scim/onelogin/)
* [Troubleshooting](https://www.pulumi.com/docs/administration/guides/scim/troubleshooting/)
* [OIDC issuers](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/administration/guides/oidc-issuers/)
* [GitHub](https://www.pulumi.com/docs/administration/guides/oidc-issuers/github/)
* [GitLab](https://www.pulumi.com/docs/administration/guides/oidc-issuers/gitlab/)
* [AWS EKS](https://www.pulumi.com/docs/administration/guides/oidc-issuers/kubernetes-eks/)
* [Google GKE](https://www.pulumi.com/docs/administration/guides/oidc-issuers/kubernetes-gke/)
* [Audit Logs](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/administration/guides/audit-logs/)
* [Manual Export](https://www.pulumi.com/docs/administration/guides/audit-logs/manual-export/)
* [Export to AWS S3](https://www.pulumi.com/docs/administration/guides/audit-logs/aws-s3/)
* [Export to Microsoft Sentinel](https://www.pulumi.com/docs/administration/guides/audit-logs/azure-sentinel/)
* [Customer managed keys](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/administration/guides/customer-managed-keys/)
* [AWS KMS](https://www.pulumi.com/docs/administration/guides/customer-managed-keys/aws-kms/)
* [Least Privilege](https://www.pulumi.com/docs/administration/guides/least-privilege/)
* [Set up customer-managed runners](https://www.pulumi.com/docs/administration/guides/customer-managed-runners/)
* [Reference](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/administration/reference/)
* [RBAC Scopes](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/administration/reference/rbac-scopes/)
* [Stacks](https://www.pulumi.com/docs/administration/reference/rbac-scopes/stacks/)
* [Environments](https://www.pulumi.com/docs/administration/reference/rbac-scopes/environments/)
* [Cloud accounts](https://www.pulumi.com/docs/administration/reference/rbac-scopes/insights-accounts/)
* [Organization settings](https://www.pulumi.com/docs/administration/reference/rbac-scopes/org-settings/)
* [Audit log events](https://www.pulumi.com/docs/administration/reference/audit-log-events/)
* [Audit log formats](https://www.pulumi.com/docs/administration/reference/audit-log-formats/)
* [Self-Hosting](javascript:void(0))
* [Overview](https://www.pulumi.com/docs/administration/self-hosting/)
* [Deployment options](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/administration/self-hosting/deployment-options/)
* [Docker Compose](https://www.pulumi.com/docs/administration/self-hosting/deployment-options/quickstart-docker-compose/)
* [ECS](https://www.pulumi.com/docs/administration/self-hosting/deployment-options/ecs-hosted/)
* [EKS](https://www.pulumi.com/docs/administration/self-hosting/deployment-options/eks-hosted/)
* [AKS](https://www.pulumi.com/docs/administration/self-hosting/deployment-options/aks-hosted/)
* [GKE](https://www.pulumi.com/docs/administration/self-hosting/deployment-options/gke-hosted/)
* [Local-Docker](https://www.pulumi.com/docs/administration/self-hosting/deployment-options/local-docker/)
* [Bring-your-own infra](https://www.pulumi.com/docs/administration/self-hosting/deployment-options/byo-infra-hosted/)
* [Components](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/administration/self-hosting/components/)
* [Pulumi API](https://www.pulumi.com/docs/administration/self-hosting/components/api/)
* [Pulumi console](https://www.pulumi.com/docs/administration/self-hosting/components/console/)
* [OpenSearch cluster](https://www.pulumi.com/docs/administration/self-hosting/components/search/)
* [Pulumi Deployments](https://www.pulumi.com/docs/administration/self-hosting/components/deployments/)
* [SAML SSO](https://www.pulumi.com/docs/administration/self-hosting/saml-sso/)
* [Network reqs](https://www.pulumi.com/docs/administration/self-hosting/network/)
* [Air-gapped](https://www.pulumi.com/docs/administration/self-hosting/airgapped/)
* [Operations](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/administration/self-hosting/operations/)
* [Architecture](https://www.pulumi.com/docs/administration/self-hosting/operations/architecture/)
* [Database](https://www.pulumi.com/docs/administration/self-hosting/operations/database/)
* [Compute Sizing](https://www.pulumi.com/docs/administration/self-hosting/operations/compute-sizing/)
* [Object Storage](https://www.pulumi.com/docs/administration/self-hosting/operations/object-storage/)
* [Networking](https://www.pulumi.com/docs/administration/self-hosting/operations/networking/)
* [Monitoring](https://www.pulumi.com/docs/administration/self-hosting/operations/monitoring/)
* [Backup and Recovery](https://www.pulumi.com/docs/administration/self-hosting/operations/backup-recovery/)
* [Upgrades](https://www.pulumi.com/docs/administration/self-hosting/operations/upgrades/)
* [Security Hardening](https://www.pulumi.com/docs/administration/self-hosting/operations/security-hardening/)
* [Changelog](https://www.pulumi.com/docs/administration/self-hosting/changelog/)
-
* [Integrations](javascript:void(0))
* [Overview](https://www.pulumi.com/docs/integrations/)
* [Clouds](javascript:void(0))
* [Overview](https://www.pulumi.com/docs/integrations/clouds/)
* [AWS](https://www.pulumi.com/docs/integrations/clouds/aws/)
* [Azure](https://www.pulumi.com/docs/integrations/clouds/azure/)
* [Google Cloud](https://www.pulumi.com/docs/integrations/clouds/gcp/)
* [Kubernetes](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/integrations/clouds/kubernetes/)
* [Pulumi Kubernetes Operator](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/integrations/clouds/kubernetes/pulumi-kubernetes-operator/)
* [Installation](https://www.pulumi.com/docs/integrations/clouds/kubernetes/pulumi-kubernetes-operator/installation/)
* [Defining stacks](https://www.pulumi.com/docs/integrations/clouds/kubernetes/pulumi-kubernetes-operator/defining-stacks/)
* [Stack operations](https://www.pulumi.com/docs/integrations/clouds/kubernetes/pulumi-kubernetes-operator/stack-operations/)
* [Rolling out changes](https://www.pulumi.com/docs/integrations/clouds/kubernetes/pulumi-kubernetes-operator/rolling-out-changes/)
* [crd2pulumi](https://www.pulumi.com/docs/integrations/clouds/kubernetes/crd2pulumi/)
* [Version Control](javascript:void(0))
* [Overview](https://www.pulumi.com/docs/integrations/version-control/)
* [GitHub](https://www.pulumi.com/docs/integrations/version-control/github-app/)
* [GitLab](https://www.pulumi.com/docs/integrations/version-control/gitlab/)
* [Bitbucket](https://www.pulumi.com/docs/integrations/version-control/bitbucket/)
* [Azure DevOps](https://www.pulumi.com/docs/integrations/version-control/azure-devops-integration/)
* [Custom VCS](https://www.pulumi.com/docs/integrations/version-control/custom-vcs/)
* [Terraform & OpenTofu](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/integrations/terraform/)
* [State backend](https://www.pulumi.com/docs/integrations/terraform/state-backend/)
* [Remote execution](https://www.pulumi.com/docs/integrations/terraform/remote-execution/)
* [Module registry](https://www.pulumi.com/docs/integrations/terraform/module-registry/)
* [Terraform modules](https://www.pulumi.com/docs/integrations/terraform/modules/)
* [Reference Terraform state](https://www.pulumi.com/docs/integrations/terraform/reference-state/)
* [Convert HCL](https://www.pulumi.com/docs/integrations/terraform/convert-hcl/)
* [Orchestrate with Terraform](https://www.pulumi.com/docs/integrations/terraform/orchestrate/)
* [VS Code](https://www.pulumi.com/docs/integrations/vs-code/)
-
* [Reference](javascript:void(0))
* [Overview](https://www.pulumi.com/docs/reference/)
* [Pulumi CLI](https://www.pulumi.com/docs/iac/cli/)
* [SDKs](javascript:void(0))
* [Pulumi SDK](javascript:void(0))
* [TypeScript ↗](https://www.pulumi.com/docs/reference/pkg/nodejs/pulumi/pulumi/)
* [Python ↗](https://www.pulumi.com/docs/reference/pkg/python/pulumi/)
* [Go ↗](https://pkg.go.dev/github.com/pulumi/pulumi/sdk/v3/go/pulumi)
* [.NET ↗](https://www.pulumi.com/docs/reference/pkg/dotnet/pulumi/pulumi.html)
* [Java ↗](https://www.pulumi.com/docs/reference/pkg/java/)
* [Policy SDK](javascript:void(0))
* [TypeScript ↗](https://www.pulumi.com/docs/reference/pkg/nodejs/pulumi/policy)
* [Python ↗](https://www.pulumi.com/docs/reference/pkg/python/pulumi_policy/)
* [ESC SDK](javascript:void(0))
* [TypeScript ↗](https://www.pulumi.com/docs/reference/pkg/nodejs/pulumi/esc-sdk/)
* [Python ↗](https://www.pulumi.com/docs/reference/pkg/python/pulumi_esc_sdk/)
* [Go ↗](https://pkg.go.dev/github.com/pulumi/esc-sdk/sdk/go)
* [.NET ↗](https://www.pulumi.com/docs/reference/pkg/dotnet/esc-sdk/pulumi.esc.sdk/pulumi.esc.sdk.html)
* [Pulumi Cloud SDK](javascript:void(0))
* [TypeScript ↗](https://www.pulumi.com/docs/reference/pkg/nodejs/pulumi/cloud-sdk/)
* [Python ↗](https://www.pulumi.com/docs/reference/pkg/python/pulumi_cloud_sdk/)
* [Go ↗](https://pkg.go.dev/github.com/pulumi/pulumi-cloud-sdk/go/apiclient)
* [.NET ↗](https://www.pulumi.com/docs/reference/pkg/dotnet/cloud-sdk/pulumi.cloud.sdk/pulumi.cloud.sdk.html)
* [Java ↗](https://www.pulumi.com/docs/reference/pkg/java/cloud-sdk/)
* [Pre-built Policy Packs](javascript:void(0))
* [CIS](javascript:void(0))
* [AWS](https://www.pulumi.com/docs/reference/pre-built-policy-packs/cis/aws/)
* [Azure](https://www.pulumi.com/docs/reference/pre-built-policy-packs/cis/azure/)
* [Google Cloud](https://www.pulumi.com/docs/reference/pre-built-policy-packs/cis/google-cloud/)
* [CIS Kubernetes](javascript:void(0))
* [AWS (EKS)](https://www.pulumi.com/docs/reference/pre-built-policy-packs/cis-kubernetes/aws/)
* [Azure (AKS)](https://www.pulumi.com/docs/reference/pre-built-policy-packs/cis-kubernetes/azure/)
* [Google Cloud (GKE)](https://www.pulumi.com/docs/reference/pre-built-policy-packs/cis-kubernetes/google-cloud/)
* [CMMC](javascript:void(0))
* [AWS](https://www.pulumi.com/docs/reference/pre-built-policy-packs/cmmc/aws/)
* [Google Cloud](https://www.pulumi.com/docs/reference/pre-built-policy-packs/cmmc/google-cloud/)
* [HITRUST](javascript:void(0))
* [AWS](https://www.pulumi.com/docs/reference/pre-built-policy-packs/hitrust/aws/)
* [Azure](https://www.pulumi.com/docs/reference/pre-built-policy-packs/hitrust/azure/)
* [Google Cloud](https://www.pulumi.com/docs/reference/pre-built-policy-packs/hitrust/google-cloud/)
* [ISO/IEC 27001](javascript:void(0))
* [AWS](https://www.pulumi.com/docs/reference/pre-built-policy-packs/iso-27001/aws/)
* [Azure](https://www.pulumi.com/docs/reference/pre-built-policy-packs/iso-27001/azure/)
* [Google Cloud](https://www.pulumi.com/docs/reference/pre-built-policy-packs/iso-27001/google-cloud/)
* [AWS Organizations Tag Policies](https://www.pulumi.com/docs/reference/pre-built-policy-packs/aws-organizations-tag-policies/aws/)
* [NIST](javascript:void(0))
* [AWS](https://www.pulumi.com/docs/reference/pre-built-policy-packs/nist/aws/)
* [Azure](https://www.pulumi.com/docs/reference/pre-built-policy-packs/nist/azure/)
* [Google Cloud](https://www.pulumi.com/docs/reference/pre-built-policy-packs/nist/google-cloud/)
* [PCI DSS](javascript:void(0))
* [AWS](https://www.pulumi.com/docs/reference/pre-built-policy-packs/pci-dss/aws/)
* [Azure](https://www.pulumi.com/docs/reference/pre-built-policy-packs/pci-dss/azure/)
* [Google Cloud](https://www.pulumi.com/docs/reference/pre-built-policy-packs/pci-dss/google-cloud/)
* [Pulumi Best Practices](javascript:void(0))
* [AWS](https://www.pulumi.com/docs/reference/pre-built-policy-packs/pulumi-best-practices/aws/)
* [Azure](https://www.pulumi.com/docs/reference/pre-built-policy-packs/pulumi-best-practices/azure/)
* [Google Cloud](https://www.pulumi.com/docs/reference/pre-built-policy-packs/pulumi-best-practices/google-cloud/)
* [Registry URLs](https://www.pulumi.com/docs/reference/registry-urls/)
* [REST API Docs](javascript:void(0))
* [Introduction](https://www.pulumi.com/docs/reference/cloud-rest-api/)
* [Access Tokens](https://www.pulumi.com/docs/reference/cloud-rest-api/access-tokens/)
* [API Basics](https://www.pulumi.com/docs/reference/cloud-rest-api/api-basics/)
* [AI](https://www.pulumi.com/docs/reference/cloud-rest-api/ai/)
* [AI Agents](https://www.pulumi.com/docs/reference/cloud-rest-api/ai-agents/)
* [Audit Logs](https://www.pulumi.com/docs/reference/cloud-rest-api/audit-logs/)
* [Cloud Setup](https://www.pulumi.com/docs/reference/cloud-rest-api/cloud-setup/)
* [Data Export](https://www.pulumi.com/docs/reference/cloud-rest-api/data-export/)
* [Deployment Runners](https://www.pulumi.com/docs/reference/cloud-rest-api/deployment-runners/)
* [Deployments](https://www.pulumi.com/docs/reference/cloud-rest-api/deployments/)
* [Environments](https://www.pulumi.com/docs/reference/cloud-rest-api/environments/)
* [Insights Accounts](https://www.pulumi.com/docs/reference/cloud-rest-api/insights-accounts/)
* [Invites](https://www.pulumi.com/docs/reference/cloud-rest-api/invites/)
* [Neo](https://www.pulumi.com/docs/reference/cloud-rest-api/neo/)
* [OAuth Token Exchange](https://www.pulumi.com/docs/reference/cloud-rest-api/oauth-token-exchange/)
* [OIDC Issuers](https://www.pulumi.com/docs/reference/cloud-rest-api/oidc-issuers/)
* [Organizations](https://www.pulumi.com/docs/reference/cloud-rest-api/organizations/)
* [Policy Groups](https://www.pulumi.com/docs/reference/cloud-rest-api/policy-groups/)
* [Policy Packs](https://www.pulumi.com/docs/reference/cloud-rest-api/policy-packs/)
* [Policy Results](https://www.pulumi.com/docs/reference/cloud-rest-api/policy-results/)
* [Registry](https://www.pulumi.com/docs/reference/cloud-rest-api/registry/)
* [Registry Preview](https://www.pulumi.com/docs/reference/cloud-rest-api/registry-preview/)
* [Resource Search](https://www.pulumi.com/docs/reference/cloud-rest-api/resource-search/)
* [Resources Under Management](https://www.pulumi.com/docs/reference/cloud-rest-api/resources-under-management/)
* [Schedules](https://www.pulumi.com/docs/reference/cloud-rest-api/schedules/)
* [Services](https://www.pulumi.com/docs/reference/cloud-rest-api/services/)
* [Stack Config](https://www.pulumi.com/docs/reference/cloud-rest-api/stack-config/)
* [Stack Policy](https://www.pulumi.com/docs/reference/cloud-rest-api/stack-policy/)
* [Stacks](https://www.pulumi.com/docs/reference/cloud-rest-api/stacks/)
* [Stack Tags](https://www.pulumi.com/docs/reference/cloud-rest-api/stack-tags/)
* [Stack Updates](https://www.pulumi.com/docs/reference/cloud-rest-api/stack-updates/)
* [Users](https://www.pulumi.com/docs/reference/cloud-rest-api/users/)
* [VCS Integrations](https://www.pulumi.com/docs/reference/cloud-rest-api/vcs-integrations/)
* [Webhooks](https://www.pulumi.com/docs/reference/cloud-rest-api/webhooks/)
* [Miscellaneous](https://www.pulumi.com/docs/reference/cloud-rest-api/miscellaneous/)
* [Schema](https://www.pulumi.com/docs/reference/cloud-rest-api/schema/)
* [Property Paths](https://www.pulumi.com/docs/reference/property-paths/)
* [PulumiPlugin.yaml](https://www.pulumi.com/docs/reference/pulumiplugin-yaml/)
* [Glossary](https://www.pulumi.com/docs/reference/glossary/)
-
* [Support & Troubleshooting](javascript:void(0))
* [Overview](https://www.pulumi.com/docs/support/)
* [Getting Support](https://www.pulumi.com/docs/support/getting-support/)
* [Provider support policy](https://www.pulumi.com/docs/support/provider-support-policy/)
* [Filing Issues](https://www.pulumi.com/docs/support/filing-issues/)
* [FAQ](javascript:void(0))
* [Overview](https://www.pulumi.com/docs/support/faq/)
* [IaC FAQ](https://www.pulumi.com/docs/support/faq/infrastructure/)
* [Secrets & Config FAQ](https://www.pulumi.com/docs/support/faq/secrets-config/)
* [Policies FAQ](https://www.pulumi.com/docs/support/faq/policies/)
* [Pulumi Cloud FAQ](https://www.pulumi.com/docs/support/faq/pulumi-cloud/)
-
* [Dev Center ↗](https://www.pulumi.com/dev/)
-
* [Registry ↗](https://www.pulumi.com/registry/)
- Docs
- Infrastructure AI
- Guides
- MCP server
Pulumi Model Context Protocol server
On this page
On this page
The Pulumi Model Context Protocol (MCP) server gives the AI agent you already use access to Pulumi. Through it, an agent can list your stacks, search your resources, check policy violations, look up resource schemas in the Pulumi Registry, and hand tasks to Pulumi Neo. For background on MCP in infrastructure work, see MCP for infrastructure as code.
Pulumi hosts the server at https://mcp.ai.pulumi.com/mcp, so there is nothing to install or run locally.
This page is about connecting your own AI agent to Pulumi. For the opposite direction, connecting Neo to other services’ MCP servers (Jira, Datadog, and others), see External MCP servers.
Authentication
The MCP server calls Pulumi Cloud with a Pulumi access token that you provide. Every call runs as that token’s identity, so the agent can see and do exactly what the token can, under your organization’s RBAC settings, and nothing more. See Choose a token for which kind to use.
Authenticate in the browser
The first time your agent connects, it opens a browser window:
- Paste a Pulumi access token.
- Select the organization the server should use by default.
- Confirm the redirect URL and select Authorize Connection.
- Return to your agent.
The server stores the token encrypted and uses it for every call until the session ends. Sessions last 30 days, after which the agent asks you to authenticate again. If you delete the token, or it expires, before then, tool calls fail until you authenticate again with a new token. To switch the default organization, disconnect and reconnect the server in your agent and choose a different organization. You can also name an organization in a request (“list the stacks in the acme org”) and the agent passes it to the tool.
Choose a token
The token you give the MCP server is separate from the one the Pulumi CLI uses (stored by pulumi login or set in PULUMI_ACCESS_TOKEN), so create a separate one for the MCP server. You can then revoke or rotate it without affecting the CLI. The server accepts any Pulumi access token, but two kinds are most useful:
- An organization token acts as the organization with whatever role you assign it, and works in a single organization. This is the way to limit what the agent can see and do in Pulumi Cloud, for example by assigning a role that can only read stacks. Don’t rely on the token’s role to block Neo tasks, though: deny
neo-bridge in your agent as well if you want the agent to be read-only. Organization tokens are available in Essentials, Pro, Enterprise.
- A personal access token acts as you, with your permissions in every organization you belong to. Create one at app.pulumi.com/account/tokens.
If your organization enforces an access token expiry policy, the token must meet it, or calls against that organization fail.
Authenticate without a browser
For CI pipelines and headless agents, skip the browser flow by sending the token in an Authorization header. The server validates the token on every request and stores nothing, so there is no session to expire. Add an X-Pulumi-Org header to choose the organization:
{
"mcpServers": {
"pulumi": {
"url": "https://mcp.ai.pulumi.com/mcp",
"headers": {
"Authorization": "Bearer ${PULUMI_MCP_TOKEN}",
"X-Pulumi-Org": "acme"
}
}
}
}
Read the token from an environment variable or secret store rather than committing it, and check how your agent expands variables in its MCP configuration.
If X-Pulumi-Org names an organization the token can’t access, or you omit the header, the server uses the first organization the token can access, without returning an error. Check the organization name carefully when using a personal token that belongs to more than one organization.
Costs and edition requirements
Most of the server’s tools only read data, and the server itself never runs pulumi up or changes your infrastructure. What the tools need from your organization:
| Tools | What they need | Cost |
|---|
Registry tools, deploy-to-aws, and all prompts | Any Pulumi account | None. They return schemas and instructions that your agent’s own model works with. |
get-stacks, get-users, get-policy-violations | Any Pulumi Cloud organization | None |
resource-search | Resource search, available in Essentials, Pro, Enterprise | Included in your edition |
neo-bridge | Pulumi Neo, available in Essentials, Pro, Enterprise | Neo usage is billed to your organization |
neo-bridge is the tool that can cost money. Each task it starts, and each message or approval it sends, runs Neo in Pulumi Cloud, which counts against your organization’s Neo usage as it would in the Pulumi Cloud console. Approving a Neo request can also let Neo change infrastructure or open pull requests. Admins can cap that spend with Neo usage limits; see pricing for rates.
To keep an agent from starting Neo work, deny neo-bridge in your agent’s tool permissions. Restricting the token’s role isn’t enough on its own to prevent Neo tasks. In Claude Code, add mcp__pulumi__neo-bridge to permissions.deny in settings.json; in Cursor, turn the tool off under Tools & MCP.
Tools and prompts
The server exposes tools for Pulumi Cloud, Neo, the Pulumi Registry, and code generation, plus reusable prompts for deployment and migration work. You don’t call the tools directly: describe what you want and your agent picks the tool. For the full list, see MCP server tools and prompts.
Example requests
- “What stacks do I have, and which ones haven’t been updated in the last 90 days?”
- “Find every S3 bucket without tags and tell me which stacks they’re in.”
- “Look up the properties for an Azure Container Registry with geo-replication and write the TypeScript for it.”
- “What policy violations do my production stacks have?”
- “Ask Neo to restrict every security group that allows SSH from 0.0.0.0/0 and open a pull request.”
Troubleshooting
The token is rejected. Check that the token hasn’t expired or been deleted at app.pulumi.com/account/tokens, and that it complies with your organization’s token expiry policy.
The agent sees the wrong organization. Reconnect the server and pick the right organization, or name the organization in your request. With header authentication, check the spelling of X-Pulumi-Org.
The agent asks you to authenticate again. Browser sessions last 30 days. Authenticate again to start a new session.
New or renamed tools don’t appear. Some agents, including Cursor, cache tool definitions. Restart the agent or reconnect the server.
A tool reports “Quota limit exceeded” or “Forbidden”. A quota error usually means the feature isn’t available in your organization’s edition; see Costs and edition requirements. “Forbidden” means the token’s role lacks permission; see Choose a token.
Neo tasks don’t start. Check that Neo is enabled for your organization and that it hasn’t reached its usage limit.
Next steps
On this page
On this page
Was this page helpful?
YesNo
Feedback
Thank you for your feedback! If you would like to provide additional feedback, please let us know your thoughts below.
Please add a comment before submitting.
SubmitClose
Thank you for your feedback!
If you have a question about how to use Pulumi, reach out in Community Slack.
Open an issue on GitHub to report a problem or suggest an improvement.
Done
The infrastructure as code platform for any cloud.
Contact usGet started
Open source and free for individuals.
pulumi/pulumi 25.8K
Resources
Platform
Pulumi for
Company
Get help
Connect
Get our newsletter
All Systems Operational