项目简介
Dokku AI管理服务器(Dokku MCP Server)是一个基于Go语言开发的后端应用,它实现了Model Context Protocol (MCP) 标准,使大型语言模型(LLMs)能够通过标准化的方式与Dokku PaaS平台进行交互,从而实现对Dokku实例上应用的自动化管理、部署、伸缩和监控。
主要功能点
- 应用管理: 创建、部署、伸缩应用,以及管理环境变量。
- 服务器监控: 获取Dokku服务器的系统状态、插件列表等信息。
- 日志访问: 获取应用实时日志或服务器自身日志。
- 安全控制: 支持命令黑名单和危险字符过滤,确保操作安全。
- 异步部署: 支持异步应用部署,并通过轮询机制追踪部署状态。
- 上下文感知: 提供丰富的资源(如快速入门、能力索引、意图映射),帮助LLM理解和操作Dokku。
安装步骤
-
下载预构建二进制文件 (推荐):
- Linux (amd64 / arm64 / arm):
curl -L -o dokku-mcp https://github.com/dokku-mcp/dokku-mcp/releases/download/v0.2.0/dokku-mcp-linux-amd64 chmod +x dokku-mcp sudo mv dokku-mcp /usr/local/bin/ - macOS (amd64 / arm64):
curl -L -o dokku-mcp https://github.com/dokku-mcp/dokku-mcp/releases/download/v0.2.0/dokku-mcp-darwin-amd64 chmod +x dokku-mcp sudo mv dokku-mcp /usr/local/bin/ - 验证安装: 运行 'dokku-mcp --version'。
- Linux (amd64 / arm64 / arm):
-
从源代码构建 (需要Go 1.24+):
git clone https://github.com/dokku-mcp/dokku-mcp.git cd dokku-mcp make build
服务器配置
MCP服务器可以通过'config.yaml'文件或环境变量进行配置。MCP客户端需要通过启动命令来连接此服务器。
以下是MCP客户端连接Dokku AI管理服务器的示例配置(JSON格式),您需要将其添加到MCP客户端的配置文件中(例如:'.cursor/mcp.json' 或 '.mcp.json'):
{ "mcpServers": { "dokku": { "command": "/home/user/dokku-mcp/build/dokku-mcp", "args": [], "env": { "DOKKU_MCP_SECURITY_BLACKLIST": "destroy,uninstall,remove", "DOKKU_MCP_SSH_HOST": "127.0.0.1", "DOKKU_MCP_SSH_KEY_PATH": "/home/user/.ssh/id_rsa", "DOKKU_MCP_SSH_PORT": "22", "DOKKU_MCP_SSH_USER": "dokku" } } } }
参数说明:
- 'command': Dokku AI管理服务器可执行文件的绝对路径。请务必替换为您的实际路径。
- 'args': 启动服务器时附加的命令行参数列表。通常为空。
- 'env': 环境变量配置,用于控制MCP服务器的行为。
- 'DOKKU_MCP_SECURITY_BLACKLIST': 禁止LLM调用的Dokku命令列表,用逗号分隔(例如:'destroy,uninstall,remove')。
- 'DOKKU_MCP_SSH_HOST': 连接Dokku实例的SSH主机地址。
- 'DOKKU_MCP_SSH_KEY_PATH': 用于SSH连接的私钥文件路径。如果为空,将尝试使用'ssh-agent'或默认私钥('~/.ssh/id_rsa')。
- 'DOKKU_MCP_SSH_PORT': SSH连接端口。
- 'DOKKU_MCP_SSH_USER': 用于SSH连接的Dokku用户,通常为'dokku'。
基本使用方法
安装并配置好MCP服务器后,您的MCP兼容客户端(如Cursor, Claude Code, Zed等)即可通过JSON-RPC协议与Dokku AI管理服务器通信。
- 通过LLM指令操作: LLM可以利用暴露的工具(如'create_app'、'deploy_app'、'scale_app')来执行Dokku操作。
- 例如,让LLM创建一个名为"my-new-app"的应用:调用 'create_app' 工具,参数为 'name: "my-new-app"'。
- 部署应用:调用 'deploy_app' 工具,参数为 'app_name: "my-new-app", repo_url: "https://github.com/user/my-app.git", git_ref: "main"'。
- 浏览资源: 客户端可以读取服务器提供的资源,例如'dokku://apps/list' 获取应用列表,'dokku://core/server/info' 获取服务器详细信息。
- 使用Prompt模板: 客户端可以根据预定义的Prompt模板(如'app_doctor')请求LLM生成特定交互模式的响应,用于故障诊断等。
- 通过MCP Inspector Playground (仅用于本地测试): 如果您在本地搭建,可以使用 'make inspect' 命令启动一个Web界面,直接在浏览器中探索服务器暴露的资源、工具和Prompt,并进行临时调用。
信息
分类
开发者工具