pulumi
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"pulumi": {
"args": [
"run",
"-i",
"--rm",
"-v",
"~/projects/my-pulumi-app:/app/project",
"pulumi/mcp-server:latest"
],
"command": "docker"
}
}
}
服务介绍
Pulumi MCP 服务器
注意: 此MCP服务器目前正在积极开发中。其API(包括可用命令及其参数)是实验性的,可能会在不通知的情况下引入破坏性更改。如果您遇到错误或需要支持其他Pulumi命令,请在GitHub上提交问题。
一个实现模型上下文协议 (MCP) 的服务器,用于通过Pulumi自动化API和Pulumi云API与Pulumi CLI进行交互。
此包允许MCP客户端无需直接在其客户端环境中安装Pulumi CLI即可执行Pulumi操作,如检索包信息、预览更改、部署更新以及检索堆栈输出。
使用方法
必须在您的机器上安装Pulumi CLI。
此包主要用于集成到可以将MCP服务器作为AI工具使用的应用程序中。例如,以下是如何在Claude桌面的MCP配置文件中包含Pulumi MCP Server的方法:
json
{
"mcpServers": {
"pulumi": {
"command": "npx",
"args": ["@pulumi/mcp-server@latest","stdio"]
}
}
}
或者,如果您更喜欢使用带有服务器发送事件(SSE)的HTTP而不是stdio:
json
{
"mcpServers": {
"pulumi": {
"command": "npx",
"args": ["@pulumi/mcp-server@latest","sse"]
}
}
}
Docker 容器
您还可以将Pulumi MCP Server作为Docker容器运行。这种方法消除了在主机上直接安装Node.js和包依赖项的需求。
构建容器
要构建容器:
bash
docker build -t pulumi/mcp-server:latest .
与MCP客户端一起使用
要使用容器化的服务器与MCP客户端配合工作,您需要配置客户端以使用Docker容器。例如,在Claude桌面的MCP配置中:
json
{
"mcpServers": {
"pulumi": {
"command": "docker",
"args": ["run", "-i", "--rm", "pulumi/mcp-server:latest", "stdio"]
}
}
}
通过HTTP (SSE) 与MCP客户端一起使用
要通过HTTP (SSE) 使用容器化的服务器与MCP客户端配合工作,您可以使用以下命令运行容器:
json
{
"mcpServers": {
"pulumi": {
"command": "docker",
"args": ["run", "-i", "--rm", "-p", "3000:3000", "pulumi/mcp-server:latest", "sse"]
}
}
}
对于需要访问本地Pulumi项目的Pulumi操作,您需要挂载相应的目录。例如,如果您的Pulumi项目位于~/projects/my-pulumi-app:
json
{
"mcpServers": {
"pulumi": {
"command": "docker",
"args": ["run", "-i", "--rm", "-v", "~/projects/my-pulumi-app:/app/project", "pulumi/mcp-server:latest"]
}
}
}
然后,在使用MCP工具时,您可以在请求中将项目目录引用为/app/project。
可用命令
服务器通过MCP请求暴露了以下Pulumi操作的处理程序:
-
preview: 在指定堆栈上运行pulumi preview。workDir(字符串, 必需): 包含Pulumi.yaml项目文件的工作目录。stackName(字符串, 可选): 要操作的堆栈名称(默认为dev)。
-
up: 运行pulumi up以部署指定堆栈的更改。workDir(字符串, 必需): 包含Pulumi.yaml项目文件的工作目录。stackName(字符串, 可选): 要操作的堆栈名称(默认为dev)。
-
stack-output: 在成功部署后从指定堆栈检索输出。workDir(字符串, 必需): 包含Pulumi.yaml项目文件的工作目录。*stackName(字符串,可选):要从中检索输出的堆栈名称(默认为dev)。
-
outputName(字符串,可选):要检索的具体堆栈输出名称。如果省略,则返回该堆栈的所有输出。 -
get-resource:返回有关特定 Pulumi 注册表资源的信息,包括其输入和输出。provider(字符串,必填):云提供商(例如aws、azure、gcp、random)或对于 Git 托管组件使用github.com/org/repo。module(字符串,可选):要查询的模块(例如s3、ec2、lambda)。resource(字符串,必填):资源类型名称(例如Bucket、Function、Instance)。
-
list-resources:列出 Pulumi 提供程序包中的可用资源,可按模块进行过滤。provider(字符串,必填):云提供商(例如aws、azure、gcp、random)或对于 Git 托管组件使用github.com/org/repo。module(字符串,可选):要过滤的模块(例如s3、ec2、lambda)。
开发
- 克隆仓库。
- 安装依赖项:
make ensure - 构建项目:
make build - 测试项目:
make test
许可证
本项目采用 Apache-2.0 许可证。详情请参阅 LICENSE 文件。