Skip to main content

Coolify's MCP Server Just Made Deploy-From-Chat Table Stakes: What 'Ask Claude to Ship It' Really Covers (and What It Doesn't)

10 min readDora NodaDora Noda
Share
On this page

The command that changes the category is one line long:

bash
claude mcp add coolify \
  -e COOLIFY_BASE_URL="https://your-coolify-instance.com" \
  -e COOLIFY_ACCESS_TOKEN="your-api-token" \
  -- npx @masonator/coolify-mcp@latest

Run it, open Claude Code, and type "deploy a Postgres 16 instance and connect it to my FastAPI app." An agent inventories your servers, provisions the database, wires the connection string into the app's environment, redeploys, and reports back — without you touching the Coolify dashboard once.

That loop, from chat sentence to running infrastructure on hardware you own, is what Coolify's MCP support put on the table in 2026, ahead of every other self-hosted PaaS. The question this post answers is what "support" actually covers — because the honest answer is a split, and the split is the whole story.

The scorecard up front: read-only native, full-power community, nothing elsewhere

SurfaceToolsCan it deploy?Auth model
Coolify native /mcp endpoint (v4.1.x)10 read-only toolsNo — inspect onlyInstance API token (auth:sanctum), server-side enable toggle
Community MCP servers (e.g. StuMason/coolify-mcp, 42 tools)List, create, deploy, env-var and lifecycle managementYes — full managementSame API token, plus COOLIFY_ALLOW_MUTATIONS / read-only operation modes
Dokploy / CapRover native MCPNoneNoN/A — third-party wrappers only

Read the table before the narrative: Coolify is genuinely first with a built-in agent surface, and that surface can look but not touch. Everything that mutates — the actual "ship it" — currently flows through community servers holding the same API token your dashboard uses. Both halves matter, and confusing them is how teams either under-trust the feature (it's read-only, who cares) or over-trust it (an agent with a god-token and no guardrails). Keep that split in mind; every section below is labeled against it.

What actually shipped: ten tools that can see everything and change nothing

Coolify's native MCP support landed in the v4.1.0 release line (upstream PR #9862), and its shape tells you exactly how carefully the maintainers thought about the blast radius. It registers a CoolifyServer at the /mcp endpoint, built on laravel/mcp, gated behind two switches: API access must be enabled on the instance first, and the MCP server itself has an explicit enable toggle in both the API and the UI.

Requests authenticate with the instance's existing API tokens under auth:sanctum middleware — no new identity system, no parallel credential universe to audit.

The tool inventory is deliberately narrow — ten read-only tools, and it is worth enumerating all of them, because "read-only" undersells how much situational awareness they hand an agent:

  • get_infrastructure_overview — the fleet at a glance
  • list_servers / get_server — which machines exist and their state
  • list_projects — project inventory
  • list_applications / get_application — app state and config
  • list_databases / get_database — database state and config
  • list_services / get_service — one-click service state

An agent with these ten tools can answer "what is running, where, and is it healthy" about your entire Coolify estate from inside a chat session. It cannot create, restart, redeploy, or delete a single thing. That is not a missing feature; it is the security posture.

The Model Context Protocol itself ships no built-in identity, no least-privilege enforcement, and no audit trail — as 2026's identity-security analyses have put it bluntly, once an agent connects, it operates with the access of whoever configured it. A read-only default is the only sane thing to bake into the box.

The write half of the ecosystem grew up outside the repo. The best-known community server, StuMason/coolify-mcp, exposes 42 tools covering the full lifecycle — provisioning, environment variables, deployments, service management — installable via the one-liner at the top of this post, with Claude Desktop one-click install and plain-JSON config for any other MCP client.

Crucially, the serious community servers converged on the same safety vocabulary the native side implies: a COOLIFY_ALLOW_MUTATIONS=false full-read-only mode here, a COOLIFY_OPERATION_MODE=read-only default there, policy-controlled variants that gate privileged actions behind explicit configuration. The ecosystem understood the assignment even where the protocol didn't: the token that can redeploy production should never be the default.

The worked example: "deploy Postgres 16 and connect my FastAPI app," step by step

Here is the promise from the title, executed as an agent would, with each step labeled for which MCP surface can actually perform it:

  1. Inventory. The agent calls get_infrastructure_overview and list_servers to learn which machines have capacity, then list_projects to find (or confirm) the project holding the FastAPI app. [NATIVE]
  2. Inspect the app. get_application returns the FastAPI service's current config — build pack, domains, existing environment variables — so the agent knows what "connected" must change. [NATIVE]
  3. Provision Postgres 16. The agent creates a new Postgres 16 database resource from Coolify's one-click service catalog and waits for it to become healthy. [NEEDS community server — native is read-only]
  4. Wire the connection. The agent reads the new database's connection credentials and writes them into the FastAPI app's environment (e.g. DATABASE_URL), creating or updating the variable including preview-deployment mirrors. [NEEDS community server]
  5. Deploy and verify. The agent triggers a redeploy of the FastAPI app, watches the deployment state, and confirms the app boots against the new database. [NEEDS community server]
  6. Report. The agent summarizes what changed — new database UUID, variables set, deployment ID — against the pre-change inventory from step 1, so a human can diff intent versus outcome. [NATIVE read-back + agent narration]

Two things to notice. First, steps 1, 2, and 6 — the observe-and-verify sandwich around the mutation — are exactly what the native ten tools cover. The shape is almost a least-privilege workflow drawn as product design: the built-in surface scopes the blast radius to seeing, the explicitly-installed surface does the touching, and verification reads back through the safe path.

Second, step 4 is where every real incident in this genre will live: an agent writing connection strings into an app's environment is an agent one hallucinated variable name away from pointing production at an empty database. The community servers that persist env changes server-side and mirror them to preview environments are doing load-bearing safety work here, and "which env vars did the agent set, and can I see the diff" belongs in every team's acceptance checklist before they hand this loop a production token.

What shipping first actually buys: the "just ask Claude to deploy it" crowd

As of mid-2026 the numbers behind Coolify's distribution advantage are stark: roughly 59,700 GitHub stars, a catalog of 280+ one-click services (databases, queues, tools — Postgres 16 and Ollama among them) deployable without leaving the dashboard, and an agent story no competitor can currently match with a straight face.

Back in March 2026, the Hacker News consensus was still "Currently Coolify & Dokploy are not designed for AI Agent auto deploy." That sentence is now half-wrong in the most strategically inconvenient way for everyone else: it is wrong about Coolify and still true about Dokploy and CapRover, neither of which ships a native MCP surface. The gap between "no agent story" and "ten built-in read-only tools plus a 42-tool community server a one-liner away" is the entire deploy-from-chat onboarding funnel, and Coolify owns it unopposed.

Mindshare compounds here faster than in ordinary feature races. The developer who connects Claude Code to their Coolify instance once — lists servers from chat, asks what version an app is on, has the agent check database health before morning coffee — has adopted a workflow, not a feature. Workflows create habits, habits create defaults, and defaults decide the next hundred infrastructure choices.

Every rival now has to answer not "do you have an MCP server" but "why should I move my agent workflow off the thing that already works." That is what shipping first bought: not a technical moat — ten read-only tools are replicable in a sprint — but the default position in a workflow developers are forming right now.

What a fast follower must build differently: five requirements, each with its failure mode

Replicating the tool list is the easy part. The hard part — and the part Coolify's single-tenant-first architecture arguably let it defer — is what the write path demands once agents act on shared or multi-tenant infrastructure. Any platform answering deploy-from-chat as table stakes needs all five of these, and each exists because a concrete 2026 failure mode already demonstrated the cost of skipping it:

  1. Read-only by default, mutations opt-in per tool. The community convention (COOLIFY_ALLOW_MUTATIONS=false, read-only operation modes) should be platform policy, not folklore: a freshly connected agent sees infrastructure and touches nothing until a human enables writes — ideally per tool, not one global "allow everything" switch. Failure mode it prevents: the 2026 crop of MCP-server CVEs — path-traversal-to-RCE chains in file-writing tools, unauthenticated remote execution via chained SSRF — all share the shape "a tool the operator never meant to expose could write." Tools that aren't registered can't be abused.
  2. Scoped tokens, not god-tokens. An agent deploying one project's FastAPI app should hold a credential authorizing that project — not the instance token that can delete every database on every server. Per-tool RBAC with tokens filtered at tools/list time is the established pattern. Failure mode: a compromised or confused agent with instance-wide credentials turns one project's deploy into fleet-wide damage.
  3. Always-on audit logging that attributes agent actions. Coolify itself shipped structured audit logging for API mutations in the same v4.1.0 release as native MCP — the platform clearly sees where this is going. The log must distinguish agent-initiated mutations from human ones (client ID, session, arguments), be append-only, and have no disable flag on the write path. Failure mode: "the agent deleted the database at 3 AM" is unanswerable without attribution — no what, no which session, no replay.
  4. Rollback semantics, not just redeploy. Triggering a fresh deploy is not undo: it doesn't restore the previous env-var set, the previous image pin, or the previous database state. A fast-follow MCP surface needs a first-class "return this app to the state before tool call X" operation referencing the audit log. Failure mode: the agent's bad deploy "fixes" forward into a state nobody has ever tested, because the last-known-good configuration was never captured as a restorable unit.
  5. Multi-tenant auth from day one. Coolify's model — one instance token, Sanctum auth, single-operator trust — fits a self-hoster managing their own box. A platform hosting strangers' workloads on shared fleets needs per-tenant isolation in the agent surface itself: tenant A's agent session must be structurally incapable of naming tenant B's resources, not merely instructed not to. Failure mode: prompt-level guardrails ("only manage your own apps") evaporate the moment an agent is jailbroken or misdirected; architectural isolation doesn't.

Notice the pattern: none of these is "more tools." The differentiator for the next MCP-native PaaS is not tool count — 42 beats 10 on a slide and means nothing without the five controls above. It is the governance around the tools. Whoever ships deploy-from-chat with per-tenant scoping, attributed audit logs, and real rollback doesn't just match Coolify's feature; they answer the enterprise objection that keeps agent-driven deploys out of every regulated shop.

The takeaway: chat is the new dashboard, governance is the new moat

Deploy-from-chat crossed from demo to default in 2026: the protocol is standard, the clients are everywhere, and at least one major self-hosted PaaS treats an agent as a first-class operator with a documented, toggleable, authenticated endpoint. Teams evaluating self-hosted platforms should now ask for the agent surface alongside the dashboard tour — what can it see, what can it touch, whose credentials does it hold, and where is the log. Vendors without an answer are selling a dashboard in a chat-driven world.

For teams that want this loop on infrastructure with multi-tenant isolation designed in from the start: Bex.co is the open-source, AI-native Render alternative — push a git repo, get a running HTTPS service on machines you own. Star the repo on GitHub or deploy your first app today.

Related articles

Give your agents a chain backend

Autonomous agents hit RPC endpoints very differently than people do. See what bex router handles on their behalf.

Read the agents guide