Dokku Mcp Server

by dokku-MCP

6 stars
284 downloads
Not rated
GitHub

About

Dokku MCP Server is a Model Context Protocol (MCP) server written in Go that exposes Dokku’s management capabilities to Large Language Models (LLMs). It allows AI assistants to interact with and manage a Dokku instance programmatically.

Details

Author
dokku-MCP
GitHub stars
6
Downloads
284
Categories
Other, AI

- MCP-compatible interface for Dokku management
- Implemented commands for apps, config, deployments, plugins, proxies, SSH keys, and more
- Supports async deployments with IDs and background status
- Plugin-based architecture following Domain-Driven Design
- Transport modes: stdio (default) and SSE (HTTP-based)
- Security via blacklist environment variable DOKKU_MCP_SECURITY_BLACKLIST
- Configuration via YAML file or environment variables (prefix DOKKU_MCP_)

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name Dokku Mcp Server
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Download the prebuilt binary or build from source, configure SSH access to your Dokku host via a YAML file or environment variables, then add the server’s command to your MCP client configuration (e.g., .cursor/mcp.json or claude_desktop_config.json). Run dokku-mcp to start the server, or use make inspect for a quick MCP Inspector playground.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "dokku mcp server": {
            "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"
                }
            }
        }
    }
}

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"
        }
    }
}

Dokku MCP Server

Model Context Protocol (MCP) server for Dokku, written in Go.

Version: v0.3.0

This server exposes Dokku's management capabilities through the standardized Model Context Protocol (MCP), allowing Large Language Models (LLMs) to interact with and manage a Dokku instance.

⚠️ Early Development: This project is in its early stages. Breaking changes are expected, and it is not recommended for production use.

MCP Badge

Try it now — turn your Dokku instance into an AI-manageable PaaS

Follow Installation or grab a prebuilt binary to get started in minutes with cursor, claude-code, goose and all agentic tools which support mcp.

Or ``make start` if you already have go locally.

MCP Inspector Playground

For a quick tour of the server without wiring up a full MCP client, use the dedicated make target:

make inspect

It builds the binary (if needed), launches the MCP Inspector CLI, and connects it to the server in stdio mode. Inspector prints a local URL—open it in your browser to browse resources, prompts, and tools, or to issue ad-hoc calls. This is a great way to validate your setup before wiring Dokku MCP into Cursor, Claude, other IDE or internal tools.

Connecting MCP Clients

The server can be used with any MCP-compatible client.

Add the following to your zed, .cursor/mcp.json, windsurf, claude_desktop_config.json or .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"
      }
    }
  }
}
Remember to replace the
command path with the absolute path to the binary.

Highlights

- Core: server info and plugin list resources; optional server logs tool.
- Apps: create, deploy (Git URL + ref), scale, env config, status; app list resource; troubleshooting prompt.
- Deployments: async deploys with IDs and background status.

Roadmap

Submit an issue for re-priorizing proposal

NEXT

- Build-level log: expose build output for deploy invocations.
- App-level log: expose runtime logs.
- Inter-plugin communication: allow inter-plugin events management, Eventbus maybe Watermill.
- User management: ssh-keys:add, boundaries and prompting.
- Service plugins: service templating, postgresql first implementation.

IDEAS

- SSH transactions / long-running connections: streaming logs and interactive operations.
- Enforce allow-list: enforce least-principles with explicit allow-list over block-list.

Dokku integrations

- Implemented: apps:list, apps:info, apps:create, apps:destroy, apps:exists, apps:report, config:show, config:set, ps:scale, ps:report, logs, plugin:list, plugin:install, plugin:uninstall, plugin:enable, plugin:disable, plugin:update, version, proxy:report, proxy:set, scheduler:report, scheduler:set, git:report, git:set, ssh-keys:list, ssh-keys:remove, registry:logout, logs:set.
- Missing/partial:
ssh-keys:add, registry:login/registry listing, configuration key enumeration, Services plugin, SSL plugin, streaming/attach sessions.

Contribute — report issues or propose features

Open an issue or read Contributing.

🪿 Get Help from Goose AI within issues

Need help with the dokku-mcp project? Goose AI is available to assist you! Simply tag your GitHub issues or pull requests with the :goose label, and Goose AI will automatically be notified to help with development, debugging, feature implementation, and other project-related tasks.

Example of Goose AI in action
Another example

Table of Contents

- Installation
- Configuration
- Local Dokku Development
- Connecting MCP Clients
- Development
- Development Setup
- Makefile Commands
- Testing
- Architecture
- Project Structure
- Contributing
- License

Installation

Pre-built Binaries

Download the latest release for your platform:

``bash

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.