CaddyUI MCP
Provides tools to inspect and manage Caddy reverse proxy configuration via CaddyUI, including proxy hosts, redirection hosts, raw routes, and TLS certificates.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@CaddyUI MCPlist all proxy hosts"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
CaddyUI MCP
An MCP server for CaddyUI — the self-hosted web UI for the Caddy reverse proxy. It lets an MCP client (Claude, etc.) inspect and manage your Caddy configuration in natural language: proxy hosts, redirection hosts, raw routes, and TLS certificates.
It wraps CaddyUI's stable, versioned REST API under /api/v1 (added in CaddyUI v2.13),
authenticating with an API token (Authorization: Bearer <token>). CaddyUI's own SQLite DB
is the source of truth; it pushes the generated config to Caddy's admin API — so this server
talks to CaddyUI, not to Caddy directly.
Tools
Resource | Tools |
Servers |
|
Proxy hosts |
|
Redirection hosts |
|
Raw routes |
|
Certificates |
|
Status (read-only) |
|
Create/update tools take a JSON config object. The proxy-host model has 200+ optional
fields, so the intended workflow is get_* an existing object, then modify and re-send —
the server's instructions tell the LLM to do exactly that.
Multi-server
CaddyUI can centrally manage several Caddy instances, and every resource is scoped to one
server. Almost every tool takes an optional server_id; omitting it targets CaddyUI's
default server (1), which may be empty even when other servers are full. Call
list_caddy_servers first — it probes the server ids and reports which hold proxy hosts
(with sample domains so you can tell them apart) — then pass the chosen server_id to the
other tools. (Server selection uses CaddyUI's caddyui_server cookie; there is no documented
API parameter for it.)
Related MCP server: @yawlabs/caddy-mcp
Configuration
Config is via environment variables (12-factor). Copy .env.example to .env:
Variable | Required | Description |
| yes | CaddyUI base URL, e.g. |
| yes | API token minted in CaddyUI at |
| no | Port for the web entrypoint (default |
| no |
|
Getting a token
In CaddyUI, open API Tokens (/api-tokens), create a token with the scope you want, and
copy it (shown once). For full read+write management, use full.
Run with Docker
cp .env.example .env # then set CADDYUI_URL and CADDYUI_TOKEN
docker compose up -d --build
docker compose ps # STATUS should become "healthy"The server listens on :8080 and serves MCP over Streamable HTTP at
http://<host>:8080/mcp. The container HEALTHCHECK performs a full MCP handshake and calls
list_proxy_hosts, so it only reports healthy when CaddyUI is actually reachable and the
token works (an empty CaddyUI still counts as healthy).
Once the registry image is published, pin it in compose.yaml:
image: ghcr.io/loryanstrant/caddyui-mcp:latestConnect an MCP client
Point your client at the Streamable HTTP endpoint (note: /mcp, no trailing slash):
{
"mcpServers": {
"caddyui": { "type": "http", "url": "http://<host>:8080/mcp" }
}
}For a stdio client, run caddyui-mcp (instead of the web entrypoint) with the same env.
Develop
make install-dev # venv + deps
make check # lint + format-check + typecheck + test
# live tests against a real CaddyUI (creates and deletes a throwaway proxy host):
CADDYUI_URL=https://caddyui.example.com CADDYUI_TOKEN=cadu_... .venv/bin/pytest -m liveLicense
MIT.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/loryanstrant/CaddyUI-MCP'
If you have feedback or need assistance with the MCP directory API, please join our Discord server