项目简介

Dokku AI管理服务器(Dokku MCP Server)是一个基于Go语言开发的后端应用,它实现了Model Context Protocol (MCP) 标准,使大型语言模型(LLMs)能够通过标准化的方式与Dokku PaaS平台进行交互,从而实现对Dokku实例上应用的自动化管理、部署、伸缩和监控。

主要功能点

  • 应用管理: 创建、部署、伸缩应用,以及管理环境变量。
  • 服务器监控: 获取Dokku服务器的系统状态、插件列表等信息。
  • 日志访问: 获取应用实时日志或服务器自身日志。
  • 安全控制: 支持命令黑名单和危险字符过滤,确保操作安全。
  • 异步部署: 支持异步应用部署,并通过轮询机制追踪部署状态。
  • 上下文感知: 提供丰富的资源(如快速入门、能力索引、意图映射),帮助LLM理解和操作Dokku。

安装步骤

  1. 下载预构建二进制文件 (推荐):

    • 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'。
  2. 从源代码构建 (需要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,并进行临时调用。

信息

分类

开发者工具