mcpField
C
caddy-mcp

caddy-mcp

本地服务
github.com/lum8rjack云与基础设施873 周前更新

关于 caddy-mcp

caddy-mcp 通过 Caddy API 提供管理 Caddy 服务的 MCP 接口,可读取和更新配置、转换配置格式,并查看反向代理上游状态。

主要功能

  1. 01读取 Caddy 配置
  2. 02更新 JSON 配置
  3. 03将 Caddyfile 转为 JSON
  4. 04将 Nginx 和 YAML 转为 JSON
  5. 05查看上游代理状态
  6. 06支持 stdio、SSE 和 HTTP stream

适用场景

  1. 01检查当前 Caddy 配置
  2. 02应用完整的 JSON 配置
  3. 03将 Nginx 配置转换为 Caddy 格式
  4. 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 格式获取已配置的反向代理上游的当前状态

构建步骤

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

如果你使用的是带有额外模块的自定义 Caddy 构建版本(例如 Cloudflare DNS 模块),则需要将相应的 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 模块重复执行。如需查看官方和社区模块列表,请参阅 Caddy 模块目录。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。