article
README
🚀 Portainer MCP 服务器
Portainer MCP 服务器是一个用于 Portainer 的模型上下文协议 (MCP) 服务器实现,它让 AI 助手能够借助 Portainer 的 API 与 Docker 容器和服务进行交互,为容器管理提供了便利。
✨ 主要特性
- Docker 容器管理:支持容器的创建、启动、删除操作,还能获取容器日志。
- Docker 镜像管理:可获取镜像,删除未使用的镜像,清除构建缓存。
- Docker 网络操作:能够检查和获取网络信息。
- Docker 服务管理:可以获取服务及其日志。
- 容器资源限制管理:对容器的资源限制进行管理。
📦 项目结构
portainer-ce-mcp/
├── src/
│ ├── api/
│ │ └── portainer.ts # Portainer API 集成
│ ├── constants/
│ │ └── index.ts # 工具名称和其他常量
│ ├── types/
│ │ └── index.ts # TypeScript 类型定义
│ └── main.ts # 主服务器实现
├── package.json # 项目依赖
├── package-lock.json # 依赖锁定文件
├── deno.json # Deno 配置
└── README.md # 项目文档
📋 先决条件
- 需要安装 Deno。
- 要有带有 API 访问权限的 Portainer 实例。
- 需安装并运行 Docker。
📦 安装指南
- 克隆仓库:
git clone https://github.com/BirajMainali/poratiner-ce-mcp-server.git
cd portainer-ce-mcp
🛠️ 配置
服务器需要以下环境变量:
PORTAINER_URL:你的 Portainer 实例 URLPORTAINER_API_KEY:你的 Portainer API 密钥PORTAINER_ENV_ID:你的 Portainer 环境 ID
📚 详细文档
API 工具
服务器为 AI 助手提供了以下工具:
容器管理
FETCH_DOCKER_CONTAINERS:列出所有容器CREATE_DOCKER_CONTAINER:创建新容器START_DOCKER_CONTAINER:启动容器DELETE_DOCKER_CONTAINER:删除容器FETCH_CONTAINER_LOGS:获取容器日志UPDATE_CONTAINER_RESOURCE_LIMITS:更新容器资源限制DELETE_STOPPED_CONTAINERS:清理已停止的容器
镜像管理
FETCH_IMAGES:列出所有镜像DELETE_IMAGE_BUILD_CACHE:清除构建缓存DELETE_UNUSED_IMAGES:删除未使用的镜像
网络操作
FETCH_NETWORKS:列出所有网络INSPECT_NETWORK:获取网络详细信息
服务管理
FETCH_SERVICES:列出所有服务FETCH_SERVICE_LOG:获取服务日志
💻 开发
构建
deno compile --allow-env --allow-read --allow-net --env-file=.env src/main.ts
检查 MCP 服务器
npx @modelcontextprotocol/inspector deno run --allow-env --allow-read --allow-net --env-file=.env
Scan to contact