Docker容器管理服务

Portainer MCP Server是一个用于Portainer的模型上下文协议(MCP)服务器实现,使AI助手能够通过Portainer的API与Docker容器和服务进行交互。

  • by BirajMainali
  • JavaScript
  • 本地部署
  • 更新于
在 GitHub 查看 birajmainali/poratiner-ce-mcp-server

使用说明

Portainer MCP服务器

Portainer的模型上下文协议(MCP)服务器实现,使人工智能助手能够通过Portainer API与Docker容器和服务进行交互。

特性

  • Docker容器管理(创建、启动、删除、获取日志)
  • Docker镜像管理(获取、删除未使用的、清除构建缓存)
  • Docker网络操作(检查、获取)
  • Docker服务管理(获取、日志)
  • 容器的资源限制管理

项目结构

portainer-ce-mcp/
├── src/
│   ├── api/
│   │   └── portainer.ts      # Portainer API integration
│   ├── constants/
│   │   └── index.ts          # Tool names and other constants
│   ├── types/
│   │   └── index.ts          # TypeScript type definitions
│   └── main.ts               # Main server implementation
├── package.json              # Project dependencies
├── package-lock.json         # Dependency lock file
├── deno.json                 # Deno configuration
└── README.md                 # Project documentation

先决条件

  • 德诺
  • 具有API访问权限的Portainer实例
  • Docker已安装并正在运行

安装

  1. 克隆存储库:
git https://github.com/BirajMainali/poratiner-ce-mcp-server.git
cd portainer-ce-mcp

配置

服务器需要以下环境变量:

  • PORTAINER_URL:您的Portainer实例的URL
  • PORTAINER_API_KEY:您的Portainer API密钥
  • PORTAINER_ENV_ID:您的Poratiner环境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  src/main.ts

MCP配置

{
  "mcpServers": {
    "poratiner": {
      "command": "C:\\MCP\\portainer-ce-mcp\\src.exe", // use executable path
      "args": [
        "y"
      ]
    }
  }
}

许可证

麻省理工学院

贡献

  1. 分叉存储库
  2. 创建功能分支(git checkout -b feature/amazing-feature)
  3. 提交您的更改(git commit -m 'Add some amazing feature')
  4. 推到分支(git push origin feature/amazing-feature)
  5. 打开拉取请求