# Dokku MCP Server (mcpb · dokku-mcp.mcpb)

MCP server for Dokku: let LLMs create, deploy, scale, configure and inspect Dokku apps.

- Trust score: 42/100 (low)
- Change this week: +33
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-10-18

## Components

- mcpb · `dokku-mcp.mcpb`: 42/100 (this document), [markdown](https://verifymcp.io/servers/dokku-mcp-dokku-mcp/dokku-mcp.md), [page](https://verifymcp.io/servers/dokku-mcp-dokku-mcp/dokku-mcp)

## Channel facts

- Registry: `mcpb`
- Package: `https://github.com/dokku-MCP/dokku-mcp/releases/download/v0.5.0/dokku-mcp.mcpb`
- Transport: `stdio`
- SHA-256: `45f5843d34cac159b9b51e65641f90a4f9e5bf6912c342bc271c3b8b3ce04863`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-10-18.

- **Supply Chain Security**: 0/100
  - No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.
  - Known CVEs could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).
  - Install-script risk not yet assessed.
  - Dependency health could not be checked: we found no dependency list to check in this bundle: either it runs a compiled binary, whose bundled manifests we do not read, or none of the package.json, requirements.txt, pyproject.toml or uv.lock files it ships for its runtime declares a dependency we can read (a requirements.txt that only points at a setup.py project, a local path, or a nested requirements file we cannot follow counts as none).
- **Provenance & Transparency**: 45/100
  - Source repository is publicly reachable at the declared URL.
  - Provenance check failed: no build-provenance attestation is published.
  - Clear OSI-approved license (Apache-2.0).
  - Actively maintained (last published 9 days ago).
  - Disclosure check failed: no security disclosure policy was found in the source repository.
- **Schema Quality & AI Usability**: 82/100
  - 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).
  - AI-judged instruction clarity (good).
  - Tool/resource definitions use about 1808 tokens (~56/item across 32 items; 27 tools + 5 resources), lean.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 0/100
  - Stability not yet verified: not enough scan history yet (needs a 30-day window).
- **Tool Coverage**: 100/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 100% of tool parameters carry a description.
  - Structured output schemas are declared (37% of tools); any adoption earns full credit.
- **Tool Safety**: 96/100
  - No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.
  - 5 of 6 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "get_failed_deploy_logs" implies "deploy" and declares readOnlyHint instead, contradicting what its own name says it does.
  - An AI judge read all 29 captured unit(s) of tool text and found none that tries to manipulate the model reading it.
- **Capabilities**: 100/100
  - Implements a current MCP spec version (2026-07-28).

**Unverified: 2 categories.** Categories scored 0 because we could not verify them: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

## Install

### How do I install the Dokku MCP Server server?

Dokku MCP Server ships as an MCPB bundle, a single file you download and open in an MCP host that supports MCPB bundles, such as Claude Desktop. The host reads the launch command from the bundle's own manifest, so there is no command to copy. Before opening it, check the file's SHA-256 matches the one the MCP registry declares for it, 45f5843d34cac159b9b51e65641f90a4f9e5bf6912c342bc271c3b8b3ce04863; the commands to do that are on this page. If it does not match, do not open it.

- Download bundle: `https://github.com/dokku-MCP/dokku-mcp/releases/download/v0.5.0/dokku-mcp.mcpb`
- SHA-256: `45f5843d34cac159b9b51e65641f90a4f9e5bf6912c342bc271c3b8b3ce04863`

### Verify on macOS / Linux

```bash
echo "45f5843d34cac159b9b51e65641f90a4f9e5bf6912c342bc271c3b8b3ce04863  dokku-mcp.mcpb" | shasum -a 256 -c
```

### Verify on Windows (PowerShell)

```powershell
(Get-FileHash -Algorithm SHA256 .\dokku-mcp.mcpb).Hash -eq "45f5843d34cac159b9b51e65641f90a4f9e5bf6912c342bc271c3b8b3ce04863"
```

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-10-14 (score 42, +33)

- [security improvement] Injection markers: unverified → pass
- [security] First check of Judged manipulation: pass
- [security] Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window).
- [functional improvement] Tool coverage: unverified → 100
- [functional improvement] Schema quality: unverified → 100
- [functional improvement] MCP protocol: unverified → pass
- [functional] First check of Schema quality: fail
- [functional] First check of Tool coverage: 37
- [functional] First check of Schema quality: pass
- [functional] First check of Destructive annotations: 83
- [functional] First check of Schema quality: good
- [functional] First check of Tool coverage: 100

### 2026-10-10 (score 9)

First indexed and scored.

## MCP tools (27)

### `add_ssh_key` (~107 tokens)

Grant a public key push access to every app on this Dokku server. Only call this when the user explicitly asked to give someone access

Input parameters:

- `allow_admin` (boolean): Allow a name containing "admin". Dokku lets such keys add further keys remotely
- `name` (string, required): Unique key name, e.g. the person's username
- `public_key` (string, required): OpenSSH public key line, e.g. "ssh-ed25519 AAAA... user@host"

### `configure_app` (~74 tokens)

Set environment variables for an application

Input parameters:

- `app_name` (string, required): Name of the application to configure
- `config` (object, required): Environment variables as key-value pairs. Keys must be valid identifiers; values may contain any characters
- `restart` (boolean): Restart the application so it picks up the new values (default true)

### `create_app` (~45 tokens)

Create a new, empty Dokku application. Deploy code to it with deploy_app

Input parameters:

- `name` (string, required): Application name (lowercase, alphanumeric, hyphens allowed)

### `create_service` (~72 tokens)

Create a datastore service. Link it to an app with link_service to inject its connection URL

Input parameters:

- `image_version` (string): Optional image tag, e.g. "17" for postgres:17
- `name` (string, required): Name of the new service
- `service_type` (string, required): Datastore type

### `deploy_app` (~94 tokens)

Deploy an application from a Git repository. Returns immediately with a deployment_id; the build continues in the background, so poll get_deployment_status until it is done

Input parameters:

- `app_name` (string, required): Name of the application to deploy
- `git_ref` (string): Git reference to deploy (branch, tag, or commit). Defaults to main
- `repo_url` (string, required): URL of the Git repository to deploy from

Output parameters:

- `app_name` (string)
- `deployment_id` (string): Pass to get_deployment_status to follow the build
- `git_ref` (string)
- `message` (string)
- `status` (string)

### `destroy_service` (~76 tokens)

Permanently delete a datastore and ALL of its data. Unlink it from every app first. Only call this when the user explicitly asked for it

Input parameters:

- `confirm_name` (string, required): Repeat the service name to confirm the deletion
- `name` (string, required): Name of the service
- `service_type` (string, required): Datastore type

### `follow_runtime_logs` (~108 tokens)

Watch an application's logs live for a few seconds, e.g. while reproducing a request or after a deploy. Lines are also streamed as progress notifications when the client sends a progress token. Use get_runtime_logs for past logs

Input parameters:

- `app_name` (string, required): Name of the application
- `max_lines` (integer): Stop after this many lines (default and max 2000)
- `seconds` (integer): How long to follow the logs (default 15, max 60)

Output parameters:

- `app_name` (string)
- `lines` (null|array)
- `seconds` (integer): How long the logs were actually followed, in whole seconds
- `truncated` (boolean): True when max_lines was reached before the time ran out

### `get_app_status` (~29 tokens)

Get comprehensive status information for an application

Input parameters:

- `app_name` (string, required): Name of the application

### `get_deployment_status` (~50 tokens)

Get the status of a deployment started with deploy_app. Poll until done is true. Completed deployments are kept for a limited time.

Input parameters:

- `deployment_id` (string, required): Deployment ID returned by deploy_app

Output parameters:

- `app_name` (string)
- `build_log_tail` (string): Last part of the build output
- `completed_at` (null|string)
- `created_at` (string)
- `done` (boolean): True once the deployment reached a final status
- `duration` (string)
- `error` (string)
- `git_ref` (string)
- `id` (string): Deployment identifier
- `status` (string): One of pending, running, succeeded, failed, rolled_back

### `get_failed_deploy_logs` (~52 tokens)

Retrieve the logs of the containers from an application's last failed deploy, e.g. when a new release crashed at boot or failed its healthchecks

Input parameters:

- `app_name` (string, required): Name of the application

### `get_registry_report` (~44 tokens)

Show Docker registry settings (server, image repository, push-on-release) for an app or globally

Input parameters:

- `app_name` (string): Application; omit for the global settings

Output parameters:

- `app_name` (string): Empty for the global report
- `report` (object)

### `get_runtime_logs` (~54 tokens)

Retrieve runtime logs from a Dokku application

Input parameters:

- `app_name` (string, required): Name of the application
- `lines` (integer): Number of log lines to retrieve (default: 100, max: 1000)

Output parameters:

- `app_name` (string)
- `lines` (integer): Number of lines requested
- `logs` (string)

### `get_service_info` (~46 tokens)

Get a datastore's status, version and linked applications. Credentials are masked

Input parameters:

- `name` (string, required): Name of the service
- `service_type` (string, required): Datastore type

Output parameters:

- `info` (object): Service report; passwords are masked
- `linked_apps` (null|array)
- `name` (string)
- `service_type` (string)

### `get_service_logs` (~43 tokens)

Get the last 100 log lines of a datastore container

Input parameters:

- `name` (string, required): Name of the service
- `service_type` (string, required): Datastore type

### `link_service` (~115 tokens)

Link a datastore to an application. Dokku sets <ALIAS>_URL on the app (DATABASE_URL, REDIS_URL, ... by default) and restarts it unless no_restart is true

Input parameters:

- `alias` (string): Environment variable prefix, e.g. BLUE_DATABASE sets BLUE_DATABASE_URL
- `app_name` (string, required): Application to link
- `name` (string, required): Name of the service
- `no_restart` (boolean): Do not restart the application
- `service_type` (string, required): Datastore type

### `list_deployments` (~50 tokens)

List deployments tracked by this server, most recent first

Input parameters:

- `active_only` (boolean): Only list deployments that are still running
- `app_name` (string): Only list deployments of this application

Output parameters:

- `deployments` (null|array)

### `list_services` (~38 tokens)

List datastore services (postgres, redis, ...) and which datastore plugins are installed

Input parameters:

- `service_type` (string): Only list services of this type

Output parameters:

- `installed_types` (null|array): Datastore plugins installed on the server
- `services` (object): Service names by datastore type

### `list_ssh_keys` (~28 tokens)

List the SSH keys (name and fingerprint) allowed to deploy to this Dokku server

Output parameters:

- `keys` (null|array)

### `registry_login` (~97 tokens)

Store Docker registry credentials on the Dokku server, for one app or globally. Prefer a scoped access token over an account password; it is sent over stdin, never on the command line

Input parameters:

- `app_name` (string): Application; omit to log in globally
- `password` (string, required): Password or access token
- `server` (string, required): Registry host, e.g. ghcr.io
- `username` (string, required): Registry username

### `registry_logout` (~51 tokens)

Remove stored Docker registry credentials, for one app or globally

Input parameters:

- `app_name` (string): Application; omit to log out globally
- `server` (string, required): Registry host, e.g. ghcr.io

### `remove_ssh_key` (~37 tokens)

Revoke an SSH key's access to this Dokku server

Input parameters:

- `name` (string, required): Key name from list_ssh_keys

### `restart_app` (~27 tokens)

Restart all processes of an application

Input parameters:

- `app_name` (string, required): Name of the application

### `rollback_app` (~103 tokens)

Redeploy an earlier, known-good Git reference. Dokku keeps no release history, so this deploys git_ref from the repository of the last deploy_app (or repo_url). Returns a deployment_id to follow with get_deployment_status

Input parameters:

- `app_name` (string, required): Name of the application
- `git_ref` (string, required): Branch, tag or commit to redeploy
- `repo_url` (string): Repository to deploy from; defaults to the last deployed repository

Output parameters:

- `app_name` (string)
- `deployment_id` (string): Pass to get_deployment_status to follow the build
- `git_ref` (string)
- `message` (string)
- `status` (string)

### `scale_app` (~57 tokens)

Scale application processes

Input parameters:

- `app_name` (string, required): Name of the application to scale
- `instances` (number, required): Number of instances to scale to
- `process_type` (string): Process type to scale (web, worker, etc.)

### `start_app` (~28 tokens)

Start all processes of a stopped application

Input parameters:

- `app_name` (string, required): Name of the application

### `stop_app` (~34 tokens)

Stop all processes of an application; it goes offline until start_app

Input parameters:

- `app_name` (string, required): Name of the application

### `unlink_service` (~70 tokens)

Unlink a datastore from an application, removing its connection URL from the app

Input parameters:

- `app_name` (string, required): Application to unlink
- `name` (string, required): Name of the service
- `no_restart` (boolean): Do not restart the application
- `service_type` (string, required): Datastore type

## Diagnostics

Captured diagnostic sections: Provenance. The full working is on the page: https://verifymcp.io/servers/dokku-mcp-dokku-mcp/dokku-mcp#diagnostics

## Score history

- 2026-10-18: 42
- 2026-10-17: 42
- 2026-10-16: 42
- 2026-10-15: 42
- 2026-10-14: 42
- 2026-10-13: 9
- 2026-10-12: 9
- 2026-10-10: 9

## Common questions

### What is the Dokku MCP Server server?

Dokku MCP Server is listed in the public MCP registry as io.github.dokku-MCP/dokku-mcp. MCP server for Dokku: let LLMs create, deploy, scale, configure and inspect Dokku apps. This page covers its MCPB bundle (https://github.com/dokku-MCP/dokku-mcp/releases/download/v0.5.0/dokku-mcp.mcpb).

### Is the Dokku MCP Server server safe to use?

Dokku MCP Server scores 42 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

### What tools does the Dokku MCP Server server expose?

Dokku MCP Server exposes 27 tools: add_ssh_key, configure_app, create_app, create_service, deploy_app, and 22 more. Their descriptions and schemas cost roughly 1,629 tokens of context every time the server is loaded.

### What licence is the Dokku MCP Server server under?

Dokku MCP Server declares the Apache-2.0 licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.

## Links

- Repository: https://github.com/dokku-MCP/dokku-mcp
- Changelog RSS feed: https://verifymcp.io/servers/dokku-mcp-dokku-mcp/dokku-mcp.xml
- Changelog JSON feed: https://verifymcp.io/servers/dokku-mcp-dokku-mcp/dokku-mcp.json
- HTML version of this page: https://verifymcp.io/servers/dokku-mcp-dokku-mcp/dokku-mcp
