mcpField
D
dokploy-mcp-server

dokploy-mcp-server

本地服务
github.com/sapientsai云与基础设施31 周前更新

关于 dokploy-mcp-server

dokploy-mcp-server 是用于通过 MCP 操作 Dokploy(可自托管 PaaS)的服务,采用按类别划分、以操作为参数的工具。它覆盖常见部署和基础设施工作流,工具数量少于每个 API 端点单设工具的设计。

主要功能

  1. 01管理项目和应用
  2. 02操作 Docker Compose 服务
  3. 03管理六种数据库类型
  4. 04管理域名、备份和服务器
  5. 05使用按类别划分的操作工具

适用场景

  1. 01部署或停止应用
  2. 02更新 Compose 服务
  3. 03管理多种受支持的数据库
  4. 04管理域名和服务器基础设施

MCP 相关

该服务通过带操作参数的分类工具,向 MCP 客户端开放 Dokploy 管理操作。它支持 stdio 和 httpStream 传输,并使用 URL 和 API 密钥连接 Dokploy 实例。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"jordanburke-dokploy": {
"command": "npx",
"args": [
"-y",
"dokploy-mcp-server"
],
"env": {
"DOKPLOY_URL": "<DOKPLOY_URL>",
"DOKPLOY_API_KEY": "<DOKPLOY_API_KEY>",
"TRANSPORT_TYPE": "<TRANSPORT_TYPE>",
"PORT": "<PORT>",
"HOST": "<HOST>"
}
}
}
}
启动命令npx -y dokploy-mcp-server
需要配置的环境变量
DOKPLOY_URLDokploy instance URL (e.g., https://dokploy.example.com)
DOKPLOY_API_KEY密钥Dokploy API key (generate in Settings > API Keys)
TRANSPORT_TYPETransport: 'stdio' (default) or 'httpStream' for remote/Docker deployments
PORTHTTP port for httpStream transport (default 3000)
HOSTHTTP host for httpStream transport (default 0.0.0.0)

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npmdokploy-mcp-server1.6.2

工具

16

收录的工具列表 · 更新于 今天

此工具无需参数。

详细介绍

dokploy-mcp-server

npm version

适用于 Dokploy 的综合性 Model Context Protocol (MCP) 服务。Dokploy 是一款开源、可自托管的 PaaS。通过 Claude 等 AI 助手部署应用、管理容器、数据库、域名和服务。

为什么选择此服务?

跟踪 Dokploy v0.30.8。 工具基于 v0.30.8 OpenAPI 规范(604 个路径)构建。以下对比数据测量于 2026-10-03。

Dokploy 官方 MCP 为每个 API 端点生成一个工具。其最新版本 @dokploy/[email protected] 提供 604 个工具,分别对应 Dokploy v0.30.8 OpenAPI 规范中的 604 个路径。覆盖完整,而且在你提出第一个问题之前,所有这些工具的架构都会加载到模型的上下文中。

此服务为同一 API 精选了 27 个工具(每个类别一个工具,均接受一个 action 枚举),涵盖大多数自托管用户日常使用的部署和运维功能。

上下文开销
官方 @dokploy/mcp此服务
提供的工具数60428(27 + info)
tools/list 架构负载319,143 字节51,974 字节
预先加载的近似令牌数~80k~13k
工具架构中位数大小387 字节1,257 字节

数据于 2026-10-03 测量,比较对象为 @dokploy/[email protected](最新发布版本)和跟踪 Dokploy v0.30.8 构建的此服务。分别通过 stdio 启动每个服务,发送 tools/list,并统计序列化工具数组的字节数(除以 4 得出粗略的令牌估算值)。

在 200k 令牌的上下文窗口中,官方服务在你提出任何问题之前就会占用约 40%;此服务则占用约 6.5%。此处较大的工具架构中位数是有意为之:描述中包含工作流知识,能够避免调用失败,例如说明哪个服务 ID 应与哪个 databaseType 搭配。

功能对比

官方服务的工具数量按类别统计,取自其实时的 tools/list,版本为 @dokploy/[email protected]。

类别官方 MCP本服务
项目11 个工具1 个工具(6 个操作)
应用程序32 个工具1 个工具(24 个操作)
Compose31 个工具1 个工具(21 个操作)
部署9 个工具1 个工具(5 个操作)
Docker21 个工具(含磁盘使用情况)1 个工具(17 个操作)
Docker 卷8 个工具1 个工具(8 个操作)
Docker 镜像3 个工具1 个工具(3 个操作)
网络9 个工具1 个工具(9 个操作)
概览3 个工具1 个工具(3 个操作)
DNS 提供商11 个工具1 个工具(11 个操作)
Vault 提供商7 个工具1 个工具(7 个操作)
域名10 个工具1 个工具(9 个操作)
重定向4 个工具1 个工具(4 个操作)
服务19 个工具1 个工具(9 个操作)
设置52 个工具1 个工具(5 个操作)
数据库94 个工具(6 种引擎)1 个工具(17 个操作,涵盖全部 6 种数据库)
备份12 个工具1 个工具(6 个操作)
卷备份6 个工具1 个工具(6 个操作)
预览部署4 个工具1 个工具(4 个操作)
计划任务6 个工具1 个工具(6 个操作)
审计日志1 个工具1 个工具(1 个操作)
环境7 个工具1 个工具(6 个操作)
基础设施13 个工具(端口、证书、身份验证)1 个工具(8 个操作)
挂载6 个工具1 个工具(6 个操作)
SSH 密钥7 个工具1 个工具(6 个操作)
镜像仓库7 个工具1 个工具(7 个操作)
目标6 个工具1 个工具(6 个操作)
总计399 个工具27 个工具

主要优势:

  • 最大限度减少令牌用量——用 27 个工具涵盖相当于 399 个端点的功能,所需上下文约为六分之一
  • 统一的数据库工具——通过 dbType + action 参数,一个工具即可处理全部 6 种数据库类型(postgres、mysql、mariadb、mongo、redis、libsql)
  • 精心编写的说明——每个工具都会说明哪些参数与哪些操作搭配使用,确保调用一次成功
  • 基于操作的设计——每个工具都有一个 action 枚举参数;其他参数是否需要取决于所选操作
改用官方服务的情况

官方服务的 604 个工具中,有 399 个属于上述类别;其余 205 个在这里没有对应项:

  • 通知(41 个工具)- 电子邮件、Slack、Discord、Telegram、Gotify webhook
  • 用户、组织、角色、SSO(67 个工具)- 用户管理、组织、自定义角色、SSO、SCIM、forwardAuth
  • Git 提供商(32 个工具)- GitHub、GitLab、Gitea、Bitbucket 应用配置
  • AI 提供商(14 个工具)- Dokploy 自带的 LLM 集成,用于日志分析和 compose 生成
  • 集群和 Swarm(8 个工具)、补丁(12 个)、标签(8 个)、回滚(2 个)、管理(1 个)
  • Dokploy Cloud 商业功能(20 个工具)- Stripe 账单、许可证密钥、白标定制

如果你的工作流需要其中任何功能,请使用官方服务,或同时运行两者。

安装

Claude Desktop / Claude Code

添加到 MCP 配置中:

{
  "mcpServers": {
    "dokploy": {
      "command": "npx",
      "args": ["-y", "dokploy-mcp-server"],
      "env": {
        "DOKPLOY_URL": "https://dokploy.example.com",
        "DOKPLOY_API_KEY": "your-api-key"
      }
    }
  }
}
Cursor

添加到 .cursor/mcp.json:

{
  "mcpServers": {
    "dokploy": {
      "command": "npx",
      "args": ["-y", "dokploy-mcp-server"],
      "env": {
        "DOKPLOY_URL": "https://dokploy.example.com",
        "DOKPLOY_API_KEY": "your-api-key"
      }
    }
  }
}
Docker
docker run -e DOKPLOY_URL=https://dokploy.example.com \
           -e DOKPLOY_API_KEY=your-api-key \
           -e TRANSPORT_TYPE=httpStream \
           -p 3000:3000 \
           dokploy-mcp-server

环境变量

变量必需默认值说明
DOKPLOY_URL是-你的 Dokploy 实例 URL
DOKPLOY_API_KEY是-Dokploy Settings > API Keys 中的 API 密钥
TRANSPORT_TYPE否stdio传输模式:stdio 或 httpStream
PORT否3000HTTP 端口(仅限 httpStream 模式)
HOST否0.0.0.0HTTP 主机(仅限 httpStream 模式)

工具(27 个)

每个工具都使用 action 枚举来选择操作。参数均为可选项,并根据所选操作使用。

dokploy_project(6 个操作)

操作:list | get | create | update | remove | duplicate

管理项目。list 和 get 会返回嵌套的环境及其应用、composes 和数据库(包括名称、ID 和状态),因此无需额外调用即可查找服务 ID。create 需要 name。update 需要 projectId 和字段。remove 需要 projectId。duplicate 需要 sourceEnvironmentId 和 name。

读取状态标签。 Dokploy 的状态枚举为 idle | running | done | error,显示为 [IDLE]、[RUNNING]、[DONE]、[ERROR]。它描述的是部署,而非容器的实时状态——[DONE] 表示上次部署已完成,[IDLE] 表示尚未运行,两者都不代表容器此刻正在运行。要查看实际正在运行的内容,请检查 dokploy_docker 的 getContainers。

dokploy_application(24 个操作)

操作:create | get | update | move | deploy | start | stop | delete | markRunning | refreshToken | cleanQueues | killBuild | cancelDeployment | reload | saveEnvironment | setEnvVars | getEnvKeys | getEnvValuesUnsafe | saveBuildType | traefikConfig | readMonitoring | readLogs | search | deployNginxQuickstart

完整的应用生命周期。大多数操作需要 applicationId。create 需要 name + environmentId。deploy 支持 redeploy 标志。readMonitoring 需要 appName。search 根据 q/name/appName/repository/owner/dockerImage/projectId/environmentId 查找应用,支持 limit(1–100,默认值为 20)和 offset;响应会标明页面是否被截断。deployNginxQuickstart 接受 environmentId(以及可选的 serverId),并在生成的 traefik.me 域名上创建并部署一个“Hello World” nginx 演示应用——这是 Dokploy 的入门冒烟测试。

环境变量处理。 get 返回经过遮蔽的环境变量摘要(仅包含数量),绝不会返回具体值。其余操作由以下三个操作处理:

  • setEnvVars — 在服务器内进行细粒度合并。传入 set(每行一个 KEY=VALUE,进行新增或更新)和/或 unset(KEY 名称数组)。读取、修改和写入均在服务器端完成;工具结果是经过遮蔽的确认信息,仅列出已更改的键名。未更改键的值绝不会进入对话记录。
  • getEnvKeys — 仅返回 KEY 名称,按排序排列。可安全读取。
  • getEnvValuesUnsafe — 不安全的应急选项,会返回完整的 KEY=VALUE 内容。只有确实需要这些值时才使用;输出会出现在工具对话记录以及所有保留的 Agent 日志中。
  • saveEnvironment — 完整替换,适用于明确需要设置整个内容块的工作流。

sourceType:

  • github → repository + owner + branch(私有仓库还需要 githubId)
  • git → customGitUrl + customGitBranch
  • docker → dockerImage

底层 API 还支持 gitlab/bitbucket/gitea/drop 源,但这些源需要此工具尚未开放的提供商专属字段。

dokploy_compose(21 个操作)

操作:create | get | update | delete | deploy | start | stop | move | loadServices | loadMounts | getDefaultCommand | cancelDeployment | cleanQueues | killBuild | refreshToken | saveEnvironment | setEnvVars | getEnvKeys | getEnvValuesUnsafe | readLogs | search

Docker Compose 管理。大多数操作需要 composeId。create 需要 name + environmentId。deploy 接受可选的 redeploy 和 freshVolumes——freshVolumes 会先运行 docker compose down --volumes,删除服务的卷数据(仅适用于 docker-compose 类型)。loadMounts 需要 serviceName。cancelDeployment/cleanQueues/killBuild/refreshToken 需要 composeId。search 接受与 dokploy_application 相同的查询字段。

环境变量处理。 与 dokploy_application 相同:get 返回经过遮蔽的摘要,setEnvVars 执行合并,getEnvKeys 列出键名,getEnvValuesUnsafe 是应急选项,saveEnvironment 会完整替换。

sourceType:

  • github → repository + owner + branch(以及可选的 composePath)
  • git → customGitUrl + customGitBranch(私有仓库还需要 customGitSSHKeyId)
  • raw → composeFile(内联 YAML)

底层 API 还支持 gitlab/bitbucket/gitea 源,但这些源需要此工具尚未开放的提供商专属字段。

dokploy_database(17 个操作)

操作:create | get | update | move | start | stop | deploy | rebuild | remove | reload | changeStatus | saveEnvironment | setEnvVars | getEnvKeys | getEnvValuesUnsafe | saveExternalPort | search

统一的数据库管理。所有操作都需要 dbType(postgres | mysql | mariadb | mongo | redis | libsql);大多数操作还需要 databaseId。create 的基本参数:dbType + name + environmentId + databasePassword。

环境变量处理。 与 dokploy_application 的格式相同:get 返回已屏蔽的摘要,setEnvVars 会合并变量(适用于所有引擎),getEnvKeys 列出键名,getEnvValuesUnsafe 是获取未屏蔽值的备用方式。

各引擎的额外参数:

  • postgres / mysql / mariadb — 还需要 databaseName + databaseUser。mysql/mariadb 接受 databaseRootPassword。
  • mongo — 需要 databaseUser(不需要 databaseName)。
  • redis — 仅需要 databasePassword。
  • libsql — 需要 appName + dockerImage + sqldNode(primary | replica);接受 sqldPrimaryUrl + enableNamespaces。

changeStatus 使用 applicationStatus(idle | running | done | error)。search 支持除 libsql 之外的所有引擎;libsql 没有搜索端点,可通过 dokploy_project 或 dokploy_environment 查找 libsql 数据库。

dokploy_domain(9 个操作)

操作:create | list | get | update | delete | toggleEnable | generate | canGenerateTraefikMe | validate

域名/DNS 管理。create 需要 host + applicationId|composeId(compose 域名还需要 serviceName)。枚举值:certificateType(letsencrypt | none | custom)、domainType(compose | application | preview)。validate 需要 domain,并可选接受 serverId,用于根据该服务器的 IP 检查 DNS(Dokploy v0.30.8 用 serverId 替代了旧字段 serverIp)。

update 接受 enabled,可将域名的启用标记设为指定值。toggleEnable 会切换该标记,但不报告结果——API 返回的内容没有说明,因此需要确定最终状态时,优先使用 update。

dokploy_redirects(4 个操作)

操作:create | update | remove | get

应用的 URL 重定向规则,以 Traefik 正则表达式/替换字符串对的形式表示。create 需要 regex + replacement + permanent + applicationId。update 需要 redirectId + 规则字段。remove/get 需要 redirectId。只有在应用重新部署后,更改才会生效。

dokploy_environment(6 个操作)

操作:create | get | list | update | remove | duplicate

项目环境管理。create 需要 projectId + name。list 需要 projectId。

dokploy_server(9 个操作)

操作:list | get | create | update | remove | count | publicIp | getMetrics | getServices

服务器管理。create 需要 name + ipAddress + port + username + sshKeyId + serverType(deploy | build)。getMetrics 需要 url + token。getServices 需要 serverId,并会列出部署在该服务器上的应用、compose 服务和数据库——删除服务器前请先检查。

dokploy_backup(6 个操作)

操作:create | get | update | remove | listFiles | manualBackup

备份计划与触发操作。create 需要 schedule + prefix + destinationId + database + databaseType。请提供与引擎匹配的一个服务 ID:

  • databaseType: postgres → postgresId
  • databaseType: mysql → mysqlId
  • databaseType: mariadb → mariadbId
  • databaseType: mongo → mongoId
  • databaseType: libsql → libsqlId
  • databaseType: web-server → 无服务 ID(备份 Dokploy 服务本身)
  • 备份 compose 堆栈中的数据库 → composeId + serviceName,并将引擎作为 databaseType

create 和 update 还接受 includeEncryptionKey,用于将数据库加密密钥与备份一同存储。

manualBackup 需要 backupId + backupType:

  • postgres | mysql | mariadb | mongo | libsql — 单个数据库备份
  • compose — 整个堆栈备份
  • webServer — Dokploy 服务备份
dokploy_volume_backup(6 个操作)

操作:create | update | remove | get | list | runManually

使用 rclone 执行计划的卷级备份。与执行数据库原生转储的 dokploy_backup 不同。

create 需要 name + volumeName + prefix + cronExpression + destinationId,并接受 serviceType 及匹配的 *Id,以及 appName、keepLatestCount、enabled 和 turnOff(在备份时段停止服务)。volumeName 必须匹配 ^[a-zA-Z0-9][a-zA-Z0-9_.-]*$ — 发送请求前会进行验证。update 接受 volumeBackupId 和相同字段。remove/get 接受 volumeBackupId。list 需要 id(父服务 ID)+ volumeBackupType。runManually 根据 volumeBackupId 立即触发备份。

dokploy_deployment(5 个操作)

操作:list | queueList | killProcess | readLogs | remove

部署跟踪。list 需要 applicationId|composeId|serverId|type+id。type 枚举:application | compose | server | schedule | previewDeployment | backup | volumeBackup(数据库部署通过数据库资源本身列出,而非此端点)。queueList 需要 applicationId。killProcess 需要 deploymentId。readLogs 读取单个部署的日志文件。remove 删除部署记录。

dokploy_preview_deployment(4 个操作)

操作:list | get | remove | redeploy

挂载在父应用下、针对每个 PR 和分支的预览部署。list 需要 applicationId。get/remove/redeploy 需要 previewDeploymentId;redeploy 可选接受 title 和 description,用于部署记录。

dokploy_schedule(6 个操作)

操作:create | update | remove | get | list | runManually

Cron 计划,用于对应用、compose 服务、服务器或 Dokploy 服务本身运行命令。create 需要 name + cronExpression + command,以及 scheduleType 和匹配的 ID;还接受 shellType(bash | sh)、用于多行命令的 script,以及 timezone。list 需要 id(父级 ID 或 dokploy-server)+ scheduleType。runManually 根据 scheduleId 立即触发计划。

scheduleType:application | compose | server | dokploy-server。

dokploy_docker(17 个操作)

操作:getContainers | restartContainer | startContainer | stopContainer | killContainer | removeContainer | getConfig | findContainers | listContainerFiles | readContainerFile | writeContainerFile | deleteContainerFile | getEvents | getServerHealth | getDiskUsage | getBuildCache | pruneBuildCache

Docker 守护进程管理。每个操作都接受可选的 serverId,用于指定远程服务。

**容器。**生命周期操作(restart/start/stop/kill/removeContainer)和 getConfig 接受 containerId。findContainers 要求提供 appName + method(match | label | stack | service)。当 method=match 时,appType 接受 stack | docker-compose。当 method=label 时,必须提供 type,且接受 standalone | swarm(API 在未提供时会拒绝请求)。

容器文件。listContainerFiles、readContainerFile、writeContainerFile 和 deleteContainerFile 接受 containerId + path(容器内的绝对路径);writeContainerFile 还接受 content。readContainerFile 的输出会截断至 100,000 个字符。writeContainerFile 会写入正在运行的容器——除非路径位于挂载点上,否则重新部署后更改会丢失。

可观测性。getEvents 接受 minutes(1–1440,默认值为 15)。getServerHealth 接受 sinceHours(1–168)。

磁盘。getDiskUsage 对应 docker system df——涵盖容器、卷、镜像和构建缓存,因此排查磁盘空间问题时可从这里开始。getBuildCache 显示缓存详情;pruneBuildCache 会清除缓存(效果与 dokploy_settings 中 clean 且 cleanType=dockerBuilder 相同)。

dokploy_docker_volume(8 个操作)

操作:getVolumes | getVolumesSize | getVolumeConfig | removeVolume | listVolumeFiles | readVolumeFile | writeVolumeFile | deleteVolumeFile

Docker 卷管理和卷文件访问。每个操作都接受可选的 serverId。getVolumeConfig 和 removeVolume 接受 volumeName;文件操作接受 volumeName + path,而 writeVolumeFile 还接受 content。readVolumeFile 的输出会截断至 100,000 个字符。removeVolume 会销毁卷中的数据——请先执行 dokploy_volume_backup。与写入正在运行的容器不同,写入卷的内容在重新部署后仍会保留。

dokploy_docker_image(3 个操作)

操作:getImages | getImageConfig | removeImage

Docker 镜像清单。getImageConfig 接受 imageRef(nginx:latest 或镜像 ID)。removeImage 要求提供全部三项:repository、tag 和 id——请从 getImages 的结果中读取;还可选提供 force。磁盘用量和构建缓存由 dokploy_docker 管理(getDiskUsage、getBuildCache、pruneBuildCache)。

dokploy_network(9 个操作)

操作:list | get | create | remove | recreate | resync | inspect | import | networksToSync

Docker 网络管理。create 要求提供 name,并接受 driver(bridge | overlay)、internal、attachable、enableIPv4、enableIPv6、mtu(68–65535)、ipam 和 serverId。get、inspect、remove、recreate 和 resync 接受 networkId——recreate 会删除并重新添加网络,因此连接的服务会短暂断开;resync 会从 Docker 重新读取网络并刷新 Dokploy 中存储的记录,但不会触碰网络本身。networksToSync 会列出 Docker 主机上存在但 Dokploy 尚未跟踪的网络;import 可通过 names 将这些网络导入。通过 dokploy_application 的 update 操作中的 networkIds,或 dokploy_compose 的 update 操作中的 serviceNetworks,将网络连接到工作负载。

dokploy_overview(3 个操作)

操作:services | backups | domains

跨所有项目的只读汇总——无需参数。先用这些操作了解全局情况,再深入查看:services 列出每个应用、Compose 服务和数据库及其状态;backups 列出每项已配置的备份及其计划;domains 列出每个域名及其指向的对象。Dokploy 的 OpenAPI 规范未描述这些响应正文,因此此工具会将它们呈现为 JSON。

盘点资源时优先使用此工具,而非 search。 Dokploy 的搜索索引范围小于项目树——在一个包含 1 个应用和 14 个 Compose 服务的测试实例中,application.search 报告 0 个匹配项,compose.search 报告 5 个。dokploy_application、dokploy_compose 和 dokploy_database 中的 search 操作用于查找已知存在的服务;dokploy_overview 和 dokploy_project 则用于枚举现有内容。

dokploy_infrastructure(8 个操作)

操作:createPort | deletePort | createAuth | deleteAuth | listCerts | getCert | createCert | removeCert

端口、基本身份验证和 SSL 证书。

dokploy_mounts(6 个操作)

操作:create | update | remove | get | listByServiceId | allNamedByApplicationId

附加到服务的卷、绑定挂载和文件挂载。create 需要 type + mountPath + serviceId + serviceType,然后根据类型提供一个字段:卷需要 volumeName,绑定挂载需要 hostPath,文件需要 filePath + content。update 接受 mountId 及任意字段。remove/get 接受 mountId。listByServiceId 需要 serviceType + serviceId。allNamedByApplicationId 列出指定 applicationId 的命名卷。

serviceType:application | postgres | mysql | mariadb | mongo | redis | compose | libsql。

挂载变更需重新部署所属服务才能生效。

dokploy_ssh_key(6 个操作)

操作:create | list | get | update | remove | generate

用于基于 Git 的部署的 SSH 密钥管理。create 需要 name + privateKey + publicKey + organizationId。get 需要 sshKeyId。update 需要 sshKeyId,可选字段为 name、description、lastUsedAt。remove 需要 sshKeyId。generate 使用 type(rsa|ed25519)。

dokploy_registry(7 个操作)

操作:list | get | create | update | remove | test | testById

用于拉取私有镜像的容器镜像仓库。create 需要 registryName + username + password + registryUrl;registryType 默认为 cloud。get/remove 需要 registryId,update 接受 registryId + 字段。test 会检查凭据但不保存;testById 会根据 registryId 测试已保存的镜像仓库,也可选择针对 serverId 进行测试。

dokploy_destination(6 个操作)

操作:list | get | create | update | remove | test

用于写入备份的兼容 S3 的目标。create 需要 name + accessKey + bucket + region + endpoint + secretAccessKey,并接受 provider 和 additionalFlags(传递给 rclone)。get/remove 需要 destinationId,update 接受 destinationId + 字段。test 会验证与 create 相同的字段,但不会保存。

dokploy_audit_log(1 个操作)

操作:list

查询 Dokploy 审计记录。所有筛选条件均为可选:userId、userEmail、resourceName、auditAction、resourceType、from/to(ISO 时间戳)、limit(默认值为 50,最大值为 500)和 offset。

auditAction:create | update | delete | deploy | cancel | redeploy | login | logout。

resourceType:project | service | environment | deployment | user | customRole | domain | certificate | registry | server | sshKey | gitProvider | notification | settings | session。

底层查询参数名为 action;此工具将其公开为 auditAction,以避免与每个工具都使用的 action 判别字段冲突。

dokploy_dns_provider(11 个操作)

操作:list | get | create | update | remove | testConnection | listZones | listRecords | createRecord | updateRecord | deleteRecord

DNS 提供商凭据,以及区域和记录管理。config 根据 providerType 区分:cloudflare(apiToken)、route53(accessKeyId、secretAccessKey)、porkbun(apiKey、secretApiKey)、infomaniak(apiToken)或 ovh(applicationKey、applicationSecret、consumerKey、可选的 endpoint,默认值为 ovh-eu)。update 需要 dnsProviderId + name + config — API 会替换提供商,而不是进行局部更新,因此重命名时必须重新提交凭据。testConnection 可接收已保存的 dnsProviderId 或原始 config,以便在保存前检查凭据。

记录:listZones(dnsProviderId)、listRecords(+ zoneId)、createRecord/updateRecord(+ type、recordName、content、可选的 ttl 和 proxied,更新时还需提供 recordId)、deleteRecord(+ recordId)。type 接受 A、AAAA、CNAME、MX、TXT、NS、SRV、CAA 或 PTR。proxied 仅对 Cloudflare 生效。请注意,recordName 是 DNS 记录名称 — 它映射到 API 的 name 字段;这里将其与提供商的 name 区分开来。

读取提供商时只会返回 id、name 和 providerType;凭据不会出现在工具输出中。

dokploy_vault_provider(7 个操作)

操作:list | get | create | update | remove | testConnection | listSecretNames

外部密钥管理器配置。config 根据 providerType 区分,支持八种后端:hashicorp、infisical、aws(Secrets Manager)、aws-parameter-store(可选的 parameterPath,必须以 / 开头)、doppler、azure、scaleway、phase(token、appId、env、可选的 path 和 apiUrl)。assignments 的格式为 [{ projectId, environmentIds? }],用于指定该密钥库服务的 Dokploy 项目。

请注意重载的字段名称:infisical.projectId 和 scaleway.projectId 是各自提供商自己的项目 ID,不是 assignments 中使用的 Dokploy projectId。

update 必须提供 vaultProviderId、name、config 和 assignments 全部四个字段 — 与 DNS 提供商一样,API 会替换配置,而不是进行局部更新,因此请先运行 get 以获取当前名称和分配。

listSecretNames(vaultProviderId + projectId,可选的 environmentId)只返回密钥名称。Dokploy 没有读取密钥值的 API,也不会回显提供商凭据 — 这与 env 工具遵循的规则相同。

dokploy_settings(5 个操作)

操作:health | version | ip | clean | reload

系统设置。clean 使用 cleanType — 服务器范围:all | images | volumes | stoppedContainers | dockerBuilder | dockerPrune(遵循 serverId);全局:monitoring | deploymentQueue | sshPrivateKey。reload 使用 reloadTarget(server | traefik);对于 traefik,serverId 会生效。

使用示例

部署应用程序
"Deploy my web app" → dokploy_application { action: "deploy", applicationId: "app-123" }
启动 PostgreSQL 数据库
"Start the postgres database" → dokploy_database { action: "start", dbType: "postgres", databaseId: "db-456" }
检查系统运行状况
"Is Dokploy healthy?" → dokploy_settings { action: "health" }
列出所有容器
"What containers are running?" → dokploy_docker { action: "getContainers" }

开发

pnpm install
pnpm dev          # Development mode with watch
pnpm validate     # Format + lint + test + build
pnpm inspect      # Open MCP Inspector

许可证

MIT


由 SapientsAI SapientsAI 赞助 — 为企业打造智能 Agent

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。