caddy-mcp: Instructions file for Claude Code

CLAUDE.md

caddy-mcp CLAUDE.md is an instructions file for Claude Code from YawLabs/caddy-mcp. It costs 1,489 tokens per session, scanned A, original, MIT.

Project instructions for a service that lets coding agents manage Caddy web servers through Caddy's administration interface. Caddy is a web server that can handle routing, reverse proxies, and TLS certificates.

In plain words
What is it for?
Use them when developing or maintaining the MCP server, its configuration and route tools, Caddyfile-to-JSON conversion, TLS operations, or configuration snapshots and reverts.
Why use it?
They give developers the project's structure, configuration rules, retry behavior, and rollback handling needed to change server settings safely.

Instructions file for Claude Code

Written for Claude Code: the file is CLAUDE.md.

This is YawLabs/caddy-mcp's own configuration. It tells Claude Code how to work on caddy-mcp itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything caddy-mcp configures →

Reuse

Borrowing it

Nothing to install: this file belongs to YawLabs/caddy-mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/YawLabs/caddy-mcp/main/CLAUDE.md
Clone the repo
git clone --depth 1 https://github.com/YawLabs/caddy-mcp

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for caddy-mcp CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/yawlabs/caddy-mcp/claude-md/github.svg)](https://agentmods.dev/instructions/yawlabs/caddy-mcp/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/yawlabs/caddy-mcp/claude-md"><img src="https://agentmods.dev/badge/instructions/yawlabs/caddy-mcp/claude-md/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for caddy-mcp CLAUDE.md

Your own site · 80×15
<a href="https://agentmods.dev/instructions/yawlabs/caddy-mcp/claude-md"><img src="https://agentmods.dev/badge/instructions/yawlabs/caddy-mcp/claude-md.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 1,489 This file is loaded in full into every session.
When invoked 1,489 The same file — it is already loaded in full.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.01489 $0.01489
Opus 5 $0.00745 $0.00745
Sonnet 5 $0.00298 $0.00298
Haiku 4.5 $0.00149 $0.00149

Measured 9d ago against content hash f23a15b5050f, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-08, from the pricing page.

Security

Grade A, and why

caddy-mcp CLAUDE.md scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

CLAUDE.md · 94 lines

How it starts

The opening of the file, as written. The whole thing — 94 lines — stays where its author put it; the contents beside it link to each section on GitHub.

caddy-mcp

MCP server for managing Caddy web servers via the admin API. 18 tools across config management, route operations, TLS, and server operations.

Architecture

  • src/index.ts — CLI entry point. Starts stdio MCP server.
  • src/server.ts — Creates McpServer, registers all tools and resources. Exports createCaddyServer() and startServer().
  • src/api.ts — Caddy admin API client (fetch wrapper). All tools call through this. Also owns the retry policy (only idempotent method/path pairs retry) and the ETag If-Match cache used for optimistic concurrency.
  • src/format.ts — Converts API responses to MCP tool result format.
  • src/snapshots.ts — Ring of the last 10 config snapshots (module-level, per-process). Backs caddy_revert; auto-captured before caddy_load. In-memory by default; CADDY_MCP_SNAPSHOT_DIR persists them to disk and rehydrates on first access, so rollback survives a restart.
  • src/tools/config.ts — Low-level config CRUD: get, set, delete, load, revert, config_by_id.
  • src/tools/routes.ts — Route management: reverse_proxy shortcut, add_route, list_routes, remove_route.
  • src/tools/adapt.ts — Config format conversion (Caddyfile → JSON).
  • src/tools/tls.ts — TLS/HTTPS settings management.
  • src/tools/operational.ts — Status, list_servers, upstreams, PKI, metrics, stop.
  • src/resources.ts — MCP resources: caddy://config, caddy://upstreams, caddy://metrics, caddy://servers.

Runtime: oam for the dev loop, Node for artifacts

oam is not an npm dependency and is never assumed present. Discovery lives in scripts/runtime.mjs: $OAM_BIN, then oam on PATH, then Node.

The split is deliberate — auto-detect for tools, explicit for artifacts:

Task Default Alternate
npm run typecheck oam check . if available, else tsc --noEmit CADDY_MCP_RUNTIME=node forces tsc; typecheck:tsc pins it
node scripts/build-binary.mjs Node SEA + postject CADDY_MCP_RUNTIME=oam builds the oam carrier
npm test vitest (Node)
npm start / bin entry Node

Read the full file on GitHub · 94 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 9d ago First seen · 94 lines · 1,489 tokens per session scan A f23a15b5050f

Subscribe to this mod's changes

caddy-mcp CLAUDE.md is an instructions file published in the GitHub repository YawLabs/caddy-mcp (10 stars, last pushed 8d ago), licensed MIT. It adds 1,489 tokens to every session, about $0.0074 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other instructions, from other repositories