mcpField
P
Podman MCP Server

Podman MCP Server

本地服务
github.com/manusa云与基础设施8510 周前更新

关于 Podman MCP Server

Podman MCP Server 是一个面向容器运行时的 MCP 服务,同时支持 Podman 和 Docker。它面向需要通过 AI 客户端管理容器、镜像、网络和卷的开发者与运维人员。服务可在 api 与 cli 两种后端之间自动检测或手动指定。

主要功能

  1. 01容器的查看、运行、停止、删除与日志查询
  2. 02镜像的构建、拉取、推送与删除
  3. 03网络与卷的列表查询
  4. 04自动检测或指定 api 与 cli 后端
  5. 05支持 STDIO 与 HTTP 传输模式

适用场景

  1. 01通过 AI 客户端列出并查看正在运行的容器
  2. 02根据 Containerfile 构建镜像并推送到镜像仓库
  3. 03在 Claude Desktop 或 VS Code 中管理本地容器

MCP 相关

该项目是 MCP 服务,向 MCP 客户端暴露容器、镜像、网络和卷相关的工具,并可通过 STDIO 或 HTTP 提供服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"podman": {
"command": "npx",
"args": [
"-y",
"podman-mcp-server"
]
}
}
}
启动命令npx -y podman-mcp-server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmpodman-mcp-server0.0.15
pypipodman-mcp-server0.0.15

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Podman MCP 服务

GitHub License npm PyPI - Version GitHub release (latest SemVer) Build

✨ 功能 | 🚀 快速开始 | 📚 文档 | 🎥 演示 | ⚙️ 配置 | 🛠️ 工具 | 🧑‍💻 开发

✨ 功能

一个功能强大且灵活的 MCP 服务,支持 Podman 和 Docker 容器运行时。

🚀 快速开始

Claude Desktop
使用 npx

如果已安装 npm,这是在 Claude Desktop 上开始使用 podman-mcp-server 的最快方式。

打开 claude_desktop_config.json,并将 MCP 服务添加到 mcpServers 列表中:

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

点击以下任一链接安装 Podman MCP 服务:

在 VS Code 中安装 在 VS Code Insiders 中安装

或者,运行以下命令手动安装扩展:

# For VS Code
code --add-mcp '{"name":"podman","command":"npx","args":["-y","podman-mcp-server@latest"]}'
# For VS Code Insiders
code-insiders --add-mcp '{"name":"podman","command":"npx","args":["-y","podman-mcp-server@latest"]}'
Goose CLI

Goose CLI 是开始使用人工智能(AI)Agent 最简单(也最便宜)的方式。

使用 npm

如果已安装 npm,这是开始使用 podman-mcp-server 的最快方式。

打开 Goose 的 config.yaml,并将 MCP 服务添加到 mcpServers 列表中:

extensions:
  podman:
    command: npx
    args:
      - -y
      - podman-mcp-server@latest

📚 文档

有关详细的设置指南、配置参考和功能规格,请参阅**文档**。

🎥 演示

⚙️ 配置

Podman MCP 服务可通过命令行(CLI)参数进行配置。

你可以使用 npx 运行 CLI 可执行文件,也可以下载最新版本的二进制文件。

# Run the Podman MCP server using npx (in case you have npm installed)
npx podman-mcp-server@latest --help
# Run the Podman MCP server using the latest release binary
./podman-mcp-server --help
配置选项
选项描述
--port、-p以 HTTP 模式启动 MCP 服务,在 /mcp 提供 Streamable HTTP 端点,在 /sse 提供 SSE 端点。
--output-format、-o列表命令的输出格式:text(默认,以易读表格形式显示)或 json。
--podman-impl要使用的 Podman 实现。若未指定,则自动检测。
--sse-port已弃用。 请改用 --port。以仅 SSE 模式启动 MCP 服务。
--sse-base-url已弃用。 发送端点消息时使用的 SSE 公共基础 URL。
传输模式

该服务支持多种传输模式:

  1. STDIO 模式(默认)- 通过标准输入/输出通信
  2. HTTP 模式(--port)- 现代 HTTP 传输,同时提供 Streamable HTTP 和 SSE 端点
  3. 仅 SSE 模式(--sse-port)- 旧版 Server-Sent Events 传输(已弃用)
# Start HTTP server on port 8080 (Streamable HTTP at /mcp and SSE at /sse)
podman-mcp-server --port 8080

# Legacy SSE-only server on port 8080 (deprecated, use --port instead)
podman-mcp-server --sse-port 8080
Podman 实现

该服务支持多种 Podman 后端实现:

实现描述优先级
api通过 Unix 套接字使用 Podman REST API100(首选)
cliPodman/Docker 命令行包装器50(备用)

默认情况下,该服务会自动检测可用的最佳实现。 如果 Podman 套接字可用,则优先使用 api 实现;否则,将使用 cli 实现作为备用方案。

使用 --podman-impl 标志强制指定实现:

# Force CLI implementation
podman-mcp-server --podman-impl=cli

# Force API implementation (requires Podman socket)
podman-mcp-server --podman-impl=api

api 实现通过 Unix 套接字直接与 Podman REST API 通信,而 cli 实现则调用 podman 或 docker 二进制文件。

🛠️ 工具

容器
  • container_inspect - 显示具有指定容器 ID 或名称的 Docker 或 Podman 容器的底层信息和配置

    • name (string) (必填) - 要显示信息的 Docker 或 Podman 容器 ID 或名称
  • container_list - 输出正在运行的 Docker 或 Podman 容器的信息

  • container_logs - 显示具有指定容器 ID 或名称的 Docker 或 Podman 容器的日志

    • name (string) (必填) - 要显示日志的 Docker 或 Podman 容器 ID 或名称
  • container_remove - 移除具有指定容器 ID 或名称的 Docker 或 Podman 容器(rm)

    • name (string) (必填) - 要移除的 Docker 或 Podman 容器 ID 或名称
  • container_run - 使用指定的镜像名称运行 Docker 或 Podman 容器

    • environment (array) - 要在容器中设置的环境变量。格式:=。示例:FOO=bar。(可选,仅在设置环境变量时添加)
    • imageName (string) (必填) - 要运行的 Docker 或 Podman 容器镜像名称
    • ports (array) - 要在主机上公开的端口映射。格式::。示例:8080:80。(可选,仅在公开端口时添加)
  • container_stop - 停止具有指定容器 ID 或名称的正在运行的 Docker 或 Podman 容器

    • name (string) (必填) - 要停止的 Docker 或 Podman 容器 ID 或名称
镜像
  • image_build - 根据 Dockerfile、Podmanfile 或 Containerfile 构建 Docker 或 Podman 镜像

    • containerFile (string) (必填) - 用于构建镜像的 Dockerfile、Podmanfile 或 Containerfile 的绝对路径
    • imageName (string) - 如果构建过程成功,则为生成的镜像指定名称(--tag、-t)
  • image_list - 列出本地计算机上的 Docker 或 Podman 镜像

  • image_pull - 从镜像仓库将 Docker 或 Podman 容器镜像复制(拉取)到本地计算机存储中

    • imageName (string) (必填) - 要拉取的 Docker 或 Podman 容器镜像名称
  • image_push - 将 Docker 或 Podman 容器镜像、清单列表或镜像索引从本地计算机存储推送到镜像仓库

    • imageName (string) (必填) - 要推送的 Docker 或 Podman 容器镜像名称
  • image_remove - 从本地计算机存储中移除 Docker 或 Podman 镜像

    • imageName (string) (必填) - 要移除的 Docker 或 Podman 容器镜像名称
网络
  • network_list - 列出所有可用的 Docker 或 Podman 网络
卷
  • volume_list - 列出所有可用的 Docker 或 Podman 卷

🧑‍💻 开发

使用 mcp-inspector 运行

编译项目,并使用 mcp-inspector 运行 Podman MCP 服务,以检查该 MCP 服务。

# Compile the project
make build
# Run the Podman MCP server with mcp-inspector
npx @modelcontextprotocol/inspector@latest $(pwd)/podman-mcp-server

mcp-name: io.github.manusa/podman-mcp-server

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。