Skip to main content
Glama
vcode-sh

@vibetools/dokploy-mcp

by vcode-sh

@vibetools/dokploy-mcp

npm version License: MIT Node >= 24

MCP server for Dokploy that works cleanly with Codex, Cursor, Claude Code, and Claude Desktop.

Three tools up front. Hundreds of Dokploy procedures underneath. Less schema tax, more actual deploys.

Most MCP servers treat your context window like free landfill. This one starts with search, execute, and list_profiles, then earns the rest.

What that buys you:

  • compact default surface instead of hundreds of raw endpoint tools

  • generated, broad Dokploy coverage underneath

  • real workflows for deploys, compose, logs, domains, databases, and profiles

  • local stdio plus hosted HTTP metadata in the same package

Need proof instead of a sales monologue? Start with docs/live-e2e-proof.md.

Current Fact Snapshot

  • Generated API procedures in the pinned catalog: 544

  • Generated tags: 50

  • Default public MCP tools: 3 (search, execute, list_profiles)

  • Default tools/list footprint from the current budget check: about 1,681 tokens (6,723 bytes)

  • Reduction versus the classic endpoint-per-tool baseline (92,354 tokens): 98.2%

Classic endpoint-per-tool baseline

Current Code Mode default

Tool definitions sent

about 92,354 tokens

about 1,681 tokens

Public MCP tools

hundreds of endpoint schemas

3

Context window tax

wide schema dump

compact fixed surface

Related MCP server: Dokploy MCP Server

Quick Start

Get your API key from Dokploy Settings > Profile > API/CLI.

For env-based setup, start from .env.example.

If your client uses a JSON-style MCP config, this is the whole block:

{
  "mcpServers": {
    "dokploy": {
      "command": "npx",
      "args": ["@vibetools/dokploy-mcp"],
      "env": {
        "DOKPLOY_URL": "https://panel.example.com",
        "DOKPLOY_API_KEY": "dokp_..."
      }
    }
  }
}

If your client uses CLI-based MCP management:

# Codex
codex mcp add dokploy \
  --env DOKPLOY_URL=https://panel.example.com \
  --env DOKPLOY_API_KEY=dokp_... \
  -- npx @vibetools/dokploy-mcp

# Claude Code
claude mcp add --transport stdio \
  -e DOKPLOY_URL=https://panel.example.com \
  -e DOKPLOY_API_KEY=dokp_... \
  dokploy -- npx @vibetools/dokploy-mcp

Already authenticated with the Dokploy CLI or local dokploy-mcp config?

You may not need the env block at all.

Using multiple Dokploy organizations?

Keep one compact MCP server and configure profiles with DOKPLOY_PROFILES_JSON:

{
  "mcpServers": {
    "dokploy": {
      "command": "npx",
      "args": ["@vibetools/dokploy-mcp"],
      "env": {
        "DOKPLOY_PROFILES_JSON": "{\"redivo\":{\"url\":\"https://redivo.example.com\",\"apiKey\":\"dokp_redivo\"},\"personal\":{\"url\":\"https://personal.example.com\",\"apiKey\":\"dokp_personal\"},\"mezon\":{\"url\":\"https://mezon.example.com\",\"apiKey\":\"dokp_mezon\"}}"
      }
    }
  }
}

Use list_profiles to see the available default and named profile targets without exposing API keys. Pass profile to execute when you want a named profile instead of the default target:

{
  "profile": "redivo",
  "code": "return await dokploy.project.all()"
}

search also accepts an optional profile argument for profile-name validation while preserving the same compact catalog behavior.

Hosted HTTP sessions keep their request-scoped remote credentials bound to the session. Named local profiles are not exposed there.

Want the wizard path instead of manual config?

npx @vibetools/dokploy-mcp setup

Pick Your Client

What You Actually Get

  • search: discover Dokploy procedures and contracts

  • execute: run multi-step workflows in one sandboxed call

  • list_profiles: list configured Dokploy profile names and URLs without secrets

  • optional raw mode: one tool per procedure

  • optional hybrid mode: Code Mode plus selected raw tools

  • optional hosted HTTP path with server.json metadata and header-based remote auth

If you are new, use the default mode and stop trying to outsmart a problem that already has a working shape.

Read These Next

CLI

npx @vibetools/dokploy-mcp
npx @vibetools/dokploy-mcp serve-stdio
npx @vibetools/dokploy-mcp serve-http
npx @vibetools/dokploy-mcp setup
npx @vibetools/dokploy-mcp version

Development

git clone https://github.com/vcode-sh/dokploy-mcp.git && cd dokploy-mcp
npm install
npm run build
npm run lint
npm test
npm run docs:check:facts

The rest lives in docs, where it belongs.

Credits

Forked from Dokploy/mcp. Started at 67 tools, mass-refactored to 377, then rebuilt the whole thing into an architecture that makes the tool count irrelevant.

Mauricio Siu built Dokploy itself -- the PaaS this server talks to. Without the platform, this is a very elaborate way to POST into the void.

Henrique Andrade wrote the original MCP server. 15 commits, every PR merged. The kind of contributor who closes issues instead of opening them.

Contributors who shaped the original: Joshua Macauley -- lucasleal-developer -- Nour Eddine Hamaidi -- Corey -- Azil0ne

Unmerged PRs are still blueprints. That's how open source works -- stolen inspiration with better commit messages.

License

MIT - Vibe Code

Original work by Henrique Andrade under Apache 2.0 -- see LICENSE-ORIGINAL.

Available Tools

3 tools
executeExecute Dokploy WorkflowA

Run JavaScript code or a guided Dokploy workflow. In code mode, write bare JS against global dokploy and helpers without wrapping it in a function. In workflow mode, deploy-application can resolve a target, choose preview vs apply, collect bounded rollout options, and build a bounded plan when sampling and elicitation are enabled. When MCP tasks are enabled, execute also supports polling and cancellation for long-running runs. Known Dokploy IDs yield reusable dokploy://... resource links, and search helps discover procedures.

ParametersJSON Schema
NameRequiredDescriptionDefault
codeNoJavaScript code. `dokploy` and `helpers` are globals -- do NOT wrap in a function. Simple: `await dokploy.project.all()`. Multi-step: `const app = await dokploy.application.one({ applicationId: "abc" }); return app.name`. dokploy.<module>.<method>(params) calls the Dokploy API. helpers: sleep(ms), assert(cond, msg), pick(obj, keys), limit(arr, n).
workflowNoOptional guided workflow mode. Currently supports `deploy-application` with interactive target resolution, preview/apply selection, bounded rollout options, and an MCP-native plan when phase 3 sampling and elicitation are enabled.
profileNoDokploy profile name. Required when DOKPLOY_PROFILES_JSON configures multiple profiles.

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The description discloses key behavioral traits such as code execution, workflow modes, polling/cancellation for long-running runs, and resource links. The annotation 'openWorldHint: true' is aligned, and the description adds useful context beyond annotations, though it could be more explicit about side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is well-structured with clear separation of code mode and workflow mode. While it is relatively long, the length is justified by the complexity of the tool. A minor improvement could be front-loading the core purpose more succinctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (nested objects, no output schema), the description covers modes, parameters, globals, and workflow features. It mentions resource links and search, but lacks explicit details on return values or error handling, which is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% with detailed parameter descriptions. The tool description goes beyond the schema by explaining the purpose of globals (dokploy, helpers), usage patterns, and workflow options like target resolution and rollout. This adds significant value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool runs JavaScript code or a guided Dokploy workflow, distinguishing two modes (code and workflow). It provides specific details about each mode, but does not explicitly differentiate from sibling tools like list_profiles or search.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use each mode (code vs workflow) but lacks explicit guidance on when not to use the tool or when to prefer siblings. It mentions specific workflow capabilities but does not set clear boundaries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_profilesList Dokploy ProfilesA
Read-onlyIdempotent

List the available Dokploy profiles, including default and named targets, without exposing API keys. Returns profile names, normalized Dokploy API URLs, and config sources.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly and idempotent behavior. The description adds value by stating it does not expose API keys and describes the returned data, providing safety context beyond annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with 'List the available Dokploy profiles'. Every part is necessary and no waste.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters, strong annotations, and no output schema, the description sufficiently explains purpose and return content. No missing information.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters exist (0 params), so schema coverage is 100%. Baseline for zero parameters is 4, and the description adds no param information but does not need to.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool lists available Dokploy profiles, including default and named targets, and specifies return fields (names, URLs, config sources). It distinguishes from siblings like 'execute' and 'search'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for listing profiles but offers no explicit guidance on when to use this tool versus alternatives like 'execute' or 'search'. No exclusion criteria or context provided.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 3 tool updatesv3.1.2
    • First observedexecute
    • First observedlist_profiles
    • First observedsearch

TDQS

A3.6/5.0
Disambiguation4/5

Each tool targets a different aspect: execute handles code and workflows, list_profiles lists profiles, and search queries the API catalog. Occasional overlap exists (execute and search both reference workflows) but purposes are mostly distinct.

Naming Consistency2/5

Naming is inconsistent: execute (bare verb), list_profiles (verb_noun with snake_case), search (bare verb). There is no clear pattern across the tool set.

Tool Count2/5

With only 3 tools, the server feels under-scoped for a platform like Dokploy that typically requires managing applications, deployments, and configurations. A broader tool set is expected.

Completeness2/5

The tool set lacks essential operations such as creating, updating, or deleting applications or deployments. While execute and search provide some flexibility, core lifecycle management is absent.

Maintenance

ActivitySlowing
ResponsivenessWithin a week

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI assistants to manage cloud infrastructure through natural language by providing a unified interface to the Dokploy platform. Supports Docker containers, applications, databases, domains, monitoring, and deployment operations through conversational commands.
    29
    1
    -
  • A
    license
    Not graded
    quality
    F
    maintenance
    Enables AI models to interact programmatically with Dokploy servers to manage projects, applications, and deployment services. It provides 67 specialized tools for direct Dokploy API operations through the Model Context Protocol.
    106
    Apache 2.0
  • F
    license
    Not graded
    quality
    C
    maintenance
    Wraps the Dokploy REST API to expose Dokploy operations as MCP tools for managing projects, applications, compose stacks, deployments, domains, and environment variables.
    15
    1
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/vcode-sh/dokploy-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server