项目简介

Pulumi MCP Server 是一个实现了 Model Context Protocol (MCP) 的服务器,旨在为大型语言模型(LLM)应用提供与 Pulumi 基础设施即代码平台集成的能力。它允许 LLM 客户端通过标准化的 MCP 协议,安全、可扩展地执行 Pulumi 命令,查询云资源信息,无需在客户端环境中直接安装 Pulumi CLI。

主要功能点

  • Pulumi CLI 命令执行: 支持 LLM 客户端通过 MCP 调用 Pulumi CLI 的核心命令,如 'preview'(预览变更)、'up'(部署更新)、'stack-output'(获取堆栈输出)。
  • Pulumi 资源信息查询: 允许 LLM 客户端查询 Pulumi Registry 中托管的云资源信息,包括资源的输入和输出属性,以及详细描述。
  • 标准化 MCP 协议: 遵循 MCP 协议标准,易于集成到任何支持 MCP 协议的 LLM 客户端。
  • Stdio 传输: 使用标准输入/输出 (stdio) 作为默认的传输协议,简化部署和集成。

安装步骤

  1. 前提条件: 确保已安装 Node.js 和 npm 包管理器。同时,您的机器上需要预先安装并配置好 Pulumi CLI,并完成 Pulumi 账号的登录和云 provider 的配置。
  2. 克隆仓库: 使用 Git 克隆 'mcp-server' 仓库到本地:
    git clone https://github.com/pulumi/mcp-server.git
  3. 进入目录: 导航到克隆下来的仓库目录:
    cd mcp-server
  4. 安装依赖: 使用 npm 安装项目依赖:
    npm install
  5. 构建项目: 构建 TypeScript 项目:
    npm run build

服务器配置

要将 Pulumi MCP Server 集成到 MCP 客户端(例如 Claude desktop),您需要在客户端的 MCP 服务器配置中添加以下 JSON 配置。这告诉客户端如何启动和连接到 Pulumi MCP Server。

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

配置参数说明:

  • 'server name': 'pulumi' (服务器名称,可以自定义,用于在客户端中标识该服务器)
  • 'command': 'npx' (Node Package Execute 命令,用于执行 npm 包)
  • 'args': '["@pulumi/mcp-server"]' (参数列表,'@pulumi/mcp-server' 将会执行项目根目录下的 'dist/index.js' 文件,即编译后的服务器入口文件。请确保在配置前已执行 'npm run build' 完成项目构建。)

基本使用方法

配置完成后,您的 MCP 客户端应该能够发现并连接到 Pulumi MCP Server。您可以通过客户端提供的界面或指令来调用 Pulumi MCP Server 提供的工具 (Tools)。

可用的工具包括(工具名以 'pulumi-cli-' 或 'pulumi-registry-' 开头):

  • 'pulumi-cli-preview': 执行 'pulumi preview' 命令,预览基础设施变更。需要 'workDir' (Pulumi 项目工作目录) 和可选的 'stackName' (Pulumi 堆栈名称) 参数。
  • 'pulumi-cli-up': 执行 'pulumi up' 命令,部署基础设施变更。需要 'workDir' 和可选的 'stackName' 参数。
  • 'pulumi-cli-stack-output': 获取 Pulumi 堆栈的输出信息。需要 'workDir' 和可选的 'stackName' 及 'outputName' (指定的输出名称) 参数。
  • 'pulumi-registry-getResource': 查询 Pulumi Registry 中特定资源的信息。需要 'provider' (云 provider 名称), 可选的 'module' (模块名) 和 'resource' (资源类型名) 参数。
  • 'pulumi-registry-listResources': 列出 Pulumi Registry 中指定 provider 和模块下的可用资源。需要 'provider' 和可选的 'module' 参数。

具体工具的使用方法和参数,请参考客户端的文档或工具描述。

信息

分类

开发者工具