项目简介

Dokploy MCP 服务器是一个基于 Model Context Protocol (MCP) 构建的后端服务,旨在作为AI助手与强大的 Dokploy 云基础设施管理平台之间的桥梁。它将自然语言指令转换为Dokploy API调用,使用户能够通过对话方式无缝控制其云环境。

主要功能点

该服务器通过暴露结构化的工具接口,允许AI客户端执行以下管理任务:

  • 项目管理: 列出、获取、创建、更新和删除 Dokploy 项目。
  • 应用部署与管理: 管理项目中的应用程序,包括列出、获取详情、创建、更新、部署、重启、启动和停止应用。
  • 服务器管理: 管理 Dokploy 集群中的服务器,包括列出、获取详情、创建、更新、删除、执行服务器初始化设置、验证连接及检查安全性。
  • Docker操作: 获取Docker容器列表、重启容器、获取容器配置、按应用名或标签查找容器、查找Compose栈中的容器。
  • 域名与证书管理: 管理应用关联的域名和SSL证书,包括创建、获取、更新、删除域名,验证域名指向,生成临时域名,以及管理证书。
  • 监控与诊断: 获取应用状态、查看应用日志、获取服务器性能指标、执行端点测试及诊断常见的网络错误(如502 Bad Gateway)。
  • 数据服务管理: 提供对多种数据库(MySQL, PostgreSQL, MongoDB, Redis, MariaDB)的统一管理接口,支持创建、获取、启动、停止、部署、更新、删除、移动、重载和重建数据库实例。
  • 备份管理: 管理数据库备份配置及手动执行备份。
  • 安全凭证管理: 管理SSH密钥和私有仓库凭证。
  • 用户管理: 管理Dokploy平台的用户及API密钥。
  • 其他功能: 支持Docker Compose配置管理、Webhook设置、存储卷管理、Cron定时任务管理。
  • 系统状态与控制: 获取MCP服务器自身的运行状态(包含缓存和熔断器信息)、清除缓存、手动重置熔断器。

该服务器通过集成的量子连接器(Quantum Connector)增强了稳定性,提供了请求重试、熔断器保护和响应缓存等高级功能。

安装步骤

  1. 克隆仓库: 打开终端,使用 'git clone https://github.com/apple-techie/dokploy-mcp.git' 命令克隆项目到本地。
  2. 进入目录: 进入克隆下来的项目文件夹:'cd dokploy-mcp'。
  3. 安装依赖: 运行 'npm install' 安装所有必要的依赖包。
  4. 构建项目: 运行 'npm run build' 编译TypeScript代码为JavaScript。
  5. 配置服务器: 在项目根目录下创建或编辑 '.env' 文件,配置连接Dokploy API所需的URL和API密钥,以及服务器运行端口:
    DOKPLOY_API_URL=https://your-dokploy-instance.com/api
    DOKPLOY_API_KEY=your-galactic-access-key
    PORT=3000
    将 'https://your-dokploy-instance.com/api' 替换为你实际的 Dokploy 实例API地址,将 'your-galactic-access-key' 替换为你的 Dokploy API 密钥。
  6. 启动服务器: 运行 'npm start' 命令启动MCP服务器。服务器将监听配置的端口(默认为3000)。

服务器配置 (供MCP客户端使用)

MCP客户端(如Windsurf AI或其他兼容客户端)需要配置如何启动并连接到此MCP服务器。典型的配置会包含以下信息(JSON格式,用户无需手动编辑此JSON,只需在客户端界面填写):

  • 'server name': 服务器的识别名称,例如 'Dokploy Command Center'
  • 'command': 启动服务器进程的命令,例如 'node'
  • 'args': 传递给启动命令的参数,通常是服务器主程序的路径,例如 '/path/to/your/dokploy-mcp/dist/index.js' (请根据你的实际安装路径修改)
  • 'env': 服务器运行所需的额外环境变量,例如包含 'DOKPLOY_API_URL' 和 'DOKPLOY_API_KEY' 的对象。

重要提示: 'DOKPLOY_API_URL' 和 'DOKPLOY_API_KEY' 必须正确配置在服务器启动时的环境变量中,客户端可以通过 'env' 参数传递这些值。服务器启动后会监听一个本地端口(由 'PORT' 环境变量指定),并通过标准输入/输出或该端口与客户端通信(此实现主要通过HTTP端口提供API接口,Windsurf AI的配置示例表明它可以通过指定启动命令并通过HTTP端口通信)。

基本使用方法

一旦服务器运行起来,AI客户端将能够通过配置的连接方式与之通信。

  • 获取工具列表: AI客户端可以通过访问 '/tools' 接口(通过配置的本地端口)来发现服务器提供的所有工具及其描述和参数。
  • 执行工具: AI客户端会根据用户指令,选择合适的工具,构造类似 'POST /' 请求体 '{ "name": "tool_name", "params": { ... } }' 的结构(尽管不完全是JSON-RPC标准,但功能类似),发送到服务器的 '/' 接口。服务器接收请求,调用 Dokploy API 完成操作,并将结果返回给客户端。
  • 检查健康状态: 可以访问 '/health' 接口(通过配置的本地端口)来检查服务器的运行状态。

普通用户通常无需直接与这些接口交互,AI客户端会负责解析用户指令并自动调用相应的服务器工具。

信息

分类

AI与计算