@pulumi/mcp-server

by pulumi
Apache 2.0
44
20

Integrations

  • Supports running the MCP server in a Docker container, with the ability to mount local Pulumi project directories to perform operations on containerized Pulumi projects.

  • Allows retrieving information about Git-hosted Pulumi component resources from GitHub repositories, accessible through the get-resource and list-resources commands.

  • Enables programmatic interaction with Pulumi infrastructure as code, allowing operations like retrieving package information, previewing infrastructure changes, deploying stack updates, and retrieving stack outputs without requiring the Pulumi CLI in the client environment.

Pulumi MCP サーバー

**注:**このMCPサーバーは現在開発中です。API(利用可能なコマンドとその引数を含む)は試験段階であり、予告なく変更される可能性があります。バグに遭遇した場合、または追加のPulumiコマンドのサポートが必要な場合は、 GitHubで問題を報告してください。

Pulumi Automation API および Pulumi Cloud API を使用して Pulumi CLI と対話するためのモデル コンテキスト プロトコル(MCP) を実装するサーバー。

このパッケージを使用すると、MCP クライアントは、Pulumi CLI をクライアント環境に直接インストールしなくても、パッケージ情報の取得、変更のプレビュー、更新の展開、スタック出力の取得などの Pulumi 操作をプログラムで実行できます。

使用法

Pulumi CLI をマシンにインストールする必要があります。

このパッケージは、MCPサーバーをAIツールとして利用できるアプリケーションに統合することを主な目的としています。例えば、ClaudeデスクトップのMCP設定ファイルにPulumi MCPサーバーを追加する方法は次のとおりです。

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

Dockerコンテナ

Pulumi MCP ServerをDockerコンテナとして実行することもできます。この方法では、Node.jsとパッケージの依存関係をホストマシンに直接インストールする必要がなくなります。

コンテナの構築

コンテナを構築するには:

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

MCPクライアントでの使用

コンテナ化されたサーバーをMCPクライアントで使用するには、クライアント側でDockerコンテナを使用するように設定する必要があります。例えば、ClaudeデスクトップのMCP設定では以下のようになります。

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

ローカルのPulumiプロジェクトへのアクセスを必要とするPulumi操作を行うには、適切なディレクトリをマウントする必要があります。例えば、Pulumiプロジェクトが~/projects/my-pulumi-appにある場合は、次のようにします。

{ "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')。

発達

  1. リポジトリをクローンします。
  2. 依存関係をインストールします: make ensure
  3. プロジェクトをビルドする: make build
  4. プロジェクトをテストする: make test

ライセンス

このプロジェクトはApache 2.0ライセンスの下でライセンスされています。詳細はLICENSEファイルをご覧ください。

Related MCP Servers

View all related MCP servers

ID: jplel66nks