MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
MCPサーバ - Podmanのソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
MCPサーバ - Podman
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == Podman MCP Server (manusa/podman-mcp-server) は、Model Context Protocol (MCP) を通じてAIアシスタントがコンテナランタイムと相互作用するための標準化されたツールインターフェースを提供するサーバである。<br> 対応するコンテナランタイムは、PodmanおよびDockerである。<br> <br> Go言語で開発されており、Apache 2.0ライセンスの下で公開されている。<br> Claude Desktop、Claude Code、VS Code、HTTP/SSEモードなど、複数のMCPクライアント環境で動作する。<br> <br> このサーバを使用することにより、AIアシスタントがコンテナやイメージの操作、ネットワーク・ボリュームの管理を自然言語による指示で自動化できるようになる。<br> コンテナの起動・停止・削除、イメージのビルド・プル・プッシュなど、13以上のツールを提供する。<br> <br> 主な特徴は以下の通りである。<br> * MCP標準に準拠したコンテナランタイム操作インターフェース * PodmanおよびDocker両方のコンテナランタイムに対応 * Claude Desktop、Claude Code、VS Code等の主要なMCPクライアントをサポート * HTTPモード (Streamable HTTP / SSE) によるリモートアクセスに対応 * Windows、MacOS、Linuxの主要なOSで動作 <br><br> == Podman MCP Serverの機能 == Podman MCP Serverは、コンテナ操作、イメージ操作、ネットワーク・ボリューム管理の3つのカテゴリで合計13以上のツールを提供する。<br> <br> ==== コンテナ操作 ==== コンテナのライフサイクル管理に関するツールを以下に示す。<br> <br> <center> {| class="wikitable" |+ コンテナ操作ツールの一覧 ! ツール !! 説明 |- | container_list || 実行中のコンテナを一覧表示する |- | container_inspect || 指定されたコンテナの詳細情報を取得する |- | container_logs || コンテナのログを表示する |- | container_run || 指定されたイメージでコンテナを実行する。パラメータとして、イメージ名、ポートマッピング、環境変数などを指定できる。 |- | container_stop || 実行中のコンテナを停止する |- | container_remove || コンテナを削除する |} </center> <br> ==== イメージ操作 ==== コンテナイメージの管理に関するツールを以下に示す。<br> <br> <center> {| class="wikitable" |+ イメージ操作ツールの一覧 ! ツール !! 説明 |- | image_list || ローカルリポジトリのイメージを一覧表示する |- | image_build || Dockerfile / Podmanfile / Containerfileからイメージをビルドする |- | image_pull || レジストリからイメージをプルする |- | image_push || イメージをレジストリにプッシュする |- | image_remove || イメージを削除する |} </center> <br> ==== その他のリソース管理 ==== ネットワークおよびボリュームの管理に関するツールを以下に示す。<br> <br> <center> {| class="wikitable" |+ ネットワーク・ボリューム操作ツールの一覧 ! ツール !! 説明 |- | network_list || Podman / Dockerネットワークを一覧表示する |- | volume_list || Podman / Dockerボリュームを一覧表示する |} </center> <br><br> == 動作要件 == ==== 共通の要件 ==== OS問わず共通して必要な要件を以下に示す。<br> <br> * Node.js環境 *: <code>npx</code> コマンドを使用してPodman MCP Serverを実行するために必要 * PodmanまたはDockerのインストール *: コンテナランタイムとして、PodmanまたはDockerのいずれかが必要 * 適切なソケットアクセス権限 *: MCPサーバがコンテナランタイムのソケットにアクセスできる権限が必要 <br> ==== Windowsの要件 ==== * Windows 10 / 11 (Pro、Enterprise) * WSL 2 (Windows Subsystem for Linux v2) が有効であること * Podman Desktop のインストールを推奨 *: PodmanはWSL 2内の仮想化Linuxディストリビューション上で動作する <br> ==== MacOSの要件 ==== * MacOS 11.0 以降を推奨 * Podman Desktop のインストールを推奨 * Intel・Apple Silicon (M1 / M2 / M3) の両方に対応 *: 各Podmanマシンは仮想マシンとして実装される <br> ==== Linuxの要件 ==== * Fedora、CentOS、Debian、Ubuntu、Arch、Alpine等の主要なディストリビューションに対応 * Podmanはカーネルレベルで統合されており、仮想化レイヤーは不要 * rootlessモード (非rootユーザでの実行) をサポート <br><br> == Podmanのインストール == ==== Windowsの場合 ==== wingetを使用してPodmanをインストールする場合は、以下のコマンドを実行する。<br> <br> winget install -e --id RedHat.Podman <br> MSIインストーラを使用する場合は、以下のURLからダウンロードする。<br> * https://github.com/containers/podman/releases <br> インストール後、以下のコマンドでPodmanのバージョンを確認し、マシンを起動する。<br> <br> podman --version podman machine start <br> ==== MacOSの場合 ==== Homebrewを使用してPodmanをインストールする場合は、以下のコマンドを実行する。<br> <br> brew install podman <br> インストーラーを使用する場合は、以下のURLからMacOS用のインストーラーをダウンロードする。<br> * https://podman.io <br> インストール後、以下のコマンドでPodmanのバージョンを確認し、マシンを起動する。<br> <br> podman --version podman machine start <br> ==== Linuxの場合 ==== 使用しているLinuxディストリビューションに合わせて、以下のコマンドでPodmanをインストールする。<br> <br> # RHEL sudo dnf install podman # SUSE sudo zypper install podman <br> インストール後、以下のコマンドでPodmanのバージョンおよびコンテナの動作を確認する。<br> <br> podman --version podman ps <br><br> == 設定 == ==== 設定ファイルの場所 ==== 各MCPクライアントの設定ファイルの場所は以下の通りである。<br> <br> Claude Desktopの設定ファイルを以下に示す。<br> * Linux *: <u>~/.config/Claude/claude_desktop_config.json</u> * MacOS *: <u>~/Library/Application Support/Claude/claude_desktop_config.json</u> * Windows *: <u>%APPDATA%\Claude\claude_desktop_config.json</u> <br> Claude Codeの設定ファイルを以下に示す。<br> * Linux *: <u>~/.config/claude/settings.json</u> * MacOS *: <u>~/Library/Application Support/claude/settings.json</u> * Windows *: <u>%APPDATA%\claude\settings.json</u> <br> ==== Claude Desktopでの設定 ==== Claude Desktopの設定ファイルに以下の内容を追記する。<br> <br> <syntaxhighlight lang="json"> { "mcpServers": { "podman": { "command": "npx", "args": ["-y", "podman-mcp-server@latest"] } } } </syntaxhighlight> <br> 設定ファイルを保存した後、Claude Desktopを再起動して設定を反映する。<br> <br> ==== Claude Codeでの設定 ==== Claude Codeでは、<code>claude mcp add</code> コマンドを使用してMCPサーバを追加できる。<br> <br> HTTPモードを使用する場合は、まずPodman MCP Serverを起動する。<br> <br> npx podman-mcp-server@latest --port 8080 <br> 次に、以下のコマンドでMCPサーバをClaude Codeに登録する。<br> <br> claude mcp add --transport http podman http://localhost:8080 <br> stdioモードを使用する場合は、設定ファイルに以下の内容を記述する。<br> <br> <syntaxhighlight lang="json"> { "mcpServers": { "podman": { "command": "npx", "args": ["-y", "podman-mcp-server@latest"] } } } </syntaxhighlight> <br> ==== VS Codeでの設定 ==== VS Codeでは、以下のコマンドを実行してPodman MCP Serverを追加できる。<br> <br> code --add-mcp '{"name":"podman","command":"npx","args":["podman-mcp-server@latest"]}' <br> ==== HTTPモードでの設定 ==== HTTPモードを使用する場合は、以下のコマンドでサーバを起動する。<br> <br> npx podman-mcp-server@latest --port 8080 <br> 起動後、以下のエンドポイントでアクセスできる。<br> <br> * Streamable HTTP *: <code>http://localhost:8080/mcp</code> * SSE (Server-Sent Events) *: <code>http://localhost:8080/sse</code> <br> ==== 環境変数の設定 ==== 下表に、Podman MCP Serverの動作をカスタマイズするための環境変数・オプションを示す。<br> <br> <center> {| class="wikitable" |+ 設定オプションの一覧 ! オプション / 環境変数 !! 説明 |- | <code>--podman-impl</code> || 使用するコンテナランタイムを指定する。<br>指定可能な値は <code>podman</code> または <code>docker</code> |- | <code>--output-format</code> || ツールの出力フォーマットを指定する。<br>デフォルト値は <code>table</code>、<code>json</code> も指定可能 |- | <code>DOCKER_HOST</code> || コンテナランタイムのソケットパスを指定する環境変数<br>Linuxでrootlessモードを使用する場合は <code>unix://$XDG_RUNTIME_DIR/podman/podman.sock</code> を指定する。 |} </center> <br><br> == 使用方法 == Podman MCP Serverの各ツールは、AIアシスタントが自然言語の指示を受けて自動的に呼び出す。<br> <br> ==== コンテナの操作例 ==== コンテナの実行・管理に関する操作例を以下に示す。<br> <br> * nginxコンテナを起動して、ホストの8080ポートにマッピングする場合 *: <syntaxhighlight lang="text"> # プロンプト例 : nginxコンテナをポート8080で起動してください。 </syntaxhighlight> *: <br> * MySQLコンテナを環境変数付きで起動する場合 *: <syntaxhighlight lang="text"> # プロンプト例 : MySQLコンテナをルートパスワード「secret123」で起動してください。 </syntaxhighlight> *: <br> 下表に、利用可能なツールと対応する操作を示す。<br> <br> <center> {| class="wikitable" |+ コンテナ操作ツール一覧 ! ツール名 !! 操作内容 !! 主なパラメータ |- | container_list || 実行中のコンテナを一覧表示 || なし |- | container_run || コンテナを実行 || イメージ名、ポートマッピング、環境変数 |- | container_stop || コンテナを停止 || コンテナID |- | container_remove || コンテナを削除 || コンテナID |- | container_logs || コンテナのログを表示 || コンテナID |- | container_inspect || コンテナの詳細情報を取得 || コンテナID |} </center> <br> ==== イメージの操作例 ==== イメージのビルド・管理に関する操作例を以下に示す。<br> <br> * Dockerfileからイメージをビルドする場合 *: <syntaxhighlight lang="text"> # プロンプト例 : カレントディレクトリのDockerfileを使って「myapp:latest」イメージをビルドしてください。 </syntaxhighlight> *: <br> * レジストリからイメージをプルする場合 *: <syntaxhighlight lang="text"> # プロンプト例 : nginx:latestイメージをプルしてください。 </syntaxhighlight> <br> 下表に、利用可能なツールと対応する操作を示す。<br> <br> <center> {| class="wikitable" |+ イメージ操作ツール一覧 ! ツール名 !! 操作内容 !! 主なパラメータ |- | image_list || ローカルイメージを一覧表示 || なし |- | image_build || イメージをビルド || Containerfileパス、イメージ名 |- | image_pull || イメージをプル || イメージ名 |- | image_push || イメージをプッシュ || イメージ名 |- | image_remove || イメージを削除 || イメージ名 |} </center> <br><br> == トラブルシューティング == ==== 共通の問題 ==== OS問わず発生する可能性がある問題と対処法を以下に示す。<br> <br> <center> {| class="wikitable" |+ 共通トラブルシューティング ! 問題 !! 対処法 |- | npxコマンドが動作しない || Node.js LTS版がインストールされているか確認する。<br><code>npm cache clean --force</code> を実行してキャッシュをクリアする。 |- | NVMを使用している場合に npxが見つからない || NVMで管理されているNode実行ファイルへの完全なパスを設定ファイルに指定する。 |- | Permission deniedエラーが発生する || 環境変数 <code>DOCKER_HOST</code> が正しく設定されているか確認する。<br>Podmanソケットが有効化されているか確認する。 |- | Connection refusedエラーが発生する || Podman Machine または Podmanソケットが起動しているか確認する。 |} </center> <br> ==== Windowsでの問題 ==== Windows環境で発生する可能性がある問題と対処法を以下に示す。<br> <br> <center> {| class="wikitable" |+ Windowsのトラブルシューティング ! 問題 !! 対処法 |- | WSL 2のパス問題 || Windowsパス(<u>C:\Users\user\project</u>)を WSLパス(<u>/mnt/c/Users/user/project</u>)に変換して使用する。 |- | Podman DesktopとCLIの連携が取れない || <code>podman machine list</code> でマシンの状態を確認する。<br><code>podman machine set --default</code> でデフォルトマシンを設定する。 |} </center> <br> ==== MacOSでの問題 ==== MacOS環境で発生する可能性がある問題と対処法を以下に示す。<br> <br> <center> {| class="wikitable" |+ MacOSのトラブルシューティング ! 問題 !! 対処法 |- | Apple Silicon(M1 / M2 / M3)でのイメージ互換性の問題 || プル時に <code>--arch arm64</code> オプションを使用する。<br>例: <code>podman pull --arch arm64 image_name</code> |- | SSHトンネリングの接続問題 || <code>podman system connection list</code> でPodman Machineへの接続状態を確認する。 |} </center> <br> ==== Linuxでの問題 ==== Linux環境で発生する可能性がある問題と対処法を以下に示す。<br> <br> <center> {| class="wikitable" |+ Linuxのトラブルシューティング ! 問題 !! 対処法 |- | rootlessソケットが見つからない || 以下のコマンドでPodmanソケットを有効化する。<br><code>systemctl --user enable --now podman.socket</code> |- | SELinuxによるアクセス拒否 || ボリュームマウント時に <code>:z</code> フラグを追加してSELinuxラベルを設定する。 |- | ユーザグループの権限不足 || 以下のコマンドでユーザをpodmanグループに追加する。<br><code>sudo usermod -aG podman $USER</code><br><br>グループの変更を反映するために、1度ログアウトして再ログインする。 |} </center> <br><br> {{#seo: |title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki |keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板,Podman,Docker,Container,MCP,Model Context Protocol,podman-mcp-server,Claude,AI,コンテナ,イメージ,ネットワーク,ボリューム,Windows,MacOS |description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux |image=/resources/assets/MochiuLogo_Single_Blue.png }} __FORCETOC__ [[カテゴリ:設定]]
MCPサーバ - Podman
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse