About Caddy MCP
Caddy MCP is an MCP server published by lum8rjack in the Developer Tools category: caddy plugin to securely tunnel MCP servers over QUIC. Dial-out from private networks, MCP-aware tool/resource ACLs, SSE support — all through your existing Caddy reverse proxy. It has been installed 0 times through Conduid.
The repository has 5 stars and 1 forks, with the last commit a year ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues (0) before depending on it in production.
Install
npx caddy-mcpThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about Caddy MCP
Powered by Claude · Grounded in docs
Security checks
- ·README presentNot checked yet.
- ·License declaredNot checked yet.
- ·Tests presentNot checked yet.
- ·Dependencies pinnedNot checked yet.
- ·No dynamic code executionNot checked yet.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
README
caddy-mcp
Overview
caddy-mcp is a server that provides a Model Context Protocol (MCP) interface for managing a Caddy server instance using the Caddy API. It exposes tools for retrieving, updating, and converting Caddy configurations (in JSON, Caddyfile, YAML, or Nginx formats) and for monitoring reverse proxy upstreams. The server can run over different transports: stdio, SSE, or HTTP stream.
Tools
- get_caddy_config - Get the current Caddy server configuration in JSON format
- update_caddy_config - Update the Caddy server configuration by providing a full JSON configuration
- convert_caddyfile_to_json - Convert a Caddyfile configuration to JSON format
- convert_nginx_to_json - Convert an Nginx configuration to Caddy JSON format
- convert_yaml_to_json - Convert a YAML configuration to Caddy JSON format
- upstream_proxy_statuses - Get the current status of configured reverse proxy upstreams as JSON
Build Steps
-
Prerequisites:
- Go 1.24+ installed (download)
-
Clone the repository:
git clone https://github.com/lum8rjack/caddy-mcp.git cd caddy-mcp -
Build the server:
make # or go build -o caddy-mcp .This will produce a
caddy-mcpbinary in the project root.
Running the MCP Server
You can run the server with different transports and ports:
./caddy-mcp -h
Usage of ./caddy-mcp:
-port int
Port to run the MCP server on (default 7000)
-transport string
The transport to use for the MCP server (stdio, sse, httpstream) (default "stdio")
-url string
The URL of the caddy server (default "http://127.0.0.1:2019")
Example MCP Settings:
{
"mcpServers": {
"caddy-mcp": {
"command": "~/caddy-mcp",
"args": ["-transport", "stdio", "-url", "http://127.0.0.1:2019"]
}
}
}
Caddyfile Example
A sample Caddyfile to test with that exposed the admin API:
{
admin :2019
}
:8080 {
respond "I am 8080"
}
:8081 {
respond "I am 8081"
}
Adding Additional Caddy Modules
If you are using a custom-built version of Caddy with extra modules (for example, the Cloudflare DNS module), you need to add the corresponding Go module to your project. This ensures the MCP server can work with your custom Caddy build.
Steps:
-
Add the module import to
main.go:For example, to add the Cloudflare DNS module, add the following import (anywhere among the imports, typically with other Caddy modules):
import _ "github.com/caddy-dns/cloudflare" -
Update dependencies:
Run:
go mod tidy -
Rebuild the server:
make # or go build -o caddy-mcp .
This process can be repeated for any other Caddy modules you need. For a list of official and community modules, see the Caddy Modules Directory.
README mirrored from the source repository 20 days ago. The original is authoritative.