容器运行时MCP服务器

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

  • by manusa
  • Go
  • 本地部署
  • 84 星标
  • 更新于
在 GitHub 查看 manusa/podman-mcp-server

使用说明

Podman MCP服务器

✨ 特性 | 🚀 入门指南 | 📚 文档 | 🎥 演示 | ⚙️ 配置 | 🛠️ 工具 | 🧑‍💻 发展

✨ 特性

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

🚀 入门指南

克劳德桌面版

使用npx

如果你已经安装了npm,这是最快的入门方法 podman-mcp-server 在克劳德桌面上。

打开你的 claude_desktop_config.json 并将mcp服务器添加到列表中 mcpServers:

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

VS代码/VS代码内部人员

通过单击以下链接之一安装Podman MCP服务器:

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

# 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命令行界面

Goose命令行界面 是使用人工智能(AI)代理最简单(也是最便宜)的方法。

使用npm

如果你已经安装了npm,这是最快的入门方法 podman-mcp-server.

打开你的鹅 config.yaml 并将mcp服务器添加到列表中 mcpServers:

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

📚 文档

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

🎥 演示

⚙️ 配置

Podman MCP服务器可以使用命令行(CLI)参数进行配置。

您可以通过以下方式运行CLI可执行文件: npx 或通过下载 最新发布的二进制文件.

# 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模式下使用Streamable HTTP启动MCP服务器 /mcp 苏格兰和南方能源公司 /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和SSE端点的现代HTTP传输
  3. 仅SSE模式 (--sse-port)-旧服务器发送事件传输(已弃用)
# 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 API 100(首选)
cli Podman/Docker CLI包装器 50(回退)

默认情况下,服务器 自动检测 最佳可用实现。 这 api 当Podman套接字可用时,首选实现,否则 cli 实现被用作回退。

使用 --podman-impl flag强制执行特定操作:

# 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 实现shell到 podman 或 docker 二元的。

🛠️ 工具

Container
  • 容器扫描 -显示具有指定容器ID或名称的Docker或Podman容器的低级信息和配置

    • name (string) (必填) -显示信息的Docker或Podman容器ID或名称
  • 容器列表 -打印出有关正在运行的Docker或Podman容器的信息

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

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

    • name (string) (必填) -要删除的Docker或Podman容器ID或名称
  • 集装箱轮 -使用指定的映像名称运行Docker或Podman容器

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

    • name (string) (必填) -要停止的Docker或Podman容器ID或名称
Image
  • 图片_建筑 -从Dockerfile、Podman文件或Containerfile构建Docker或Podman映像

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

  • image_pull -将Docker或Podman容器映像从注册表复制(拉取)到本地计算机存储上

    • imageName (string) (必填) -要提取的Docker或Podman容器映像名称
  • 图像推送 -将Docker或Podman容器映像、清单列表或映像索引从本地机器存储推送到注册表

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

    • imageName (string) (必填) -要删除的Docker或Podman容器映像名称
Network
  • 网络列表 -列出所有可用的Docker或Podman网络
Volume
  • volume_list -列出所有可用的Docker或Podman卷

🧑‍💻 发展

与mcp检查员一起运行

编译项目并运行Podman MCP服务器 mcp检查员 检查MCP服务器。

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

mcp名称:io.github.manusa/podman-mcp服务器