mcpField
C
containerport

containerport

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

关于 containerport

containerport 是 MCP 服务和命令行工具,通过主机的 docker 二进制程序执行一组日常 Docker 容器操作。它面向容器管理,专注于容器、镜像、日志和卷的核心任务,不涵盖 Docker 更广泛的目录或网关功能。

主要功能

  1. 01列出、检查、启动、停止和删除容器
  2. 02按端口、环境变量和命令运行容器
  3. 03列出并拉取镜像
  4. 04读取容器日志
  5. 05列出卷

适用场景

  1. 01查看运行中或已停止的容器
  2. 02启动并管理容器
  3. 03获取容器日志
  4. 04列出可用镜像和卷

MCP 相关

MCP 服务将十种 Docker 操作作为工具提供,包括容器生命周期操作、镜像列表与拉取、日志读取和卷列表。调用通过主机的 docker 二进制程序执行。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-containerport": {
"command": "npx",
"args": [
"-y",
"@reneturcios/containerport"
]
}
}
}
启动命令npx -y @reneturcios/containerport

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

安装包
npm@reneturcios/containerport0.1.0
ocighcr.io/cloudcorprecords/containerport:0.1.0

工具

10

收录的工具列表 · 更新于 1 周前

参数类型必填说明
allboolean否为 true 时,除运行中的容器外,也包含已停止的容器。

详细介绍

containerport

containerport 是一款小巧的 MCP 服务和 CLI,用于日常 Docker 容器操作。它以干净室方式重建了一组明确限定的核心容器操作——十个直接对应 Docker CLI 的工具:列出、检查、运行、启动、停止和移除容器,列出和拉取镜像,读取容器日志,以及列出卷。

它刻意不做 Docker 的 MCP 目录/工具包网关。不支持 compose、构建镜像、网络或 swarm 管理、注册表身份验证、进入容器执行命令,也不提供目录/网关工具——只有 Agent 最常用的容器操作,并且都通过主机的 docker 二进制文件如实执行。

每次调用都会构建为参数数组,并按 execFile 语义运行——绝不使用 shell 字符串——因此镜像名称、环境变量值和端口不会被重新解释为 shell 语法。传给 run-container 的 command 会通过容器自身的 sh -c 运行,而非主机 shell。执行器可注入,测试套件正是通过注入假执行器来验证确切的参数数组。

主机需要可正常工作的 docker CLI。如果缺少 docker,调用会如实返回底层的启动错误(ENOENT),而非伪造结果。发布的容器镜像不包含 docker 二进制文件:它需要主机执行器(例如挂载 Docker 套接字的工作流),并在 Dockerfile 中说明了这一点。

安装

npx @reneturcios/containerport list-containers --all
docker run -i ghcr.io/cloudcorprecords/containerport

CLI

containerport list-containers [--all]
containerport inspect-container <container_id>
containerport run-container <image> [--name n] [--port 8080:80] [--env KEY=val] [--command "echo hi"]
containerport start-container <container_id>
containerport stop-container <container_id>
containerport remove-container <container_id> [--force]
containerport list-images
containerport pull-image <image>
containerport get-container-logs <container_id> [--tail 100]
containerport list-volumes
containerport --version

退出代码:0 表示成功,1 表示 docker 错误,2 表示用法错误。

MCP 服务

npx -y @reneturcios/containerport mcp
{
  "mcpServers": {
    "containerport": {
      "command": "npx",
      "args": ["-y", "@reneturcios/containerport", "mcp"]
    }
  }
}
工具
工具输入功能
list_containersall(布尔值,可选)执行 docker ps [--all] --format json 并解析结果。
inspect_containercontainer_id(必填)执行 docker inspect,返回单个文档。
run_containerimage(必填)、name、ports[]、env[]、command执行 docker run -d,返回新容器 ID。
start_containercontainer_id(必填)执行 docker start。
stop_containercontainer_id(必填)执行 docker stop。
remove_containercontainer_id(必填)、force执行 docker rm [-f]。
list_images—执行 docker images --format json 并解析结果。
pull_imageimage(必填)执行 docker pull。
get_container_logscontainer_id(必填)、tail执行 docker logs [--tail n]。
list_volumes—执行 docker volume ls,解析驱动/名称对。

执行器错误——缺少 docker 二进制文件、守护进程错误、容器不存在——都会作为工具错误返回,并附带底层错误消息。

开发

npm install
npm run build
npm test
npm run dev

测试完全使用假执行器运行:验证确切的参数数组、输出解析和错误传递。不会连接真实的 Docker 守护进程。

许可证

MIT — 详见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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