This document provides detailed information about all available tools in the Dokploy MCP Server.
- Total Tools: 43
- Project Tools: 6
- Application Tools: 24
- PostgreSQL Tools: 13
All tools include semantic annotations to help MCP clients understand their behavior and are designed to interact with the Dokploy API.
- Description: Lists all projects in Dokploy
- Input Schema: None
- Annotations: Read-only, Idempotent
- Example:
{}
- Description: Gets a specific project by its ID in Dokploy
- Input Schema:
{ "projectId": "string" } - Annotations: Read-only, Idempotent
- Required Fields:
projectId
- Description: Creates a new project in Dokploy
- Input Schema:
{ "name": "string", "description": "string|null", "env": "string" } - Annotations: Creation tool (non-destructive)
- Required Fields:
name - Optional Fields:
description,env
- Description: Updates an existing project in Dokploy
- Input Schema:
{ "projectId": "string", "name": "string", "description": "string|null", "createdAt": "string", "organizationId": "string", "env": "string" } - Annotations: Destructive
- Required Fields:
projectId - Optional Fields:
name,description,createdAt,organizationId,env
- Description: Duplicates an existing project in Dokploy with optional service selection
- Input Schema:
{ "sourceProjectId": "string", "name": "string", "description": "string", "includeServices": "boolean", "selectedServices": [ { "id": "string", "type": "application|postgres|mariadb|mongo|mysql|redis|compose" } ] } - Annotations: Creation tool (non-destructive)
- Required Fields:
sourceProjectId,name - Optional Fields:
description,includeServices,selectedServices
- Description: Removes/deletes an existing project in Dokploy
- Input Schema:
{ "projectId": "string" } - Annotations: Destructive
- Required Fields:
projectId
- Description: Gets a specific application by its ID in Dokploy
- Input Schema:
{ "applicationId": "string" } - Annotations: Read-only, Idempotent
- Required Fields:
applicationId
- Description: Creates a new application in Dokploy
- Input Schema:
{ "name": "string", "appName": "string", "description": "string|null", "projectId": "string", "serverId": "string|null" } - Annotations: Creation tool (non-destructive)
- Required Fields:
name,projectId - Optional Fields:
appName,description,serverId
- Description: Updates an existing application in Dokploy
- Input Schema: Complex schema with 60+ fields including deployment settings, resource limits, networking, and monitoring configurations
- Annotations: Destructive
- Required Fields:
applicationId - Optional Fields: All application configuration fields (build settings, environment variables, resource limits, etc.)
- Description: Deletes an application from Dokploy
- Input Schema:
{ "applicationId": "string" } - Annotations: Destructive
- Required Fields:
applicationId
- Description: Moves an application to a different project
- Input Schema:
{ "applicationId": "string", "targetProjectId": "string" } - Annotations: Destructive
- Required Fields:
applicationId,targetProjectId
- Description: Deploys an application in Dokploy
- Input Schema:
{ "applicationId": "string" } - Annotations: Destructive
- Required Fields:
applicationId
- Description: Redeploys an application in Dokploy
- Input Schema:
{ "applicationId": "string" } - Annotations: Destructive
- Required Fields:
applicationId
- Description: Starts an application in Dokploy
- Input Schema:
{ "applicationId": "string" } - Annotations: Destructive
- Required Fields:
applicationId
- Description: Stops an application in Dokploy
- Input Schema:
{ "applicationId": "string" } - Annotations: Destructive
- Required Fields:
applicationId
- Description: Reloads an application in Dokploy
- Input Schema:
{ "applicationId": "string", "appName": "string" } - Annotations: Destructive
- Required Fields:
applicationId,appName
- Description: Marks an application as running in Dokploy
- Input Schema:
{ "applicationId": "string" } - Annotations: Destructive
- Required Fields:
applicationId
- Description: Saves build type configuration for an application
- Input Schema:
{ "applicationId": "string", "buildType": "dockerfile|heroku|nixpacks|buildpacks|docker", "dockerContextPath": "string|null", "dockerBuildStage": "string|null", "herokuVersion": "string|null" } - Annotations: Destructive
- Required Fields:
applicationId,buildType - Optional Fields:
dockerContextPath,dockerBuildStage,herokuVersion
- Description: Saves environment configuration for an application
- Input Schema:
{ "applicationId": "string", "env": "string|null", "buildArgs": "string|null" } - Annotations: Destructive
- Required Fields:
applicationId - Optional Fields:
env,buildArgs
- Description: Saves GitHub provider configuration for an application
- Input Schema:
{ "applicationId": "string", "repository": "string|null", "branch": "string|null", "owner": "string|null", "buildPath": "string|null", "githubId": "string|null", "watchPaths": ["string"]|null, "enableSubmodules": "boolean", "triggerType": "push|tag" } - Annotations: Destructive
- Required Fields:
applicationId,owner,githubId,enableSubmodules - Optional Fields:
repository,branch,buildPath,watchPaths,triggerType
- Description: Saves GitLab provider configuration for an application
- Input Schema:
{ "applicationId": "string", "gitlabBranch": "string|null", "gitlabBuildPath": "string|null", "gitlabOwner": "string|null", "gitlabRepository": "string|null", "gitlabId": "string|null", "gitlabProjectId": "number|null", "gitlabPathNamespace": "string|null", "watchPaths": ["string"]|null, "enableSubmodules": "boolean" } - Annotations: Destructive
- Required Fields:
applicationId,gitlabBranch,gitlabBuildPath,gitlabOwner,gitlabRepository,gitlabId,gitlabProjectId,gitlabPathNamespace,enableSubmodules - Optional Fields:
watchPaths
- Description: Saves Bitbucket provider configuration for an application
- Input Schema:
{ "applicationId": "string", "bitbucketBranch": "string|null", "bitbucketBuildPath": "string|null", "bitbucketOwner": "string|null", "bitbucketRepository": "string|null", "bitbucketId": "string|null", "watchPaths": ["string"]|null, "enableSubmodules": "boolean" } - Annotations: Destructive
- Required Fields:
applicationId,bitbucketBranch,bitbucketBuildPath,bitbucketOwner,bitbucketRepository,bitbucketId,enableSubmodules - Optional Fields:
watchPaths
- Description: Saves Gitea provider configuration for an application
- Input Schema:
{ "applicationId": "string", "giteaBranch": "string|null", "giteaBuildPath": "string|null", "giteaOwner": "string|null", "giteaRepository": "string|null", "giteaId": "string|null", "watchPaths": ["string"]|null, "enableSubmodules": "boolean" } - Annotations: Destructive
- Required Fields:
applicationId,giteaBranch,giteaBuildPath,giteaOwner,giteaRepository,giteaId,enableSubmodules - Optional Fields:
watchPaths
- Description: Saves Git provider configuration for an application
- Input Schema:
{ "applicationId": "string", "customGitUrl": "string|null", "customGitBranch": "string|null", "customGitBuildPath": "string|null", "customGitSSHKeyId": "string|null", "watchPaths": ["string"]|null, "enableSubmodules": "boolean" } - Annotations: Destructive
- Required Fields:
applicationId,enableSubmodules - Optional Fields:
customGitUrl,customGitBranch,customGitBuildPath,customGitSSHKeyId,watchPaths
- Description: Saves Docker provider configuration for an application
- Input Schema:
{ "applicationId": "string", "dockerImage": "string|null" } - Annotations: Destructive
- Required Fields:
applicationId,dockerImage
- Description: Reads monitoring data for an application
- Input Schema:
{ "applicationId": "string" } - Annotations: Read-only, Idempotent
- Required Fields:
applicationId
- Description: Reads Traefik configuration for an application
- Input Schema:
{ "applicationId": "string" } - Annotations: Read-only, Idempotent
- Required Fields:
applicationId
- Description: Updates Traefik configuration for an application
- Input Schema:
{ "applicationId": "string", "traefikConfig": "string" } - Annotations: Destructive
- Required Fields:
applicationId,traefikConfig
- Description: Refreshes the token for an application
- Input Schema:
{ "applicationId": "string" } - Annotations: Non-destructive
- Required Fields:
applicationId
- Description: Cleans deployment queues for an application
- Input Schema:
{ "applicationId": "string" } - Annotations: Destructive
- Required Fields:
applicationId
- Description: Creates a new PostgreSQL database in Dokploy
- Input Schema:
{ "name": "string", "appName": "string", "databaseName": "string", "databaseUser": "string", "databasePassword": "string", "dockerImage": "string", "projectId": "string", "description": "string|null", "serverId": "string|null" } - Annotations: Creation tool (non-destructive)
- Required Fields:
name,appName,databaseName,databaseUser,databasePassword,projectId - Optional Fields:
dockerImage,description,serverId
- Description: Gets a specific PostgreSQL database by its ID in Dokploy
- Input Schema:
{ "postgresId": "string" } - Annotations: Read-only, Idempotent
- Required Fields:
postgresId
- Description: Updates an existing PostgreSQL database in Dokploy
- Input Schema: Complex schema with database configuration fields including name, credentials, resource limits, and Docker settings
- Annotations: Destructive
- Required Fields:
postgresId - Optional Fields: All database configuration fields (name, credentials, memory/CPU limits, etc.)
- Description: Removes/deletes a PostgreSQL database from Dokploy
- Input Schema:
{ "postgresId": "string" } - Annotations: Destructive
- Required Fields:
postgresId
- Description: Moves a PostgreSQL database to a different project
- Input Schema:
{ "postgresId": "string", "targetProjectId": "string" } - Annotations: Destructive
- Required Fields:
postgresId,targetProjectId
- Description: Deploys a PostgreSQL database in Dokploy
- Input Schema:
{ "postgresId": "string" } - Annotations: Destructive
- Required Fields:
postgresId
- Description: Starts a PostgreSQL database in Dokploy
- Input Schema:
{ "postgresId": "string" } - Annotations: Destructive
- Required Fields:
postgresId
- Description: Stops a PostgreSQL database in Dokploy
- Input Schema:
{ "postgresId": "string" } - Annotations: Destructive
- Required Fields:
postgresId
- Description: Reloads a PostgreSQL database in Dokploy
- Input Schema:
{ "postgresId": "string", "appName": "string" } - Annotations: Destructive
- Required Fields:
postgresId,appName
- Description: Rebuilds a PostgreSQL database in Dokploy
- Input Schema:
{ "postgresId": "string" } - Annotations: Destructive
- Required Fields:
postgresId
- Description: Changes the status of a PostgreSQL database
- Input Schema:
{ "postgresId": "string", "applicationStatus": "idle|running|done|error" } - Annotations: Destructive
- Required Fields:
postgresId,applicationStatus
- Description: Saves external port configuration for a PostgreSQL database
- Input Schema:
{ "postgresId": "string", "externalPort": "number|null" } - Annotations: Destructive
- Required Fields:
postgresId,externalPort
- Description: Saves environment variables for a PostgreSQL database
- Input Schema:
{ "postgresId": "string", "env": "string|null" } - Annotations: Destructive
- Required Fields:
postgresId - Optional Fields:
env
All tools include semantic annotations to help MCP clients understand their behavior:
-
Read-Only Tools (
readOnlyHint: true):project-all,project-one,application-oneapplication-readAppMonitoring,application-readTraefikConfigpostgres-one
-
Destructive Tools (
destructiveHint: true):project-update,project-remove- All application configuration, deployment, and lifecycle operations
- All provider configuration tools
- All PostgreSQL lifecycle, configuration, and management operations
-
Creation Tools (
destructiveHint: false):project-create,project-duplicate,application-createapplication-refreshTokenpostgres-create
-
Idempotent Tools (
idempotentHint: true):- All read-only operations
-
External API Tools (
openWorldHint: true):- All tools (interact with Dokploy API)
// 1. Create a project
{
"tool": "project-create",
"input": {
"name": "my-web-app",
"description": "My web application project"
}
}
// 2. Create an application in the project
{
"tool": "application-create",
"input": {
"name": "frontend",
"projectId": "project-id-from-step-1",
"description": "Frontend application"
}
}{
"tool": "application-saveGithubProvider",
"input": {
"applicationId": "app-id",
"owner": "my-username",
"repository": "my-repo",
"branch": "main",
"githubId": "github-integration-id",
"enableSubmodules": false,
"triggerType": "push"
}
}{
"tool": "application-deploy",
"input": {
"applicationId": "app-id"
}
}// 1. Create a PostgreSQL database
{
"tool": "postgres-create",
"input": {
"name": "user-database",
"appName": "user-db",
"databaseName": "users",
"databaseUser": "dbuser",
"databasePassword": "secure-password",
"projectId": "project-id",
"description": "User management database"
}
}
// 2. Deploy the database
{
"tool": "postgres-deploy",
"input": {
"postgresId": "postgres-id-from-step-1"
}
}
// 3. Configure external port
{
"tool": "postgres-saveExternalPort",
"input": {
"postgresId": "postgres-id",
"externalPort": 5432
}
}- All nullable fields can accept
nullvalues but must be provided if marked as required - Provider-specific tools use prefixed field names (e.g.,
gitlabBranch,giteaOwner) - Some endpoints in the original API contain typos (e.g.,
saveGitProdiver) which are preserved for compatibility - Resource limits in application updates accept string values (e.g., "512m", "1g")
- All tools include comprehensive error handling and validation