Caddy配置管理服务

caddy-mcp是一个通过Model Context Protocol (MCP)接口管理Caddy服务器实例的服务,支持配置的获取、更新和格式转换,以及反向代理上游状态监控。

  • by lum8rjack
  • Go
  • 本地部署
  • 8 星标
  • 更新于
在 GitHub 查看 lum8rjack/caddy-mcp

使用说明

卡迪·麦克普

概述

卡迪·麦克普 是一个提供模型上下文协议(MCP)接口的服务器,用于管理 卡迪 使用的服务器实例 卡迪API它公开了用于检索、更新和转换Caddy配置(JSON、Caddyfile、YAML或Nginx格式)以及用于监视反向代理上游的工具。服务器可以通过不同的传输方式运行:stdio、SSE或HTTP流。

工具

  • get_addy_config -获取JSON格式的当前Caddy服务器配置
  • update_caddy_config -通过提供完整的JSON配置来更新Caddy服务器配置
  • convert_caddyfile_to_json -将Caddyfile配置转换为JSON格式
  • convert_nginx_to_json -将Nginx配置转换为Caddy JSON格式
  • 将yaml_转换为_json -将YAML配置转换为Caddy JSON格式
  • 上游_氧气_状态 -以JSON格式获取配置的反向代理上游的当前状态

构建步骤

  1. 先决条件:

  2. 克隆存储库:

    git clone https://github.com/lum8rjack/caddy-mcp.git
    cd caddy-mcp
    
  3. 构建服务器:

    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模块

如果您使用的是带有额外模块(例如Cloudflare DNS模块)的定制版本的Caddy,则需要将相应的Go模块添加到您的项目中。这确保了MCP服务器可以与您的自定义Caddy构建一起工作。

步骤:

  1. 将模块导入添加到 main.go:

    例如,要添加Cloudflare DNS模块,请添加以下导入(导入中的任何位置,通常与其他Caddy模块一起):

    import _ "github.com/caddy-dns/cloudflare"
    
  2. 更新依赖关系:

    运行:

    go mod tidy
    
  3. 重建服务器:

    make
    # or
    go build -o caddy-mcp .
    

对于您需要的任何其他Caddy模块,都可以重复此过程。有关官方和社区模块的列表,请参阅 球童模块目录.