caddy-mcp について
caddy-mcpは、Caddy APIを通じてCaddyサーバーを管理するMCPインターフェースです。設定の取得・更新や形式変換、リバースプロキシのアップストリーム状態確認に対応します。
主な機能
- 01Caddy設定の取得
- 02JSON設定の更新
- 03CaddyfileからJSONへの変換
- 04Nginx・YAMLからJSONへの変換
- 05アップストリームプロキシ状態の確認
- 06stdio、SSE、HTTP streamに対応
活用シーン
- 01現在のCaddy設定を確認する
- 02完全なJSON設定を適用する
- 03Nginx設定をCaddy形式に変換する
- 04リバースプロキシのアップストリーム状態を確認する
MCP 対応
MCPクライアントに、Caddy設定の管理とアップストリーム監視のツールを提供します。stdio、SSE、HTTP streamのトランスポートに対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
caddy-mcp
概要
caddy-mcp は、Caddy サーバーインスタンスを Caddy API 経由で管理するための、Model Context Protocol(MCP)インターフェースを提供するサーバーです。Caddy の設定(JSON、Caddyfile、YAML、または Nginx 形式)の取得、更新、変換や、リバースプロキシのアップストリームの監視を行うツールを提供します。サーバーは、stdio、SSE、HTTP ストリームなど、さまざまなトランスポートで実行できます。
ツール
- get_caddy_config - 現在の Caddy サーバー設定を JSON 形式で取得します
- 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 の例
管理 API を公開するテスト用の Caddyfile のサンプルです:
{
admin :2019
}
:8080 {
respond "I am 8080"
}
:8081 {
respond "I am 8081"
}
Caddy モジュールの追加
追加モジュール(たとえば Cloudflare DNS モジュール)を含むカスタムビルド版の Caddy を使用する場合は、対応する 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 Modules Directory を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。