MCPサーバ - Podman

提供: MochiuWiki : SUSE, EC, PCB

📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

概要

Podman MCP Server (manusa/podman-mcp-server) は、Model Context Protocol (MCP) を通じてAIアシスタントがコンテナランタイムと相互作用するための標準化されたツールインターフェースを提供するサーバである。
対応するコンテナランタイムは、PodmanおよびDockerである。

Go言語で開発されており、Apache 2.0ライセンスの下で公開されている。
Claude Desktop、Claude Code、VS Code、HTTP/SSEモードなど、複数のMCPクライアント環境で動作する。

このサーバを使用することにより、AIアシスタントがコンテナやイメージの操作、ネットワーク・ボリュームの管理を自然言語による指示で自動化できるようになる。
コンテナの起動・停止・削除、イメージのビルド・プル・プッシュなど、13以上のツールを提供する。

主な特徴は以下の通りである。

  • MCP標準に準拠したコンテナランタイム操作インターフェース
  • PodmanおよびDocker両方のコンテナランタイムに対応
  • Claude Desktop、Claude Code、VS Code等の主要なMCPクライアントをサポート
  • HTTPモード (Streamable HTTP / SSE) によるリモートアクセスに対応
  • Windows、MacOS、Linuxの主要なOSで動作



Podman MCP Serverの機能

Podman MCP Serverは、コンテナ操作、イメージ操作、ネットワーク・ボリューム管理の3つのカテゴリで合計13以上のツールを提供する。

コンテナ操作

コンテナのライフサイクル管理に関するツールを以下に示す。

コンテナ操作ツールの一覧
ツール 説明
container_list 実行中のコンテナを一覧表示する
container_inspect 指定されたコンテナの詳細情報を取得する
container_logs コンテナのログを表示する
container_run 指定されたイメージでコンテナを実行する。パラメータとして、イメージ名、ポートマッピング、環境変数などを指定できる。
container_stop 実行中のコンテナを停止する
container_remove コンテナを削除する


イメージ操作

コンテナイメージの管理に関するツールを以下に示す。

イメージ操作ツールの一覧
ツール 説明
image_list ローカルリポジトリのイメージを一覧表示する
image_build Dockerfile / Podmanfile / Containerfileからイメージをビルドする
image_pull レジストリからイメージをプルする
image_push イメージをレジストリにプッシュする
image_remove イメージを削除する


その他のリソース管理

ネットワークおよびボリュームの管理に関するツールを以下に示す。

ネットワーク・ボリューム操作ツールの一覧
ツール 説明
network_list Podman / Dockerネットワークを一覧表示する
volume_list Podman / Dockerボリュームを一覧表示する



動作要件

共通の要件

OS問わず共通して必要な要件を以下に示す。

  • Node.js環境
    npx コマンドを使用してPodman MCP Serverを実行するために必要
  • PodmanまたはDockerのインストール
    コンテナランタイムとして、PodmanまたはDockerのいずれかが必要
  • 適切なソケットアクセス権限
    MCPサーバがコンテナランタイムのソケットにアクセスできる権限が必要


Windowsの要件

  • Windows 10 / 11 (Pro、Enterprise)
  • WSL 2 (Windows Subsystem for Linux v2) が有効であること
  • Podman Desktop のインストールを推奨
    PodmanはWSL 2内の仮想化Linuxディストリビューション上で動作する


MacOSの要件

  • MacOS 11.0 以降を推奨
  • Podman Desktop のインストールを推奨
  • Intel・Apple Silicon (M1 / M2 / M3) の両方に対応
    各Podmanマシンは仮想マシンとして実装される


Linuxの要件

  • Fedora、CentOS、Debian、Ubuntu、Arch、Alpine等の主要なディストリビューションに対応
  • Podmanはカーネルレベルで統合されており、仮想化レイヤーは不要
  • rootlessモード (非rootユーザでの実行) をサポート



Podmanのインストール

Windowsの場合

wingetを使用してPodmanをインストールする場合は、以下のコマンドを実行する。

winget install -e --id RedHat.Podman


MSIインストーラを使用する場合は、以下のURLからダウンロードする。


インストール後、以下のコマンドでPodmanのバージョンを確認し、マシンを起動する。

podman --version
podman machine start


MacOSの場合

Homebrewを使用してPodmanをインストールする場合は、以下のコマンドを実行する。

brew install podman


インストーラーを使用する場合は、以下のURLからMacOS用のインストーラーをダウンロードする。


インストール後、以下のコマンドでPodmanのバージョンを確認し、マシンを起動する。

podman --version
podman machine start


Linuxの場合

使用しているLinuxディストリビューションに合わせて、以下のコマンドでPodmanをインストールする。

# RHEL
sudo dnf install podman

# SUSE
sudo zypper install podman


インストール後、以下のコマンドでPodmanのバージョンおよびコンテナの動作を確認する。

podman --version
podman ps



設定

設定ファイルの場所

各MCPクライアントの設定ファイルの場所は以下の通りである。

Claude Desktopの設定ファイルを以下に示す。

  • Linux
    ~/.config/Claude/claude_desktop_config.json
  • MacOS
    ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows
    %APPDATA%\Claude\claude_desktop_config.json


Claude Codeの設定ファイルを以下に示す。

  • Linux
    ~/.config/claude/settings.json
  • MacOS
    ~/Library/Application Support/claude/settings.json
  • Windows
    %APPDATA%\claude\settings.json


Claude Desktopでの設定

Claude Desktopの設定ファイルに以下の内容を追記する。

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


設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。

Claude Codeでの設定

Claude Codeでは、claude mcp add コマンドを使用してMCPサーバを追加できる。

HTTPモードを使用する場合は、まずPodman MCP Serverを起動する。

npx podman-mcp-server@latest --port 8080


次に、以下のコマンドでMCPサーバをClaude Codeに登録する。

claude mcp add --transport http podman http://localhost:8080


stdioモードを使用する場合は、設定ファイルに以下の内容を記述する。

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


VS Codeでの設定

VS Codeでは、以下のコマンドを実行してPodman MCP Serverを追加できる。

code --add-mcp '{"name":"podman","command":"npx","args":["podman-mcp-server@latest"]}'


HTTPモードでの設定

HTTPモードを使用する場合は、以下のコマンドでサーバを起動する。

npx podman-mcp-server@latest --port 8080


起動後、以下のエンドポイントでアクセスできる。


環境変数の設定

下表に、Podman MCP Serverの動作をカスタマイズするための環境変数・オプションを示す。

設定オプションの一覧
オプション / 環境変数 説明
--podman-impl 使用するコンテナランタイムを指定する。
指定可能な値は podman または docker
--output-format ツールの出力フォーマットを指定する。
デフォルト値は tablejson も指定可能
DOCKER_HOST コンテナランタイムのソケットパスを指定する環境変数
Linuxでrootlessモードを使用する場合は unix://$XDG_RUNTIME_DIR/podman/podman.sock を指定する。



使用方法

Podman MCP Serverの各ツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。

コンテナの操作例

コンテナの実行・管理に関する操作例を以下に示す。

  • nginxコンテナを起動して、ホストの8080ポートにマッピングする場合
     # プロンプト例 :
     
     nginxコンテナをポート8080で起動してください。
    

  • MySQLコンテナを環境変数付きで起動する場合
     # プロンプト例 :
     
     MySQLコンテナをルートパスワード「secret123」で起動してください。
    

下表に、利用可能なツールと対応する操作を示す。

コンテナ操作ツール一覧
ツール名 操作内容 主なパラメータ
container_list 実行中のコンテナを一覧表示 なし
container_run コンテナを実行 イメージ名、ポートマッピング、環境変数
container_stop コンテナを停止 コンテナID
container_remove コンテナを削除 コンテナID
container_logs コンテナのログを表示 コンテナID
container_inspect コンテナの詳細情報を取得 コンテナID


イメージの操作例

イメージのビルド・管理に関する操作例を以下に示す。

  • Dockerfileからイメージをビルドする場合
     # プロンプト例 :
     
     カレントディレクトリのDockerfileを使って「myapp:latest」イメージをビルドしてください。
    

  • レジストリからイメージをプルする場合
     # プロンプト例 :
     
     nginx:latestイメージをプルしてください。
    


下表に、利用可能なツールと対応する操作を示す。

イメージ操作ツール一覧
ツール名 操作内容 主なパラメータ
image_list ローカルイメージを一覧表示 なし
image_build イメージをビルド Containerfileパス、イメージ名
image_pull イメージをプル イメージ名
image_push イメージをプッシュ イメージ名
image_remove イメージを削除 イメージ名



トラブルシューティング

共通の問題

OS問わず発生する可能性がある問題と対処法を以下に示す。

共通トラブルシューティング
問題 対処法
npxコマンドが動作しない Node.js LTS版がインストールされているか確認する。
npm cache clean --force を実行してキャッシュをクリアする。
NVMを使用している場合に npxが見つからない NVMで管理されているNode実行ファイルへの完全なパスを設定ファイルに指定する。
Permission deniedエラーが発生する 環境変数 DOCKER_HOST が正しく設定されているか確認する。
Podmanソケットが有効化されているか確認する。
Connection refusedエラーが発生する Podman Machine または Podmanソケットが起動しているか確認する。


Windowsでの問題

Windows環境で発生する可能性がある問題と対処法を以下に示す。

Windowsのトラブルシューティング
問題 対処法
WSL 2のパス問題 Windowsパス(C:\Users\user\project)を WSLパス(/mnt/c/Users/user/project)に変換して使用する。
Podman DesktopとCLIの連携が取れない podman machine list でマシンの状態を確認する。
podman machine set --default でデフォルトマシンを設定する。


MacOSでの問題

MacOS環境で発生する可能性がある問題と対処法を以下に示す。

MacOSのトラブルシューティング
問題 対処法
Apple Silicon(M1 / M2 / M3)でのイメージ互換性の問題 プル時に --arch arm64 オプションを使用する。
例: podman pull --arch arm64 image_name
SSHトンネリングの接続問題 podman system connection list でPodman Machineへの接続状態を確認する。


Linuxでの問題

Linux環境で発生する可能性がある問題と対処法を以下に示す。

Linuxのトラブルシューティング
問題 対処法
rootlessソケットが見つからない 以下のコマンドでPodmanソケットを有効化する。
systemctl --user enable --now podman.socket
SELinuxによるアクセス拒否 ボリュームマウント時に :z フラグを追加してSELinuxラベルを設定する。
ユーザグループの権限不足 以下のコマンドでユーザをpodmanグループに追加する。
sudo usermod -aG podman $USER

グループの変更を反映するために、1度ログアウトして再ログインする。