{
"mcpServers": {
"caddy-mcp-server": {
"command": "<see-readme>",
"args": []
}
}
}No install config available. Check the server's README for setup instructions.
Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
MCP server for Caddy web server management
Is it safe?
No package registry to scan.
No authentication — any process on your machine can connect.
Apache-2.0. View license →
Is it maintained?
Last commit 1 days ago.
Will it work with my client?
Transport: stdio. Works with Claude Desktop, Cursor, Claude Code, and most MCP clients.
No automated test available for this server. Check the GitHub README for setup instructions.
No known vulnerabilities.
This server is missing a description. Tools and install config are also missing.If you've used it, help the community.
Add informationHave you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
MCPSDK.dev(ToolSDK.ai)'s Awesome MCP Servers and Packages Registry and Database with Structured JSON configurations. Supports OAuth2.1, DCR...
Prismer Cloud
The full-stack TypeScript framework to build, test, and deploy production-ready MCP servers and AI-native apps.
MCP server for Komodo - manage Docker containers, servers, stacks, and deployments via AI
MCP Security Weekly
Get CVE alerts and security updates for Caddy Mcp Server and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
A comprehensive Model Context Protocol (MCP) server for managing Caddy web server via the Admin API.
Complete Caddy management with 21 powerful tools:
| Tool | Description |
|---|---|
list_sites | List all configured sites with upstreams & auth status |
get_site | Get detailed configuration for a specific site |
get_site_routes | Get all routes (including path-based) for a site |
add_site | Add a new site with reverse proxy |
remove_site | Remove a site configuration |
update_upstream | Update the upstream address for a site |
| Tool | Description |
|---|---|
add_path_route | Add path-based route (e.g., /api/* → localhost:3000) |
remove_path_route | Remove a path-based route |
| Tool | Description |
|---|---|
add_basic_auth | Add basic authentication to a site |
remove_basic_auth | Remove basic authentication |
| Tool | Description |
|---|---|
add_request_header | Add header sent to upstream |
add_response_header | Add header sent to client |
| Tool | Description |
|---|---|
add_file_server | Add static file server |
update_file_root | Update file server root directory |
| Tool | Description |
|---|---|
add_wip_environment | Add WIP review env to review.example.com |
| Tool | Description |
|---|---|
export_config | Export full Caddy JSON config |
adapt_caddyfile | Convert Caddyfile to JSON |
validate_config | Validate config without applying |
| Tool | Description |
|---|---|
caddy_status | Check Caddy health |
stop_caddy | Gracefully stop Caddy |
# Build
go build -o caddy-mcp .
# Run locally
./caddy-mcp
# Run against remote Caddy (via SSH tunnel)
ssh -L 2019:localhost:2019 server-1 &
./caddy-mcp
CADDY_HOST - Caddy admin API host (default: localhost:2019)REVIEW_DOMAIN - Domain for WIP review environments (default: review.example.com)The server includes comprehensive input validation to prevent security issues:
Domain validation: Ensures valid domain format
Path validation: Prevents directory traversal attacks
Port validation: Validates port ranges (1-65535)
Header validation: Validates HTTP header names
client.go - Caddy Admin API client
server.go - MCP server setup
handlers.go - Tool implementations
site_ops.go - Site read operations
site_modify.go - Site write operations
path_routes.go - Path-based routing
auth_ops.go - Authentication management
headers.go - Header manipulation
fileserver.go - Static file serving
WARNING: Passwords are transmitted in plaintext from the MCP client to this server. This is an architectural limitation of the Model Context Protocol (MCP). While Caddy stores passwords hashed (bcrypt), the password travels unencrypted through the MCP communication channel.
The Caddy admin API (localhost:2019 by default) uses HTTP, not HTTPS.
When running this MCP server remotely, use SSH port forwarding to secure the connection:
ssh -L 2019:localhost:2019 <remote-server> &
./caddy-mcp
# List all sites
./caddy-mcp
# Send: {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"list_sites","arguments":{}}}
# Add a WIP environment
# {"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"add_wip_environment","arguments":{"project":"my-project","port":3000}}}
Built with ❤️ by Karti AI