关于 caddy-mcp
caddy-mcp 通过 Caddy API 提供管理 Caddy 服务的 MCP 接口,可读取和更新配置、转换配置格式,并查看反向代理上游状态。
主要功能
- 01读取 Caddy 配置
- 02更新 JSON 配置
- 03将 Caddyfile 转为 JSON
- 04将 Nginx 和 YAML 转为 JSON
- 05查看上游代理状态
- 06支持 stdio、SSE 和 HTTP stream
适用场景
- 01检查当前 Caddy 配置
- 02应用完整的 JSON 配置
- 03将 Nginx 配置转换为 Caddy 格式
- 04检查反向代理上游状态
MCP 相关
该服务向 MCP 客户端提供 Caddy 配置管理和上游监控工具,支持 stdio、SSE 和 HTTP stream 传输方式。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
caddy-mcp
概述
caddy-mcp 是一个服务器,通过 Caddy API 提供用于管理 Caddy 实例的 Model Context Protocol(MCP)接口。它提供用于获取、更新和转换 Caddy 配置(支持 JSON、Caddyfile、YAML 或 Nginx 格式),以及监控反向代理上游的工具。该服务器支持通过不同传输方式运行:stdio、SSE 或 HTTP stream。
工具
- get_caddy_config - 以 JSON 格式获取当前的 Caddy 服务器配置
- update_caddy_config - 提供完整的 JSON 配置来更新 Caddy 服务器配置
- convert_caddyfile_to_json - 将 Caddyfile 配置转换为 JSON 格式
- convert_nginx_to_json - 将 Nginx 配置转换为 Caddy JSON 格式
- convert_yaml_to_json - 将 YAML 配置转换为 Caddy JSON 格式
- upstream_proxy_statuses - 以 JSON 格式获取已配置的反向代理上游的当前状态
构建步骤
-
先决条件:
- 安装 Go 1.24+(下载)
-
克隆仓库:
git clone https://github.com/lum8rjack/caddy-mcp.git cd caddy-mcp -
构建服务器:
make # or go build -o caddy-mcp .这将在项目根目录中生成一个
caddy-mcp二进制文件。
运行 MCP 服务器
你可以使用不同的传输方式和端口运行服务器:
./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")
MCP 设置示例:
{
"mcpServers": {
"caddy-mcp": {
"command": "~/caddy-mcp",
"args": ["-transport", "stdio", "-url", "http://127.0.0.1:2019"]
}
}
}
Caddyfile 示例
用于测试的示例 Caddyfile,其中公开了管理 API:
{
admin :2019
}
:8080 {
respond "I am 8080"
}
:8081 {
respond "I am 8081"
}
添加其他 Caddy 模块
如果你使用的是带有额外模块的自定义 Caddy 构建版本(例如 Cloudflare DNS 模块),则需要将相应的 Go 模块添加到项目中。这样可确保 MCP 服务器能够与自定义 Caddy 构建版本配合使用。
步骤:
-
将模块导入添加到
main.go:例如,要添加 Cloudflare DNS 模块,请添加以下导入(可放在导入列表中的任意位置,通常与其他 Caddy 模块放在一起):
import _ "github.com/caddy-dns/cloudflare" -
更新依赖项:
运行:
go mod tidy -
重新构建服务器:
make # or go build -o caddy-mcp .
此过程可针对你需要的其他 Caddy 模块重复执行。如需查看官方和社区模块列表,请参阅 Caddy 模块目录。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。