使用说明
项目简介
Portainer MCP Server 是一个基于 Model Context Protocol (MCP) 的服务器实现,旨在为大型语言模型 (LLM) 应用提供对 Portainer 容器管理平台进行标准化和安全访问的桥梁。通过 MCP 协议,LLM 应用可以便捷地查询 Portainer 环境中的资源信息,并调用预定义的功能工具,从而实现更智能化的容器管理和运维自动化。
主要功能点
- 资源访问 (Resources): 通过 MCP 协议向 LLM 客户端暴露 Portainer 的环境 (Environments)、环境组 (Environment Groups/Edge Groups)、访问组 (Access Groups/Endpoint Groups)、容器栈 (Stacks/Edge Stacks)、标签 (Tags)、团队 (Teams)、用户 (Users) 和设置 (Settings) 等核心资源,允许 LLM 客户端获取这些资源的列表和详细信息。
- 工具调用 (Tools): 注册并提供一系列预定义的工具,允许 LLM 客户端通过标准化的 MCP 请求调用 Portainer 的管理功能。这些工具涵盖了对上述资源的常见操作,例如:
- 查询资源列表 (ListEnvironments, ListStacks, ListUsers 等)
- 创建资源 (CreateEnvironmentGroup, CreateAccessGroup, CreateTeam, CreateEnvironmentTag, CreateStack)
- 更新资源属性 (UpdateEnvironmentTags, UpdateEnvironmentUserAccesses, UpdateEnvironmentTeamAccesses, UpdateEnvironmentGroupName, UpdateEnvironmentGroupEnvironments, UpdateEnvironmentGroupTags, UpdateAccessGroupName, UpdateAccessGroupUserAccesses, UpdateAccessGroupTeamAccesses, UpdateTeamName, UpdateTeamMembers, UpdateUserRole)
- 管理资源关联 (AddEnvironmentToAccessGroup, RemoveEnvironmentFromAccessGroup, UpdateEnvironmentGroupEnvironments)
- 获取资源内容 (GetStackFile, GetSettings)
- Docker API 代理 (DockerProxy):允许 LLM 客户端通过 MCP 服务器代理 Docker API 请求,直接与 Portainer 管理的 Docker 环境进行交互。
- 只读模式 (Read-Only Mode): 支持以只读模式运行,限制 LLM 客户端只能进行数据查询操作,禁止任何修改操作,增强安全性。
- 工具自定义 (Tool Customization): 允许用户通过 YAML 文件自定义工具的描述和参数,以便更好地适应特定的 LLM 应用场景,但工具名称和参数定义(类型)不可更改。
安装步骤
- 下载预编译二进制文件: 访问 Latest Release Page 下载适用于您操作系统的预编译二进制文件 (Linux amd64 或 macOS arm64)。
- 验证文件校验和 (可选但推荐): 下载 '.md5' 校验和文件,并按照 README 文档中的指引进行校验,确保文件完整性。
- 解压压缩包: 使用 'tar -xzf portainer-mcp-v<VERSION>-<OS>-<ARCH>.tar.gz' 命令解压下载的压缩包,得到 'portainer-mcp' 可执行文件。
- 移动可执行文件 (可选): 将 'portainer-mcp' 可执行文件移动到您的 '$PATH' 环境变量包含的目录中,例如 '/usr/local/bin',以便在任何位置直接运行。
服务器配置
MCP 客户端需要配置 MCP 服务器的启动命令 (command) 及其参数 (args) 才能与 Portainer MCP Server 建立连接。以下是一个配置示例 (JSON 格式),您需要根据您的实际环境进行调整:
{ "mcpServers": { "portainer": { "command": "/path/to/portainer-mcp", // Portainer MCP Server 可执行文件的路径,请替换为实际路径 "args": [ "-server", "[IP]:[PORT]", // Portainer 服务器的 IP 地址和端口,例如 "192.168.1.100:9443",请替换为实际地址 "-token", "[TOKEN]", // Portainer 管理员 API 访问令牌,请替换为实际令牌 "-tools", "/tmp/tools.yaml" // 工具定义文件路径,默认为 "tools.yaml" 在可执行文件同一目录下,可以自定义路径 ] } } }
参数说明:
- 'command': Portainer MCP Server 可执行文件的绝对路径。
- 'args': 传递给 Portainer MCP Server 的命令行参数,包括:
- '-server [IP]:[PORT]': Portainer 服务器的 IP 地址和 HTTPS 端口。
- '-token [TOKEN]': 用于 API 鉴权的 Portainer 管理员访问令牌。您需要在 Portainer 中创建一个管理员用户,并生成 API 令牌。
- '-tools [PATH]': (可选) 自定义 'tools.yaml' 工具定义文件的路径。如果省略,服务器将使用默认的 'tools.yaml' 文件。
- '-read-only': (可选) 添加此参数以启用只读模式,禁止任何修改 Portainer 资源的操作。
基本使用方法
- 启动 Portainer MCP Server: 根据上述服务器配置,在 MCP 客户端 (例如 Claude Desktop) 中配置 Portainer MCP Server。MCP 客户端将根据配置的命令和参数启动 Portainer MCP Server 进程。
- 通过 MCP 客户端与 Portainer 交互: 在 MCP 客户端中,您可以利用其提供的界面或指令,通过 Portainer MCP Server 提供的工具和资源,以自然语言或结构化方式查询 Portainer 环境信息,或执行容器管理操作。例如,您可以询问 "列出所有环境" 或 "创建一个名为 my-stack 的 Docker Stack"。
注意: 请务必妥善保管 Portainer API 令牌,避免泄露。在生产环境中使用只读模式可以提高安全性。
信息
分类
开发者工具