{"_id":"@yawlabs/caddy-mcp","_rev":"43-e42a49340c4832f556b9f0c4fbce7dcb","name":"@yawlabs/caddy-mcp","dist-tags":{"latest":"2.5.8"},"versions":{"0.1.0":{"name":"@yawlabs/caddy-mcp","version":"0.1.0","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@0.1.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"dist/index.js"},"dist":{"shasum":"e7b35d604b86af61c38117bb88b336871d32090c","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-0.1.0.tgz","fileCount":6,"integrity":"sha512-+hCy+51iPmjWzOvSKnODwbQWinfTVk23h4Vjtg/MwW+XjEqtLsATgSSFiF73rm9NsOyw6Sj40nMxJ7/6pnv0uQ==","signatures":[{"sig":"MEQCIFkwDSGt3yKrF/RGKwpyRZuFS4f3gSQqPkdpe+hI2y2GAiAfmLvoBomYqV8WKSJF3uFPP83ntAOJfY8vzRy1fWfWPA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":41322},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"236a273e5b660415816d483f217fe9ef8b379975","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"10.9.7","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^3.24.4","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^3.1.1","typescript":"^5.8.3","@types/node":"^25.5.2","@biomejs/biome":"^1.9.4"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_0.1.0_1775704834371_0.8718980357799011","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@yawlabs/caddy-mcp","version":"0.1.1","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@0.1.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"dist/index.js"},"dist":{"shasum":"7f135cb6c62529d83386a129545a34e36718bdd1","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-0.1.1.tgz","fileCount":6,"integrity":"sha512-PkFJrywxbJNhRSTxqZufmILxGBFM0PVsTgynXLZhQojkqjcTtXBdp+tiiI5tt1dFJ0JNZlWfUsw1xC8dev7UJw==","signatures":[{"sig":"MEQCIDcpAMBNr3sBzS5OF1Y2hn+/GxH8OohWD2CxotTav2v1AiB94/ldjBKpkW8wbMnbsuP/6K8lP7Cym6lVan5TR1q2EA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59822},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"2e0876fdff2775c85ddabf82442def79936b79f8","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@biomejs/biome":"^2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_0.1.1_1775873949948_0.4786628564003541","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@yawlabs/caddy-mcp","version":"0.2.0","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@0.2.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"dist/index.js"},"dist":{"shasum":"ba6afd4628a296643a4d5681322b4a19a73119c5","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-0.2.0.tgz","fileCount":6,"integrity":"sha512-1U7930CgFKC93g7suTgWy0bT6G72i2gj873D3clp30QLi49TYEjuty9+IhUwcll+5fUeAJLL/Nyt9Pz746XqwA==","signatures":[{"sig":"MEQCIClzlRP+7yARRUAGN9200e4Kgjq/c52VmN1bg2Qic/4KAiAuzW7utB5tJUA5F4fA93yCs1/PnwFIt3Xd7CIXdwBuaw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fcaddy-mcp@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":60632},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"662bde8054921d67184b0c8f4e297f9f65ca6c7a","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@biomejs/biome":"^2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_0.2.0_1776143521353_0.7467145565997311","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@yawlabs/caddy-mcp","version":"0.3.0","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@0.3.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"dist/index.js"},"dist":{"shasum":"db5c958757bfe86b57934625fc2bca41308ca2b2","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-0.3.0.tgz","fileCount":6,"integrity":"sha512-3hheZNy0FVt5KWesY8UFfTVllqjGJFauiUHtkWO5UvJqqeL6FS0uRvMP0f7fSgN+bRsraN1DQuVTPTQo5zMkIA==","signatures":[{"sig":"MEUCIBYEUassD5ab59pF+PoNrrBjNIs6JIOYXcsLFnJq7toeAiEArDETLbc/vPqMRoBnB4HAltQyMOa5rzIRL10is5u5E5k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fcaddy-mcp@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":80249},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"7d9cc54899fe2a4fae6436114a2e25c6447fbfda","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@biomejs/biome":"^2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_0.3.0_1776554205964_0.011458202255758554","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@yawlabs/caddy-mcp","version":"0.3.1","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@0.3.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"dist/index.js"},"dist":{"shasum":"db40a29c6448ad8e425ec556f6615e464f679b8b","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-0.3.1.tgz","fileCount":6,"integrity":"sha512-v0iWg/sWal072KnnFG/ndpUKh9CQdCceJG/q+Av7kb6KycmlpWT8U8vDXhnBNFpp4UDPlWm0QRsGx7F0RNYXDQ==","signatures":[{"sig":"MEQCIHgGIUW9Sq5Q53BbOdDqk9dGihX1TMJdYgbQRqPbSU+iAiBvlSYx5k8fPDF3Iu+D+RT1TcAPRr43tYdLwURKLFAueA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fcaddy-mcp@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":80331},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"2b393b181fca77d9b1ab58598228d8bcef76abea","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"hono":"^4.12.14","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@biomejs/biome":"^2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_0.3.1_1776577909517_0.48900010040472974","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@yawlabs/caddy-mcp","version":"1.0.0","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@1.0.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"dist/index.js"},"dist":{"shasum":"b301fd6b6127c72a89ec68bd93b4f81dd8acb9d9","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-1.0.0.tgz","fileCount":6,"integrity":"sha512-//vUtoxCFfrrUrF5ayg1Re8oQ1RJHn6OK/rZ4Fd/oVolOq3IvfgctSpaEQnvGNqDrkYbasGuxB57I9n2B3zpVw==","signatures":[{"sig":"MEUCIAOLdMmstRJxInRhZmYdbjrd6QnQKBJNIITUjzMv22GCAiEAkKvyqv+OiOY7hCvdEoIey3lIUq2N/5GhI2fo/GHqCfI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fcaddy-mcp@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":90113},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"567f4e24a23fc0c4194a654789e3a88df31137a9","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"hono":"^4.12.14","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@biomejs/biome":"^2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_1.0.0_1776694611865_0.43846703239387885","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@yawlabs/caddy-mcp","version":"1.0.1","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@1.0.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"dist/index.js"},"dist":{"shasum":"3d5efa4f42be7ac1fd36324684aa10f899998ff9","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-1.0.1.tgz","fileCount":6,"integrity":"sha512-mXzmCqpyq+ABzsvkyh5INBKVQYwS1kSFkD1ZAddu4dEbsDCIle+Nkel/WV9SqVWdEyW1bQpvlEGEqPH61Iwozg==","signatures":[{"sig":"MEYCIQC0pQlSQ9n4C2NUxkcXjHX3KZVaJTp5VQwmpiyWaIj+9wIhAK71NFQzwuesnADUI6KLBYlO6LrzJ9PQitz6MtSvJjXv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fcaddy-mcp@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":92385},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"ac906db9746ac213e35adfcf572c2fd795524b57","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"hono":"^4.12.14","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@biomejs/biome":"^2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_1.0.1_1777085501564_0.6578897843229317","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@yawlabs/caddy-mcp","version":"1.1.0","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@1.1.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"dist/index.js"},"dist":{"shasum":"ceefbcc4c00a03672e20faffd7046d2eaa05c453","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-1.1.0.tgz","fileCount":6,"integrity":"sha512-MsecbuY3Bwmw1h/w5ywHi0/M9ZmKUEoKMWfLIMwBSeiVhkFCbVirJemxag4Xp6gC0b0K81z1io9wH//oPXiPaQ==","signatures":[{"sig":"MEUCIQC45wXLEj9ZR1YpsTH6gdE6g5n5Sim/NZaN1BqyKlZzcgIgBTXQJdBYJi5YDvZot9byTnrfRulwrnPuZneA1f12v0g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fcaddy-mcp@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":110446},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"76b3dd401935090de9b26339c927a367d26e429f","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"hono":"^4.12.14","postcss":"^8.5.10","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@biomejs/biome":"^2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_1.1.0_1778095385362_0.5006611284168545","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@yawlabs/caddy-mcp","version":"1.2.0","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@1.2.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"dist/index.js"},"dist":{"shasum":"71fec6c3c6b924a4a37a13f5ea683824c84633df","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-1.2.0.tgz","fileCount":6,"integrity":"sha512-kb14HCmtNpgBKFAD77slODv6dF7EeHED2RtROmY8KwM5zskODa+ILvQHbA6l8gUJmNebooJJCwgtN14rDh/1kg==","signatures":[{"sig":"MEYCIQDocAuKFer3iPXOwUcOigSvzOK4Qng48+c14L+pchR61wIhANgSoKyrdrjBGVszPAdwHLXu4NGresxaHgbQnl6OSxdf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fcaddy-mcp@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":113212},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"99890dccfc3b170540c486682513c40516a763c3","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"hono":"^4.12.14","postcss":"^8.5.10","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@biomejs/biome":"^2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_1.2.0_1778714645985_0.37258043692471765","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@yawlabs/caddy-mcp","version":"1.2.1","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@1.2.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"dist/index.js"},"dist":{"shasum":"9c6dd2a28d5f65cdaa0e23d080adb65a0e02e88d","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-1.2.1.tgz","fileCount":6,"integrity":"sha512-PCImtIjwGc1VfZUn3B9FA3IqtcgdgZhuP3c7u8zuw2x3Id3/lnw3oXznEqs1RgF7Q+KYe7+8nqbNSCqJBs5iIw==","signatures":[{"sig":"MEQCIBa2JhrnR/8O1x3OFbYpt3P+RD+pQEJAm+FOomLYzf9BAiA5SJCXoWFBrN4EfyLS6OhnUlgDz1NpN4pd1IkLATOGCQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fcaddy-mcp@1.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":113485},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"b2b92faef1a20da277048858c040e382f39ea0c4","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"hono":"^4.12.18","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@biomejs/biome":"^2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_1.2.1_1778715461317_0.8584952145979674","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@yawlabs/caddy-mcp","version":"1.2.2","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@1.2.2","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"dist/index.js"},"dist":{"shasum":"ba954882237310f9e7ba0abd03b4c37035fe3271","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-1.2.2.tgz","fileCount":6,"integrity":"sha512-XEurXOhiFB86Lg2/14Zce/zZGGGhOEdA1xgBdAbPZxXTWysX/LS0Al0vPg90kaXsz998PQNQNMvRqEknuihGdQ==","signatures":[{"sig":"MEQCICyo8BgJh9KxZ6fx3IunuXG4EcAz0V/ZB/JYAq20DkfbAiBPCArnGorVnciRGSs5vj2CGYTl1r72yU8osRqCrQtW9Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fcaddy-mcp@1.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":114536},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"af0bf7cb51615af6a54718596e67703da6a07b9d","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"hono":"^4.12.18","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@biomejs/biome":"^2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_1.2.2_1778716261800_0.4928341026836265","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@yawlabs/caddy-mcp","version":"1.2.3","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@1.2.3","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"dist/index.js"},"dist":{"shasum":"1d0337840f53f58fb2720f5842f2992fe9a1bfb7","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-1.2.3.tgz","fileCount":6,"integrity":"sha512-D/uQtmbncYCTGrMKmXCAzcSPOUQxyXDcjpQO8KvMY+4BHr/OZFDqk4sOLSiql9XJxCLmCmpFu3QTHxOO12Sr+w==","signatures":[{"sig":"MEUCIQCEz7f6juAToPm1/zsIEmU9/ZbZ3yZ0G4zZ9qtacAVQUQIgRd3vYcdbX/mtNdJoqcoTJtGuoXKEIGF6JvgJnFnG59Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fcaddy-mcp@1.2.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":117274},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"712b4cbad960387c86cb795747d9660a128d3b84","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"hono":"^4.12.18","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@biomejs/biome":"^2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_1.2.3_1778858936814_0.2940404665126357","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@yawlabs/caddy-mcp","version":"1.2.4","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@1.2.4","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"dist/index.js"},"dist":{"shasum":"c54f2d319051cf88608a66e4873b37ca163be5b0","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-1.2.4.tgz","fileCount":6,"integrity":"sha512-NnJsDHKYkE7n3EXoU1uwz7jBUxZmI2MIFrMJu0vbBbMxpjBid3roltiYTXTrLJpKU9CKLij62NofZk0GWZbjAQ==","signatures":[{"sig":"MEUCIDUh/pFjvWmUfSCk74F/tx/Be8UVRfx+B4MVAaiG/JV8AiEArOeMWbIAKZu76DcjWdo5RCJJtE+/IUkmaJFMOq1oeNE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fcaddy-mcp@1.2.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":117664},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"d70d1bf571ab61b99ae1ed05239f2032e2085aed","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"hono":"^4.12.18","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@biomejs/biome":"^2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_1.2.4_1778868548477_0.702902871993067","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"@yawlabs/caddy-mcp","version":"1.2.5","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@1.2.5","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"dist/index.js"},"dist":{"shasum":"1f6ce67fba76657640f95016afe27b73382a24f8","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-1.2.5.tgz","fileCount":6,"integrity":"sha512-4csV8M968+mS2ML92bY2UPsQoS50pq2q5JWqyuq8AxxxZ/M8YQK4Rljtthtex7OycbjwLLfiPdghQH9esds4sA==","signatures":[{"sig":"MEUCIFjxJY4yk+zwb5hlEjr69SQICgjl5YhGWz7/LKjc8/OwAiEA7J+GGpiZilA7F9TBj2hBCEMc3vqiLopZ/akQk+ut7iM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fcaddy-mcp@1.2.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":118430},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"059c85252c7217be6c1514b890553afac94c59e5","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"hono":"^4.12.18","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"misleading error on @id PUT race; whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@biomejs/biome":"^2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_1.2.5_1778944607511_0.0031333526255099553","host":"s3://npm-registry-packages-npm-production"}},"1.2.6":{"name":"@yawlabs/caddy-mcp","version":"1.2.6","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@1.2.6","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"dist/index.js"},"dist":{"shasum":"fe27add633d1766bdf5884044abcccfe793e8440","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-1.2.6.tgz","fileCount":6,"integrity":"sha512-pE8Kjxkhd0kJLYWA+pP6mxhoNHih8B9v3cpas0lQl5w6lbgo1GH6O+dln1exKAXWL2HhNznLKMm6LyeZ7SW/bQ==","signatures":[{"sig":"MEUCIQDjU+YIDKZdkE15AKqkh9YQRmYrFJ4Xeh/zevU7Ka43wAIgNAaQzJbC/R83GK94BrILo2qDa/nnJNrt92TLTY1UP8E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fcaddy-mcp@1.2.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":118309},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"200242e82f26c20ba73b3432383e1c0b481b48ae","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"hono":"^4.12.18","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@biomejs/biome":"^2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_1.2.6_1778946054180_0.4422878095366143","host":"s3://npm-registry-packages-npm-production"}},"1.2.7":{"name":"@yawlabs/caddy-mcp","version":"1.2.7","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@1.2.7","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"dist/index.js"},"dist":{"shasum":"dc5ef09bfc66096870d89e52933bc05949423320","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-1.2.7.tgz","fileCount":6,"integrity":"sha512-C6yqKknRmmHzB061G5AwmGWTdp5JtqKZb8OXkXsA2O8Yk3ueenFNnDO/8EX3M+iRYOpa2VNIEDzpGCxlgllXpw==","signatures":[{"sig":"MEYCIQDu4Bx8MFEmskJKu/hJevZWEUxnlAuohmFJowK2Y+9HLwIhAMrfMqVLZrbKoKVrU+kqSIbd54TVjTOboTyJyAE1S0Gp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@yawlabs%2fcaddy-mcp@1.2.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":119429},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"24cfabb1f93c49cc49e7f9fcbc5f6269d475838b","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"hono":"^4.12.18","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"10.8.2","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"20.20.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@biomejs/biome":"^2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_1.2.7_1779195254922_0.34869494890037167","host":"s3://npm-registry-packages-npm-production"}},"1.2.8":{"name":"@yawlabs/caddy-mcp","version":"1.2.8","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@1.2.8","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"dist/index.js"},"dist":{"shasum":"083b94867276f0fd27279be5f3618bd6d6643e53","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-1.2.8.tgz","fileCount":6,"integrity":"sha512-EX8s3PaeLW2oVqAvp7k0oEe1h/BRkzVPsgiFfRl44rg6Txst+sYbdJn4nQVtFixH3fkVKJz49kzElUaCtObX5A==","signatures":[{"sig":"MEQCIBB1N4ADColQ+2QgLZqV44DjSgkNCAEAQqoOOpqSGyFjAiAaPjv1HVEY30qoybx95le7Qy4MIM4T7p8SJqho9pg0sA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119481},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"08d9a950e9cee549703c3f75018e6d6647f28eaf","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"hono":"^4.12.18","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@biomejs/biome":"^2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_1.2.8_1780003390215_0.6008017895979814","host":"s3://npm-registry-packages-npm-production"}},"1.2.9":{"name":"@yawlabs/caddy-mcp","version":"1.2.9","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@1.2.9","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"dist/index.js"},"dist":{"shasum":"830dbf3bb2ef8ee84f6ddd61e72bc57141f7017a","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-1.2.9.tgz","fileCount":6,"integrity":"sha512-Tt+ukYAUCwV0GzkPK3DIsVWt/SvUzNtz3lGJGGPoNbMPsrr1Z3L0JGsLD9c5mFnRxZCccOUn79lwAdYSYjQBhg==","signatures":[{"sig":"MEYCIQCh/xfjzqlPp1rzuHWXYmnEDswx1ivGDlki2B12+4lq5wIhALIqBtltgO9PCzCisG19PePs+Ln0a/RO11KPxCjUbC6C","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":119494},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"b8ebb70371328b02d6a70e2743340a0912c3fa85","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"hono":"^4.12.18","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@biomejs/biome":"^2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_1.2.9_1780455100839_0.951958529003265","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@yawlabs/caddy-mcp","version":"1.3.0","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@1.3.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"dist/index.js"},"dist":{"shasum":"209e1fc28bd953bcdb9d33148d93e4649eaf6cd6","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-1.3.0.tgz","fileCount":6,"integrity":"sha512-0mRicLnkYD79ukMuZIZXBiGdSwpBo1QsMMSzfvxnTrvhbNcV+mA75HAoB5ctyi85lZTIgkZH3QSk25LnK3X8Ag==","signatures":[{"sig":"MEUCIAzsgeh4NIFz+Bz0ruMUot+N4RkzRI3FHSwYOm+aEZkbAiEAxJtY9FDexE+bt19+ZMIrljGi5PSez4P4WOYx7fzlfTY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":124532},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"8e732e8941b32a91ecc5a00671b28ed1441f42d5","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"qs":"^6.15.2","hono":"^4.12.21","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","typescript":"^6.0.2","@types/node":"^25.6.0","@biomejs/biome":"^2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_1.3.0_1780855934798_0.9741699862225215","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@yawlabs/caddy-mcp","version":"1.3.1","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@1.3.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"dist/index.js"},"dist":{"shasum":"2e476c09bb9d9df1a2cc892cdec340f6db7eb104","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-1.3.1.tgz","fileCount":6,"integrity":"sha512-aQ8TIwPZnRwBa4S9DYkINotkC8zJ5EqS41lGrFPdNCycAG5GF9rsaptqQfungqNI7A9UXLTtSQCTkd+CAswvrg==","signatures":[{"sig":"MEUCIDshDZREM8/5EYVW1qolDvv4ShuvydojIALUNroEkGfiAiEA0E8hcVic5+8fD2IUivnsDQ2lgxHxobcdQtN0aE38ezs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":125002},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"5908321638df2ef254db46a77c6629639eaa1479","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"qs":"^6.15.2","hono":"^4.12.21","esbuild":"^0.28.1","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","postject":"^1.0.0-alpha.6","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"^2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_1.3.1_1784675649747_0.7659139858943342","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@yawlabs/caddy-mcp","version":"2.0.0","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@2.0.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"dist/index.js"},"dist":{"shasum":"720c91b441afcbbbc8d643188a40331e4fe297f5","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-2.0.0.tgz","fileCount":16,"integrity":"sha512-1wGd4vGL8lE5kmGOKwguxHGKELh8GlND5bs3xFyzTnANgX0IEDN1OjYZ0Nvtqk6EXKNuVa2hih42guRLIcQBEQ==","signatures":[{"sig":"MEYCIQCcU0xStcrL2gpmazSXf85uE7AQlhpRsTLHQOGN5sjDuwIhAKc3ZW9l8OGsMN00iMzHVih804c/q8Jc72FzYckH126x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":137110},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"c6a0a7826af3712c02c095cb690ca33031f58e47","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup && tsc -p tsconfig.build.json","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"node scripts/typecheck.mjs","typecheck:tsc":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"qs":"^6.15.2","hono":"^4.12.21","esbuild":"^0.28.1","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","postject":"^1.0.0-alpha.6","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"~2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_2.0.0_1786115956346_0.2884011011432599","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@yawlabs/caddy-mcp","version":"2.1.0","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@2.1.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"bin/caddy-mcp.mjs"},"dist":{"shasum":"bde9484822f36349a6ed1518b9bca2187c36d7e2","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-2.1.0.tgz","fileCount":17,"integrity":"sha512-ByrPf7Y3PE3gwWCzpKBCgO5Tx6vXhGG9t1WC22N209GrZBc2xPYu0VFPrzim+q0PeMZykyPdzIK3mkXWua+a3Q==","signatures":[{"sig":"MEQCIDa6R9XGlGCX6jOXEI3JuO8o7rJpte7oR5lcepbpbaW+AiAmLofKNSjRa5UCwjkVmLJBLMhmJFcZ8SAQy7VFdnVIhw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":144859},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"0e88d630f07f8c436eaee3a3cc5454a358055f1b","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup && tsc -p tsconfig.build.json","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"node scripts/typecheck.mjs","typecheck:tsc":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"qs":"^6.15.2","hono":"^4.12.21","esbuild":"^0.28.1","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","postject":"^1.0.0-alpha.6","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"~2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_2.1.0_1786126709793_0.4253434155999203","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@yawlabs/caddy-mcp","version":"2.2.0","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@2.2.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"bin/caddy-mcp.mjs"},"dist":{"shasum":"7d8444c4eb92e1c5f3567c2b81d1fc7ff8d9ef88","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-2.2.0.tgz","fileCount":17,"integrity":"sha512-xkee/jAxiJ7gLWEnvvgi7C48XtpHROOGhNI1nOHUFSJVh7S9EYwF2wAPttzZ8nqb7XUQV8PI+pEWXFPgsG7org==","signatures":[{"sig":"MEUCIB8FyjdPk3K8q82IhlSO3RB5QK2lAXwd++G06SKmo4kyAiEAw6P31p/lXKl5qvu97dbPTA11bzViQ30MZlLU4JQk47g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":148941},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"3ecf8ac94b3e4355aefbca4327929edd42fb209c","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup && tsc -p tsconfig.build.json","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"node scripts/typecheck.mjs","typecheck:tsc":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"qs":"^6.15.2","hono":"^4.12.21","esbuild":"^0.28.1","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","postject":"^1.0.0-alpha.6","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"~2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_2.2.0_1786230643737_0.5259665290100157","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@yawlabs/caddy-mcp","version":"2.3.0","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@2.3.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"bin/caddy-mcp.mjs"},"dist":{"shasum":"fac92105815dcaa85c45f995b868c4d3456282e7","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-2.3.0.tgz","fileCount":17,"integrity":"sha512-+IKelhthHrM3Yml5yUKwVHBSd3JbfvWbg75LNESTDHgUIPOsebDXa9x1uIELP1d8U0UQybK2/MAVQV6WlgHKTw==","signatures":[{"sig":"MEQCIBb4A5+agmXOtUi9EO1A8D+cGPN/61ayKZba4Otn/2UiAiA6+jfjufipw9royooR+vIy8wJc8vJlT6CLXr/S9Be8RA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":163582},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"26e3168896b29e335b6871cb7a2a3470753fe72d","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup && tsc -p tsconfig.build.json","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"node scripts/typecheck.mjs","typecheck:tsc":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"qs":"^6.15.2","hono":"^4.12.21","esbuild":"^0.28.1","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","postject":"^1.0.0-alpha.6","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"~2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_2.3.0_1787493993769_0.7988930495147033","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"@yawlabs/caddy-mcp","version":"2.3.1","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@2.3.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"bin/caddy-mcp.mjs"},"dist":{"shasum":"6d2b083a23a27cef3334aebf251b9d74b59baca4","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-2.3.1.tgz","fileCount":17,"integrity":"sha512-68jzWNQAeu4YyhY1Xr39YlWYNXlsU4jq9pPLec7qb0U6pyNkB1n3zjRbpqSBSMGuDRZuMb6E9D+EWeUzOYPYeg==","signatures":[{"sig":"MEUCIQCH0ENEfh4VXINS8kSOB50gjwNyJrorQ3V4zJgCI+yh5AIgF8vmBZntTbEuaBBY4ne4gXmtRg/ELkLe3t24DP3n8nA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":171283},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"8a79115141cb3b7e1489645f6da1223127128655","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"biome check src/","test":"vitest run","build":"tsup && tsc -p tsconfig.build.json","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/","typecheck":"node scripts/typecheck.mjs","typecheck:tsc":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"qs":"^6.15.2","hono":"^4.12.21","esbuild":"^0.28.1","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","postject":"^1.0.0-alpha.6","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"~2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_2.3.1_1787504627177_0.8232387179851866","host":"s3://npm-registry-packages-npm-production"}},"2.3.2":{"name":"@yawlabs/caddy-mcp","version":"2.3.2","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@2.3.2","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"bin/caddy-mcp.mjs"},"dist":{"shasum":"fd4f698b1bf7b7e41faf031fc14cebc94b69af88","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-2.3.2.tgz","fileCount":17,"integrity":"sha512-24pbMEVIsHE/1tdRfprQPJdp4NoD7V2BpMA9BzS74DeHz5z0xgtT8i0+RBdkz0f5xZLslIghwgFVKaeiwHpegQ==","signatures":[{"sig":"MEUCIQDsVPBPdguD8aSXQ3cbYIZfTtM9lqFfYHhebUI1UjtTAAIgKLebtx5IymKpUzQBrJ5j/0F+TYvWxpRLLBzRbswLvaM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":171713},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"40fe79b76082b47962c630fa38792a738c380e25","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"biome check src/ bin/ scripts/","test":"vitest run","build":"tsup && tsc -p tsconfig.build.json","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/ bin/ scripts/","typecheck":"node scripts/typecheck.mjs","typecheck:tsc":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"qs":"^6.15.2","hono":"^4.12.21","esbuild":"^0.28.1","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","postject":"^1.0.0-alpha.6","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"~2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_2.3.2_1787517414334_0.6100849930416989","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@yawlabs/caddy-mcp","version":"2.4.0","keywords":["mcp","model-context-protocol","caddy","reverse-proxy","web-server","mcp-server","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@2.4.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://github.com/YawLabs/caddy-mcp","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"bin/caddy-mcp.mjs"},"dist":{"shasum":"50721bbcb49d9fdfefa73ad62bb46bc51ba40bfd","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-2.4.0.tgz","fileCount":17,"integrity":"sha512-LSvQ0sfOCTzo44gL98h1W3LqL0/xq9PP0TXFmja3c6QxNlOU+2q8PIvFw9D/fs95ptsNR9RNxLQeXsj+W9yYSQ==","signatures":[{"sig":"MEQCIFZ2yMJWSvb4W9cDLEsoEQAto0c6y8Buj4TImbWMEtVPAiAW3j/WCQXo3a+v6Hs0hZiEOZbOj57EjLkEuMJkI/YC9A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195476},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"2088b1acf6092ba1a42b1f5cc365d0bacaa4ac2b","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"biome check src/ bin/ scripts/","test":"vitest run","build":"tsup && tsc -p tsconfig.build.json","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"biome check --write src/ bin/ scripts/","typecheck":"node scripts/typecheck.mjs","typecheck:tsc":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"qs":"^6.15.2","hono":"^4.12.21","esbuild":"^0.28.1","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"MCP server for managing Caddy web servers via the admin API","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"~2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_2.4.0_1788206387740_0.7030006961043149","host":"s3://npm-registry-packages-npm-production"}},"2.4.1":{"name":"@yawlabs/caddy-mcp","version":"2.4.1","keywords":["caddy","caddy-mcp","caddy-server","caddyfile","mcp","mcp-server","model-context-protocol","reverse-proxy","web-server","admin-api","tls","acme","pki","prometheus","claude-code","cursor","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@2.4.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://yaw.sh/mcp-servers/caddy-mcp/","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"bin/caddy-mcp.mjs"},"dist":{"shasum":"06f0fa9647d8ae1934ddd3aa6c284a004092f428","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-2.4.1.tgz","fileCount":17,"integrity":"sha512-UwJuM3viisJTGGG777BXH7G3Wgw7OkAPnaS2WL+IPSwz1KX83X4n7bL1EvtVRQ7VpU0WauxY5uwMIfGXmm9wsg==","signatures":[{"sig":"MEUCIGGLPEMuvOdOkOFi+K3KP6B2USaWkAMsYRUPIp1YsTrBAiEAyfRIiPy+gdS/PZY9RmWuB0cOJUPnIit0Bw965nVnNn8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":195875},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"aea062b32eb6f530b1a12fcfe05817a54c9cb5ac","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/ bin/ scripts/","test":"vitest run","build":"tsup && tsc -p tsconfig.build.json","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/ bin/ scripts/","typecheck":"node scripts/typecheck.mjs","typecheck:tsc":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"qs":"^6.15.2","hono":"^4.12.21","esbuild":"^0.28.1","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"Caddy MCP server for Claude Code, Cursor, and any MCP client: admin API, config, routes, reverse proxy, TLS, PKI, metrics","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"~2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_2.4.1_1789182804955_0.2868057101604409","host":"s3://npm-registry-packages-npm-production"}},"2.4.2":{"name":"@yawlabs/caddy-mcp","version":"2.4.2","keywords":["caddy","caddy-mcp","caddy-server","caddyfile","mcp","mcp-server","model-context-protocol","reverse-proxy","web-server","admin-api","tls","acme","pki","prometheus","claude-code","cursor","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@2.4.2","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://yaw.sh/mcp-servers/caddy-mcp/","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"bin/caddy-mcp.mjs"},"dist":{"shasum":"b70f3a08ea07a3cb71c0b47a5c9953b986f2ace0","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-2.4.2.tgz","fileCount":17,"integrity":"sha512-I6yk7JkpjQ0NYyDaOQET/rObfP9aUd1VWB7H4dtAepzXnkF/uv7cYncbcI/HE+zfcMbv+fXYqd4D+KRjWNtmcw==","signatures":[{"sig":"MEUCIHtR71l53Odbv1ehOUEdj51gZ+w323XvetRuOTFlC6pvAiEAr1J3gwnCxzzXV9nWZNsAym6KNiRGZgN36a+EkiJxE+8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199906},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"93d6cc304bab969804802e582219a141c3bfe728","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/ bin/ scripts/","test":"vitest run","build":"tsup && tsc -p tsconfig.build.json","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/ bin/ scripts/","typecheck":"node scripts/typecheck.mjs","typecheck:tsc":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"qs":"^6.15.2","hono":"^4.12.21","esbuild":"^0.28.1","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"Caddy MCP server for Claude Code, Cursor, and any MCP client: admin API, config, routes, reverse proxy, TLS, PKI, metrics","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"~2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_2.4.2_1789272493087_0.1462770885305673","host":"s3://npm-registry-packages-npm-production"}},"2.4.3":{"name":"@yawlabs/caddy-mcp","version":"2.4.3","keywords":["caddy","caddy-mcp","caddy-server","caddyfile","mcp","mcp-server","model-context-protocol","reverse-proxy","web-server","admin-api","tls","acme","pki","prometheus","claude-code","cursor","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@2.4.3","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://yaw.sh/mcp-servers/caddy-mcp/","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"bin/caddy-mcp.mjs"},"dist":{"shasum":"7255538b4d96844f7cca850c01a45233f55cc6b8","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-2.4.3.tgz","fileCount":17,"integrity":"sha512-tfcA/4twNFnJauV0i0XWAauiMSmIF15pvMD0rG+3lzTfyvDqzyoh/Xf0Gizh1u6VL/Xsq2/m9aCu73iivReeBw==","signatures":[{"sig":"MEYCIQCCw6BljakJHvKXcixiUriCLiJOHn9iydman716/rZLXwIhAMlc6gpvrWRNaVyJVoVk797Uv/jDNhFRmNNchBypdt2P","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":199906},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"7c31f49ac54eb4031d1a94170e6b4050ae2fd43d","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/ bin/ scripts/","test":"vitest run","build":"tsup && tsc -p tsconfig.build.json","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/ bin/ scripts/","typecheck":"node scripts/typecheck.mjs","typecheck:tsc":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"qs":"^6.15.2","hono":"^4.12.21","esbuild":"^0.28.1","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"Caddy MCP server for Claude Code, Cursor, and any MCP client: admin API, config, routes, reverse proxy, TLS, PKI, metrics","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"~2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_2.4.3_1789298917100_0.5342945794219089","host":"s3://npm-registry-packages-npm-production"}},"2.4.4":{"name":"@yawlabs/caddy-mcp","version":"2.4.4","keywords":["caddy","caddy-mcp","caddy-server","caddyfile","mcp","mcp-server","model-context-protocol","reverse-proxy","web-server","admin-api","tls","acme","pki","prometheus","claude-code","cursor","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@2.4.4","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://yaw.sh/mcp-servers/caddy-mcp/","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"bin/caddy-mcp.mjs"},"dist":{"shasum":"ce7ec0224f4ccde8f0452f3d96aaa02ba5792ba5","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-2.4.4.tgz","fileCount":17,"integrity":"sha512-TgsLj08KG/fEKwSIEX88ozI/PIUWOWwwB/g4ZVdW8+NFLknlQ7EgVDDK3/sThbz7UIzaCqg4EIIULy6drRu8/Q==","signatures":[{"sig":"MEYCIQDi1wWCyQxydNBu9pCKQG3A/x1V6RhKI8vOIROayrMPLwIhALD/+KqZtMykgraPa14qZV9n13vzy23/6u9g8awWXJSE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206492},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"cefd7fbf2948c0194878e7b2739dc368ee9f0c9f","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/ bin/ scripts/","test":"vitest run","build":"tsup && tsc -p tsconfig.build.json","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/ bin/ scripts/","typecheck":"node scripts/typecheck.mjs","typecheck:tsc":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"qs":"^6.15.2","hono":"^4.12.21","esbuild":"^0.28.1","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"Caddy MCP server for Claude Code, Cursor, and any MCP client: admin API, config, routes, reverse proxy, TLS, PKI, metrics","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"~2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_2.4.4_1789335757594_0.12804815202933373","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@yawlabs/caddy-mcp","version":"2.5.0","keywords":["caddy","caddy-mcp","caddy-server","caddyfile","mcp","mcp-server","model-context-protocol","reverse-proxy","web-server","admin-api","tls","acme","pki","prometheus","claude-code","cursor","devtools","ai"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@2.5.0","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://yaw.sh/mcp-servers/caddy-mcp/","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"bin/caddy-mcp.mjs"},"dist":{"shasum":"fd63ebf01a9188e47c4fcbbce67bd2d191f60aa3","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-2.5.0.tgz","fileCount":17,"integrity":"sha512-gdJTDvARNflxqDdruKuyhnpzGSQ5j8+XCR/ZpZF4hBwOvN6aQo0SxondV+EKwmzKVmw/KCmKFRS3BuRu4ZX9ew==","signatures":[{"sig":"MEYCIQDtGJfZrj9O++tG9Gr7vJ/Bkl2yGbLgvu3nJOwen6KPlAIhAIAOA/vhrlSABDej46n/omvrr9vz5isRrIo30VAKUeJ3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206493},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"01972b84b43bb0c66644d13cadd58cffa4283808","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/ bin/ scripts/","test":"vitest run","build":"tsup && tsc -p tsconfig.build.json","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/ bin/ scripts/","typecheck":"node scripts/typecheck.mjs","typecheck:tsc":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"qs":"^6.15.2","hono":"^4.12.21","esbuild":"^0.28.1","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"Caddy MCP server for Claude Code, Cursor, and any MCP client: admin API, config, routes, reverse proxy, TLS, PKI, metrics","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"~2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_2.5.0_1789357142560_0.27717600282424537","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"@yawlabs/caddy-mcp","version":"2.5.1","keywords":["caddy","caddy-mcp","caddy-server","caddyfile","mcp","mcp-server","model-context-protocol","reverse-proxy","web-server","admin-api","tls","acme","pki","prometheus","claude-code","cursor","devtools","ai","ai-agents"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@2.5.1","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://yaw.sh/mcp-servers/caddy-mcp/","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"bin/caddy-mcp.mjs"},"dist":{"shasum":"9d3b5a2d9762e4296e4002117a6859953aa7ed8a","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-2.5.1.tgz","fileCount":17,"integrity":"sha512-P8FIaE0LKU8PHnAnZ05k6MXKOWArAAkD+OlEhQkENDdKXMndsuAQD3mF8fKTn9/9tGlSR5rxZcOiDDise4Ij3A==","signatures":[{"sig":"MEYCIQCiD95VaWDnJ4Ti55kuKwkEkZW2TLzcUDR4le3eMXDGLQIhANyFpb1itmmAtCzfyF+iof/yfjq11qwWYg+axV2gcM5H","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211734},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"f567fb12d6a6ffe8e5285d5458d5ba53dc051d2e","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/ bin/ scripts/","test":"vitest run","build":"tsup && tsc -p tsconfig.build.json","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/ bin/ scripts/","typecheck":"node scripts/typecheck.mjs","typecheck:tsc":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"qs":"^6.15.2","hono":"^4.12.21","esbuild":"^0.28.1","postcss":"^8.5.10","fast-uri":"^3.1.2","ip-address":"^10.1.1","@hono/node-server":"^1.19.13"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"Caddy MCP server for Claude Code, Cursor, and any MCP client: admin API, config, routes, reverse proxy, TLS, PKI, metrics","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.29.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"~2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_2.5.1_1789419177994_0.6962382279307588","host":"s3://npm-registry-packages-npm-production"}},"2.5.2":{"name":"@yawlabs/caddy-mcp","version":"2.5.2","keywords":["caddy","caddy-mcp","caddy-server","caddyfile","mcp","mcp-server","model-context-protocol","reverse-proxy","web-server","admin-api","tls","acme","pki","prometheus","claude-code","cursor","devtools","ai","ai-agents"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@2.5.2","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://yaw.sh/mcp-servers/caddy-mcp/","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"bin/caddy-mcp.mjs"},"dist":{"shasum":"16b1bda03f394732c72ddb86ba879b5fe24dc435","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-2.5.2.tgz","fileCount":17,"integrity":"sha512-TkZkCSQ8qYOQEDdvk1PtQBNm5hgfjZT8mhsHJeCvK+d1JFGpKN4NI+X7dGhwdmf7UDvfBILBOyU7ArFfdMtDgw==","signatures":[{"sig":"MEYCIQCJG8TQzuKg7gz0wde1fquw1e3CTQktVovfbI/XlhAlegIhAJdy5pFktzBjZTNBKM2kNlh4INBv8wdZq6q6d3CGMAIV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211733},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"e23168d6b3f148407943182e6844f74795cf367a","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/ bin/ scripts/","test":"vitest run","build":"tsup && tsc -p tsconfig.build.json","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/ bin/ scripts/","typecheck":"node scripts/typecheck.mjs","typecheck:tsc":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"qs":"^6.16.0","hono":"^4.13.5","esbuild":"^0.28.1","postcss":"^8.5.23","fast-uri":"^3.1.6","ip-address":"^10.3.1","@hono/node-server":"^1.19.15"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"Caddy MCP server for Claude Code, Cursor, and any MCP client: admin API, config, routes, reverse proxy, TLS, PKI, metrics","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"~2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_2.5.2_1789429723131_0.6575839736939582","host":"s3://npm-registry-packages-npm-production"}},"2.5.3":{"name":"@yawlabs/caddy-mcp","version":"2.5.3","keywords":["caddy","caddy-mcp","caddy-server","caddyfile","mcp","mcp-server","model-context-protocol","reverse-proxy","web-server","admin-api","tls","acme","pki","prometheus","claude-code","cursor","devtools","ai","ai-agents"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@2.5.3","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://yaw.sh/mcp-servers/caddy-mcp/","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"bin/caddy-mcp.mjs"},"dist":{"shasum":"b096d45c24600c854fa57e3a3c4117955e913bae","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-2.5.3.tgz","fileCount":17,"integrity":"sha512-ePhDVvbOonddqzgccBPs+gGtl+Lj+l2NtnydxDPvzfIgEQd9BN/GuHrgTNg2WvYWIa1Po/nafUdmiW9gl2AzgA==","signatures":[{"sig":"MEYCIQC4Kc5oqg+OmLuygtpq90rkd9LH04jpbDPAxvTjMHipBwIhAK27WPxGI5QUKvHR4UmIVQ+h2lvT0zqA+QyiyvpmQDK1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICdHcVJKpQr5D7cYGL3m/7nwlwCCfnRucMkQiKWN5iRvAiEAtnLJNN5Vx41sCWzjX0bcAfszasViXYmMSyjjivUX46o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":235087},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"894f1654e0151e879589c452a99563f1a278c6f0","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/ bin/ scripts/","test":"vitest run","build":"tsup && tsc -p tsconfig.build.json","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/ bin/ scripts/","typecheck":"node scripts/typecheck.mjs","typecheck:tsc":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"qs":"^6.16.0","hono":"^4.13.5","esbuild":"^0.28.1","postcss":"^8.5.23","fast-uri":"^3.1.6","ip-address":"^10.3.1","@hono/node-server":"^1.19.15"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"Caddy MCP server for Claude Code, Cursor, and any MCP client: admin API, config, routes, reverse proxy, TLS, PKI, metrics","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"~2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_2.5.3_1789848265773_0.6324036160496715","host":"s3://npm-registry-packages-npm-production"}},"2.5.4":{"name":"@yawlabs/caddy-mcp","version":"2.5.4","keywords":["caddy","caddy-mcp","caddy-server","caddyfile","mcp","mcp-server","model-context-protocol","reverse-proxy","web-server","admin-api","tls","acme","pki","prometheus","claude-code","cursor","devtools","ai","ai-agents"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@2.5.4","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://yaw.sh/mcp-servers/caddy-mcp/","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"bin/caddy-mcp.mjs"},"dist":{"shasum":"8c86f35cc8c382cad23b5216ef596bbc174b30c8","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-2.5.4.tgz","fileCount":17,"integrity":"sha512-I2fLYicy3B0Us+OT29o6nWnBK1UcFBztepza+THWLxTlnCnv4nDgwaleRk8AbX4tzk+gChupVPPhp7yAXVd9kQ==","signatures":[{"sig":"MEYCIQCrTk0Gqdx4CrcW9Y1ip0zv39YRryVQS3XMHbOj2QMHrQIhAI83mAgNQplNGvbvhgn56E8PZbePazpiN0Mm4RaO3xQs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCypVrzN7rXsvT01zY90lqQQeDsgsPRf7oHTn0An93OZwIhAPEBMA00GPQFFW0F0A0Du9FwBN6yZPZyWNjLDNVudnos","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":264815},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"e739072cd47e2af8f16e2571465f7b669b7d43f9","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/ bin/ scripts/","test":"vitest run","build":"tsup && tsc -p tsconfig.build.json","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/ bin/ scripts/","typecheck":"node scripts/typecheck.mjs","typecheck:tsc":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"qs":"^6.16.0","hono":"^4.13.5","esbuild":"^0.28.1","postcss":"^8.5.23","fast-uri":"^3.1.6","ip-address":"^10.3.1","@hono/node-server":"^1.19.15"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"Caddy MCP server for Claude Code, Cursor, and any MCP client: admin API, config, routes, reverse proxy, TLS, PKI, metrics","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"~2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_2.5.4_1789881216035_0.8628489677618936","host":"s3://npm-registry-packages-npm-production"}},"2.5.5":{"name":"@yawlabs/caddy-mcp","version":"2.5.5","keywords":["caddy","caddy-mcp","caddy-server","caddyfile","mcp","mcp-server","model-context-protocol","reverse-proxy","web-server","admin-api","tls","acme","pki","prometheus","claude-code","cursor","devtools","ai","ai-agents"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@2.5.5","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://yaw.sh/mcp-servers/caddy-mcp/","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"bin/caddy-mcp.mjs"},"dist":{"shasum":"e67f57c8f149d275fcc6b65bcb4cfc192a104a59","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-2.5.5.tgz","fileCount":17,"integrity":"sha512-tn7xmObJhdSU6H+xL+7x+puF2glPBLyGX14JRVVJii+tTh7EWFGRB+VgRlMmRWkdLbI+XJhwthMdasUErQIoFw==","signatures":[{"sig":"MEUCIDGpWmbfemM9nupdLcpcY5dn2lm4RMwd1KJaS6EjKlOoAiEAo2IadFod8DHLJdM+vCQubD3hWRZqQfPdhmOfZacTChU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDLIzHQcMHZqZ3KXbOQEaJGQ9OAdPtvLDWn3I+2N4y4SAIgJlgFSefo0KTR7si/wLqXrXKW3aF6XEs4S2cTXTVh+D0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":283238},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"e8fd92bd179e5ce0b06f8476cae168d124ff9c9d","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/ bin/ scripts/","test":"vitest run","build":"tsup && tsc -p tsconfig.build.json","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/ bin/ scripts/","typecheck":"node scripts/typecheck.mjs","typecheck:tsc":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"qs":"^6.16.0","hono":"^4.13.5","esbuild":"^0.28.1","postcss":"^8.5.23","fast-uri":"^3.1.6","ip-address":"^10.3.1","@hono/node-server":"^1.19.15"},"deprecated":"whole-config writes not confirm-gated (GHSA-6859-g3p8-jc93, GHSA-jff5-pw93-m3j3) — upgrade to 2.5.6 or later","repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"Caddy MCP server for Claude Code, Cursor, and any MCP client: admin API, config, routes, reverse proxy, TLS, PKI, metrics","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"~2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_2.5.5_1790350136965_0.8086718099365415","host":"s3://npm-registry-packages-npm-production"}},"2.5.6":{"name":"@yawlabs/caddy-mcp","version":"2.5.6","keywords":["caddy","caddy-mcp","caddy-server","caddyfile","mcp","mcp-server","model-context-protocol","reverse-proxy","web-server","admin-api","tls","acme","pki","prometheus","claude-code","cursor","devtools","ai","ai-agents"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@2.5.6","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://yaw.sh/mcp-servers/caddy-mcp/","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"bin/caddy-mcp.mjs"},"dist":{"shasum":"27b1bb67de7e4740a79ebaf928a71b2c44cd157d","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-2.5.6.tgz","fileCount":17,"integrity":"sha512-cxfezPTFyrsPMPZhmUkF0guZkrULXLCsjtS4hmf9vtdER05qUnbaIHmPKncEvtInKELspAGaWN+VV7b9S/Qmsg==","signatures":[{"sig":"MEYCIQDOe6StRheNjwk7pMcYy6IZSZDZxxIszOajItA34i95NAIhAKav7xCfolRlDI+pk417g9PQJ8grUcJeTPd0TjhevR8g","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAOSBtxMvBfgQmP5jRVeSGNk3+LXfT6MxuDUtR04WUjKAiEAvvaZk2/ZEe3IKcoyXbuW2CJeTCqMCjo/SQaUUA47mjo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":292775},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"ab9bd5630710acb332eb969bb5c073440f49905d","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/ bin/ scripts/","test":"vitest run","build":"tsup && tsc -p tsconfig.build.json","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/ bin/ scripts/","typecheck":"node scripts/typecheck.mjs","typecheck:tsc":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"qs":"^6.16.0","hono":"^4.13.5","esbuild":"^0.28.1","postcss":"^8.5.23","fast-uri":"^3.1.6","ip-address":"^10.3.1","@hono/node-server":"^1.19.15"},"repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"Caddy MCP server for Claude Code, Cursor, and any MCP client: admin API, config, routes, reverse proxy, TLS, PKI, metrics","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"~2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_2.5.6_1790360489845_0.08114373058723956","host":"s3://npm-registry-packages-npm-production"}},"2.5.7":{"name":"@yawlabs/caddy-mcp","version":"2.5.7","keywords":["caddy","caddy-mcp","caddy-server","caddyfile","mcp","mcp-server","model-context-protocol","reverse-proxy","web-server","admin-api","tls","acme","pki","prometheus","claude-code","cursor","devtools","ai","ai-agents"],"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","_id":"@yawlabs/caddy-mcp@2.5.7","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"homepage":"https://yaw.sh/mcp-servers/caddy-mcp/","bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"bin":{"caddy-mcp":"bin/caddy-mcp.mjs"},"dist":{"shasum":"0c7033b16b95f27833f3405da586661781f13948","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-2.5.7.tgz","fileCount":17,"integrity":"sha512-yqkG6juOjJyXoOtOgvK2FE7oocSa4EvwxL4LAXtDFJGz8omPmBXSzADwqxVDzQBu/mEUV7sXzMOcBDQcx/urig==","signatures":[{"sig":"MEUCIQCx8slHbdumSZML2cyaUJnbC0P8CQuoqnumb018/nf2kQIgaww8Nivp9tSdoxwcW7kNbB5z80mA03efdCo5AGW2GQk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCID/UK0Xx2iQekJylV+WTranS61dVXIfGmdPgpndFi+ziAiEAsOpJBeVYCfunGZdU47pf6z0nUT06kQSyjIxyUc9yqGw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":292775},"main":"./dist/server.js","type":"module","types":"./dist/server.d.ts","engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/ bin/ scripts/","test":"vitest run","build":"tsup && tsc -p tsconfig.build.json","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/ bin/ scripts/","typecheck":"node scripts/typecheck.mjs","typecheck:tsc":"tsc --noEmit","prepublishOnly":"npm run build"},"_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"overrides":{"qs":"^6.16.0","hono":"^4.13.5","esbuild":"^0.28.1","postcss":"^8.5.23","fast-uri":"^3.1.6","ip-address":"^10.3.1","@hono/node-server":"^1.19.15"},"repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"Caddy MCP server for Claude Code, Cursor, and any MCP client: admin API, config, routes, reverse proxy, TLS, PKI, metrics","directories":{},"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"~2.4.11"},"_npmOperationalInternal":{"tmp":"tmp/caddy-mcp_2.5.7_1790713944879_0.9746156014238285","host":"s3://npm-registry-packages-npm-production"}},"2.5.8":{"_id":"@yawlabs/caddy-mcp@2.5.8","bin":{"caddy-mcp":"bin/caddy-mcp.mjs"},"bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"dist":{"shasum":"1ef4f4fba6eccad0e49902758bf6f5aa2a7182fe","tarball":"https://registry.npmjs.org/@yawlabs/caddy-mcp/-/caddy-mcp-2.5.8.tgz","fileCount":17,"integrity":"sha512-798afOn97Yp/10HfToT3J9IVX7c3SWjXcOMZGKqim5jGZRHXt6JM6eQKwWYx1rnLJ/6yRDn/hTb/IcZM3VWGfA==","signatures":[{"sig":"MEQCIHJVJajbrKAOu/09ruASER5pPQ73KS6EodTBzWWWyNjYAiBgFaAdglpHX3I5pbH0Xy+cIj0XBYbpY+wihCN964Aojg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIDmSMjsb/fz/YbNc928Z0uyIhZc7tqfmMZX1PPNPwwjsAiB8Eo3QlfzMjy/1xRrhAORTdTxsPHkeQe/vxKyuEYVjPg=="}],"unpackedSize":293855},"main":"./dist/server.js","name":"@yawlabs/caddy-mcp","type":"module","types":"./dist/server.d.ts","author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"engines":{"node":">=20"},"exports":{".":{"types":"./dist/server.d.ts","import":"./dist/server.js"}},"gitHead":"dbfaceb112299e40351fbf2dfa56894d6a0d7bc2","license":"MIT","mcpName":"io.github.YawLabs/caddy-mcp","scripts":{"dev":"tsup --watch","lint":"node scripts/lint.mjs check src/ bin/ scripts/","test":"vitest run","build":"tsup && tsc -p tsconfig.build.json","start":"node dist/index.js","prepare":"git config core.hooksPath .githooks 2>/dev/null || true","test:ci":"npm run build && npm test","lint:fix":"node scripts/lint.mjs check --write src/ bin/ scripts/","typecheck":"node scripts/typecheck.mjs","typecheck:tsc":"tsc --noEmit","prepublishOnly":"npm run build"},"version":"2.5.8","_npmUser":{"name":"jeffyaw","email":"contact@yaw.sh"},"homepage":"https://yaw.sh/mcp-servers/caddy-mcp/","keywords":["caddy","caddy-mcp","caddy-server","caddyfile","mcp","mcp-server","model-context-protocol","reverse-proxy","web-server","admin-api","tls","acme","pki","prometheus","claude-code","cursor","devtools","ai","ai-agents"],"overrides":{"qs":"^6.16.0","hono":"^4.13.5","esbuild":"^0.28.1","postcss":"^8.5.23","fast-uri":"^3.1.6","ip-address":"^10.3.1","@hono/node-server":"^1.19.15"},"repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"_npmVersion":"11.13.0","description":"Caddy MCP server for Claude Code, Cursor, and any MCP client: admin API, config, routes, reverse proxy, TLS, PKI, metrics","directories":{},"maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"_nodeVersion":"22.22.2","dependencies":{"zod":"^4.3.6","@modelcontextprotocol/sdk":"^1.30.0"},"_hasShrinkwrap":false,"devDependencies":{"tsup":"^8.4.0","vitest":"^4.1.4","esbuild":"^0.28.1","postject":"^1.0.0-alpha.6","typescript":"^7.0.2","@types/node":"^26.0.0","@biomejs/biome":"~2.4.11"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/caddy-mcp_2.5.8_1790736639359_0.2602996237075548"}}},"time":{"created":"2026-04-09T03:20:34.238Z","modified":"2026-09-30T02:50:39.759Z","0.1.0":"2026-04-09T03:20:34.636Z","0.1.1":"2026-04-11T02:19:10.116Z","0.2.0":"2026-04-14T05:12:01.498Z","0.3.0":"2026-04-18T23:16:46.090Z","0.3.1":"2026-04-19T05:51:49.661Z","1.0.0":"2026-04-20T14:16:52.038Z","1.0.1":"2026-04-25T02:51:41.703Z","1.1.0":"2026-05-06T19:23:05.505Z","1.2.0":"2026-05-13T23:24:06.144Z","1.2.1":"2026-05-13T23:37:41.467Z","1.2.2":"2026-05-13T23:51:01.944Z","1.2.3":"2026-05-15T15:28:57.022Z","1.2.4":"2026-05-15T18:09:08.629Z","1.2.5":"2026-05-16T15:16:47.647Z","1.2.6":"2026-05-16T15:40:54.332Z","1.2.7":"2026-05-19T12:54:15.061Z","1.2.8":"2026-05-28T21:23:10.341Z","1.2.9":"2026-06-03T02:51:41.010Z","1.3.0":"2026-06-07T18:12:14.952Z","1.3.1":"2026-07-21T23:14:09.941Z","2.0.0":"2026-08-07T15:19:16.527Z","2.1.0":"2026-08-07T18:18:29.921Z","2.2.0":"2026-08-08T23:10:43.890Z","2.3.0":"2026-08-23T14:06:33.918Z","2.3.1":"2026-08-23T17:03:47.312Z","2.3.2":"2026-08-23T20:36:54.478Z","2.4.0":"2026-08-31T19:59:47.891Z","2.4.1":"2026-09-12T03:13:25.094Z","2.4.2":"2026-09-13T04:08:13.246Z","2.4.3":"2026-09-13T11:28:37.246Z","2.4.4":"2026-09-13T21:42:37.763Z","2.5.0":"2026-09-14T03:39:02.710Z","2.5.1":"2026-09-14T20:52:58.138Z","2.5.2":"2026-09-14T23:48:43.271Z","2.5.3":"2026-09-19T20:04:25.863Z","2.5.4":"2026-09-20T05:13:36.122Z","2.5.5":"2026-09-25T15:28:57.046Z","2.5.6":"2026-09-25T18:21:29.931Z","2.5.7":"2026-09-29T20:32:24.981Z","2.5.8":"2026-09-30T02:50:39.580Z"},"bugs":{"url":"https://github.com/YawLabs/caddy-mcp/issues"},"author":{"url":"https://yaw.sh","name":"Yaw Labs","email":"contact@yaw.sh"},"license":"MIT","homepage":"https://yaw.sh/mcp-servers/caddy-mcp/","keywords":["caddy","caddy-mcp","caddy-server","caddyfile","mcp","mcp-server","model-context-protocol","reverse-proxy","web-server","admin-api","tls","acme","pki","prometheus","claude-code","cursor","devtools","ai","ai-agents"],"repository":{"url":"git+https://github.com/YawLabs/caddy-mcp.git","type":"git"},"description":"Caddy MCP server for Claude Code, Cursor, and any MCP client: admin API, config, routes, reverse proxy, TLS, PKI, metrics","maintainers":[{"name":"jeffyaw","email":"contact@yaw.sh"}],"readme":"# @yawlabs/caddy-mcp\n\n[![Add to Yaw MCP](https://yaw.sh/yaw-mcp-button.svg)](https://yaw.sh/mcp/install?name=Caddy&command=npx&args=-y%2C%40yawlabs%2Fcaddy-mcp&description=Manage%20Caddy%20web%20servers%20-%20config%2C%20routes%2C%20TLS%2C%20PKI&source=https%3A%2F%2Fgithub.com%2FYawLabs%2Fcaddy-mcp)\n\nOne click adds this to your local Yaw MCP config so it's available in every Yaw Terminal session. Or install manually below.\n\n[![npm version](https://img.shields.io/npm/v/@yawlabs/caddy-mcp)](https://www.npmjs.com/package/@yawlabs/caddy-mcp)\n[![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)\n[![GitHub stars](https://img.shields.io/github/stars/YawLabs/caddy-mcp)](https://github.com/YawLabs/caddy-mcp/stargazers)\n\n**Manage Caddy web servers from Claude Code, Cursor, and any MCP client.** 18 tools + 4 resources covering every endpoint in Caddy's admin API reference — config, routes, reverse proxies, TLS, PKI, metrics, snapshots.\n\nBuilt and maintained by [Yaw Labs](https://yaw.sh).\n\n## Why this one?\n\nOther Caddy MCP servers wrap half the admin API and silently swallow errors. This one doesn't.\n\n- **Complete admin API coverage** — every endpoint in [Caddy's admin API reference](https://caddyserver.com/docs/api): `/load`, `/config/*`, `/id/*`, `/stop`, `/adapt`, `/pki/ca/*`, `/reverse_proxy/upstreams`, `/metrics`. No placeholder tools that 404. Caddy's Go runtime debug endpoints (`/debug/pprof/*`, `/debug/vars`) are deliberately not wrapped — for leak trends use `caddy_metrics` with `filter: \"go_goroutines\"` or `\"go_memstats\"`, which come from the same admin registry; for stack dumps, CPU profiles and traces, curl the admin endpoint directly ([Caddy profiling docs](https://caddyserver.com/docs/profiling)).\n- **Safe concurrent writes** — uses ETags (`If-Match`) so your changes never silently overwrite someone else's. Surfaces `HTTP 412 Precondition Failed` as a clear message, not a cryptic error.\n- **Safe-by-default mutations** — `caddy_config_set` defaults to idempotent `overwrite` (PATCH), not `append` (POST). Calling twice doesn't duplicate your route. A write to the config root — which replaces the *entire* config, admin endpoint included — is refused without `confirm=true` and snapshotted first, like `caddy_load`.\n- **Defensive parsing** — `caddy_list_routes` never crashes on malformed config, even if routes are null, handlers are strings, or matchers are non-arrays. Regression-tested.\n- **No leaked credentials in errors** — if `CADDY_ADMIN_URL` contains a token in the path/query, the connect-failed message shows only the origin.\n- **Fallback error surfacing** — when a TLS write PATCH fails and the PUT fallback also fails, both error bodies are returned so you know what actually went wrong.\n- **Tool annotations** — every tool declares `readOnlyHint`, `destructiveHint`, and `idempotentHint`, so MCP clients can skip confirmations for safe ops.\n- **Instant startup** — ships as a single bundle with two runtime deps (the MCP SDK + Zod). No 5-minute `node_modules` install.\n- **Input hardening** — adapter names, `@id` values, server names, and CA ids are all regex-validated with length caps. Blocks CRLF header injection and ReDoS.\n\n## Quick start\n\n**1. Enable the Caddy admin API**\n\nCaddy ships with the admin API enabled on `localhost:2019` by default. If you're running Caddy in Docker or on a remote host, expose it via `CADDY_ADMIN_URL`.\n\n**2. Create `.mcp.json` in your project root**\n\nmacOS / Linux / WSL:\n\n```json\n{\n  \"mcpServers\": {\n    \"caddy\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@yawlabs/caddy-mcp@latest\"]\n    }\n  }\n}\n```\n\nWindows:\n\n```json\n{\n  \"mcpServers\": {\n    \"caddy\": {\n      \"command\": \"cmd\",\n      \"args\": [\"/c\", \"npx\", \"-y\", \"@yawlabs/caddy-mcp@latest\"]\n    }\n  }\n}\n```\n\n> **Why the extra step on Windows?** Since Node 20, `child_process.spawn` cannot directly execute `.cmd` files (that's what `npx` is on Windows). Wrapping with `cmd /c` is the standard workaround. This file is safe to commit — it contains no secrets.\n\n**3. Restart and approve**\n\nRestart Claude Code (or your MCP client) and approve the Caddy MCP server when prompted.\n\nThat's it. Now ask your AI assistant:\n\n> \"Proxy api.local to localhost:3000\"\n>\n> \"What routes are configured on srv0?\"\n>\n> \"Show me the Prometheus metrics\"\n\n## Configuration\n\n| Environment variable | Default | Description |\n|---|---|---|\n| `CADDY_ADMIN_URL` | `http://localhost:2019` | Caddy admin API URL. Set to `http://caddy:2019` inside Docker, or an https URL for an admin endpoint behind a TLS-terminating reverse proxy — see Troubleshooting for the `Host` / `Origin` rules Caddy applies to anything that is not its own loopback address. Caddy's native remote admin listener (`admin.remote`, default `:2021`) is **not** supported: it requires a TLS client certificate, which caddy-mcp does not present. Also accepts a unix socket, in either `unix:///var/run/caddy-admin.sock` or Caddy's own `unix//var/run/caddy-admin.sock` spelling — see below. |\n| `CADDY_API_TOKEN` | (none) | Optional Bearer token, sent as `Authorization: Bearer <token>` on every request. Caddy's admin API has no token auth of its own and ignores this header — it matters only to an authenticating proxy in front of the admin endpoint, so leave it unset when caddy-mcp reaches Caddy directly. If the header does arrive at the admin listener, Caddy 2.0 through 2.11.2 writes it in clear into the `admin.api` \"received request\" log line, at INFO — on every path except `/metrics`, which has logged at DEBUG since 2.2.1. Run Caddy 2.11.3 or later, which logs it as `REDACTED`, or have the proxy strip the header once it has authenticated (Caddy: `header_up -Authorization`; nginx: `proxy_set_header Authorization \"\";`). |\n| `CADDY_MCP_SNAPSHOT_DIR` | (none) | Directory for persisting `caddy_revert` snapshots. Unset, snapshots live in memory only and are lost when this server restarts. Snapshots are full Caddy configs and can contain secrets, so the location is opt-in rather than defaulted. |\n| `CADDY_MAX_RETRIES` | `2` | Number of retries on transient failures: network errors, and 502/503/504 (which only a proxy in front of Caddy sends). Caddy's own 500s are deterministic rejections and never retry, nor do 4xx and 412. Requests a replay could change the outcome of also skip retry: POSTs to `/config/*` and `/id/*` (they append, or replace an existing key -- retrying could duplicate routes), and a PUT or DELETE at an array index such as `.../routes/0` (a replay would insert a second route, or remove the one that slid into that index), including a PUT to a bare `/id/<id>`, which Caddy resolves to the identified element's array index. Those match however the path is spelled — with trailing slashes, or with the trailing `/...` segment Caddy strips before it picks a method, so `.../routes/0/...` and `PUT /id/<id>/...` are covered too. A config change whose timeout fired is never retried (see `CADDY_LOAD_TIMEOUT`). A refused connection retries for every method, since nothing was sent. POSTs to `/load`, `/adapt`, `/stop` still retry. Hard-capped at 5; values above the cap log a one-time stderr notice so the clamp is visible. Set to `0` to disable. |\n| `CADDY_TIMEOUT` | `10000` | Timeout in ms for admin API requests that do not change the config: GETs, `/adapt`, `/stop`, PKI, upstreams and metrics. Config changes use `CADDY_LOAD_TIMEOUT`. Non-numeric, `<= 0`, or fractional values below 1ms fall back to the default. |\n| `CADDY_LOAD_TIMEOUT` | `55000` | Timeout in ms for every request that changes the config: `POST /load`, and every POST/PUT/PATCH/DELETE under `/config/*` and `/id/*`. Each is a full synchronous reload inside Caddy, which can legitimately run long -- Caddy sleeps through `apps.http.shutdown_delay` inside the reload whenever a change closes a listener, and a change can wait behind another reload. A timeout here is never retried: Caddy keeps applying a change after the client gives up, so the error says the outcome is unknown and to re-read the config before retrying (`caddy_load` and `caddy_revert` keep their snapshot in that case). Keep it below your MCP client's request timeout (60 s by default in the MCP SDK), or that error arrives after the client has given up and is never shown; the default sits 5 s under it. Non-numeric, `<= 0`, or fractional values below 1ms fall back to the default. |\n\n**Unix socket admin endpoints:**\n\nCaddy's recommended hardening is to move the admin API off a loopback port and\nonto a unix socket, where access is governed by filesystem permissions:\n\n```\n{\n  admin unix//var/run/caddy-admin.sock\n}\n```\n\nPoint `CADDY_ADMIN_URL` at the same path (`unix:///var/run/caddy-admin.sock`)\nand requests are sent over the socket instead of TCP. The process running\ncaddy-mcp needs read/write permission on the socket file. Leave\n`CADDY_API_TOKEN` unset here unless an authenticating proxy actually listens on\nthat socket: over a unix path caddy-mcp is usually talking to Caddy's own\nsocket, where the token does nothing — and, before Caddy 2.11.3, is logged in\nclear.\n\n**Alternate MCP clients:**\n\n| Client | Config file |\n|---|---|\n| Claude Code | `.mcp.json` (project root) or `~/.claude.json` (global) |\n| Claude Desktop | `~/Library/Application Support/Claude/claude_desktop_config.json` (macOS) |\n| Cursor | `~/.cursor/mcp.json` |\n| Windsurf | `~/.codeium/windsurf/mcp_config.json` |\n| VS Code | `.vscode/mcp.json` |\n\nUse the same JSON block shown above in any of these.\n\n## Tools\n\n### Config management (6)\n\n- **caddy_config_get** — Read config at any JSON path (or the full config).\n- **caddy_config_set** — Write config at a path. Modes: `overwrite` (PATCH, default, idempotent; the key must exist, and the whole subtree at the path is replaced), `append` (POST: appends to an array, but replaces an existing non-array key and cannot create missing parents), `insert` (PUT: inserts at an array position, or strictly creates a key along with any missing parents and fails with 409 if it exists — the way to create a server or app, even on an instance with no config). `append` at a path ending in `/...` (e.g. `apps/http/servers/srv0/routes/...`) with an **array** value appends every element in one request — all or nothing, one reload; without the `/...`, an array value is added as a single element and Caddy rejects the load for typed arrays like `routes` or `listen`. A path that addresses the config **root** (`''`, `'/'`, `'config'`, `'/config/'`, a slash-only variant, or any of those followed by a lone `...` segment) addresses the **entire** config and requires `confirm=true`: `overwrite` and `append` there replace the whole configuration with `value`, exactly as `caddy_load` would, including the `admin` block unless `value` carries one — after which Caddy re-binds its admin endpoint to the new config's `admin.listen`, to its default address when it sets none, or to no address at all when it sets `admin.disabled`, and a `CADDY_ADMIN_URL` pointing anywhere else stops working. A root write auto-snapshots the prior config first (when it can be read) so `caddy_revert` can restore it; no other path is snapshotted. `insert` at the root only succeeds after a root `caddy_config_delete` (409 otherwise), and `overwrite` is the reverse: after a root delete it answers 404 until `append`, `insert` or `caddy_load` re-creates the config.\n- **caddy_config_delete** — Delete config at a path. Requires `confirm=true` (deleting a parent path also removes every descendant). A path that addresses the config root (`''`, `'/'`, `'config'`, `'/config/'`, a slash-only variant, or any of those followed by a lone `...` segment) addresses the **entire** config: it unloads every app and server plus the `admin` block, after which Caddy re-binds its admin endpoint to its default address (`localhost:2019`, or `$CADDY_ADMIN` in Caddy's environment) — if `CADDY_ADMIN_URL` points anywhere else, neither caddy-mcp nor `caddy_revert` can reach Caddy afterwards. A root delete auto-snapshots the prior config first (when it can be read), so `caddy_revert` can restore it while Caddy is still reachable; no other path is snapshotted. To replace the config rather than unload it, use `caddy_load`.\n- **caddy_config_by_id** — Get/set/delete config by `@id` tag — much easier than navigating deep paths. The `delete` action requires `confirm=true`. Every `set` and `delete` first asks Caddy where the `id` resolves, and refuses one that does not resolve inside the config tree. If it resolves to the config root — normally because it is the config's own top-level `@id`, string or number — it names the **entire** config: `set` and `delete` with no subpath (or a lone `...`) then replace or unload the whole configuration, exactly as a root `caddy_config_set` / `caddy_config_delete` does — both require `confirm=true`, snapshot the prior config first, and report where the admin endpoint went. A subpath inside it is an ordinary write.\n- **caddy_load** — Replace the entire config atomically. Runs on `CADDY_LOAD_TIMEOUT` (55 seconds by default), like every config change. Auto-snapshots the prior config, and keeps that snapshot when the load times out with its outcome unknown. Lists the Caddyfile adapter's warnings, and reports a load that failed as an error even when Caddy answered HTTP 200 — which Caddy 2.11.4 does for a Caddyfile that adapted with warnings ([caddyserver/caddy#7246](https://github.com/caddyserver/caddy/issues/7246)). `format` is `json` (default) or `caddyfile`; stock Caddy registers only the `caddyfile` adapter, so for any other adapter compiled into a custom build, adapt first with `caddy_adapt` and load the JSON (the Atomic deploy example below).\n- **caddy_revert** — Manage config snapshots for rollback. Actions: `list`, `save`, `apply` (confirm-gated). In-memory, last 10. Auto-captured before `caddy_load`, and before a `caddy_config_delete`, `caddy_config_set` or `caddy_config_by_id` that addresses the config root. An `apply` that times out with its outcome unknown keeps the pre-revert config as snapshot [0], which shifts every older snapshot down one index; the error says where the target now sits.\n\n### Route operations (4)\n\n- **caddy_reverse_proxy** — Add a reverse proxy in one call: `from='api.local' to=['localhost:3000']`. Pass an optional `id` for idempotent writes — repeat calls replace the route in place instead of duplicating.\n- **caddy_add_route** — Add a route with full match/handle control (any Caddy handler).\n- **caddy_remove_route** — Remove a route by `@id` (preferred) or by index. Requires `confirm=true`.\n- **caddy_list_routes** — Human-readable route summary. Defensive: never crashes on weird config.\n\n### TLS & config conversion (2)\n\n- **caddy_tls** — Check or set TLS settings. Actions: `status`, `set_email` (ACME email), `set_acme_ca` (ACME CA URL), `set_acme_profile` (ACME profile, Caddy 2.10+ — experimental upstream: the ACME profiles spec is still a draft and Caddy marks the field subject to change. Caddy accepts any profile name on load, so a name the CA does not advertise fails only at issuance, in Caddy's own logs), and the read-only `ech_status` (the Encrypted ClientHello config at `apps/tls/encrypted_client_hello`, Caddy 2.10+). The set actions PATCH first; when `apps/tls` is not set they PUT a minimal config, which also creates any missing parents, so they work on an instance with no config at all. On an existing config they deep-merge into the issuer path and PATCH the result back, preserving siblings (custom certs, `on_demand`, additional policies). Refuses with a shape-specific error if the existing structure is unexpected — never clobbers.\n- **caddy_adapt** — Convert a config in any registered adapter format to Caddy JSON without applying it. `caddyfile` (built-in, default) plus any adapter module compiled into your Caddy binary — e.g., `nginx` ([caddy-nginx-adapter](https://github.com/caddyserver/nginx-adapter)), `yaml` ([caddy-yaml](https://github.com/abiosoft/caddy-yaml)). Great for previewing or porting from existing configs. One caveat on Caddy 2.11.4 and earlier: a Caddyfile `order` global option is not preview-only. It mutates that Caddy process's directive order, so it carries into later Caddyfile adapts and loads in the same process, and an `order` line that *fails* still removes the directive it names ([caddyserver/caddy#7995](https://github.com/caddyserver/caddy/pull/7995), fixed upstream but unreleased as of 2.11.4).\n\n### Server operations (6)\n\n- **caddy_status** — Connectivity check + config summary (server count, routes, TLS mode). The TLS label replays Caddy's own automatic-HTTPS rule over the stored config instead of guessing from the listen port, so it reads `enabled`, `enabled (no listener gets TLS: all are on the HTTP port)`, `auto (HTTPS)`, `auto (HTTPS: host matchers on a non-HTTP port)`, `mixed (TLS on non-HTTP listeners only)`, `off (HTTP only)`, `off (no host matchers)`, `off (automatic HTTPS disabled)` or `off (empty tls_connection_policies)`. The two qualified `enabled` readings come from Caddy deciding TLS per socket rather than per server (`app.go:535`): connection policies are ignored on the HTTP-port listener, so a server that binds only that port is configured for TLS and serves none of it.\n- **caddy_list_servers** — List all HTTP servers with names, addresses, route counts, and TLS status. Same labels as `caddy_status`, but this tool reads only `apps/http/servers` and so assumes the default `http_port` 80 / `https_port` 443 — on an instance with custom ports, `caddy_status` is the one that gets the label right.\n- **caddy_upstreams** — Reverse proxy backend health, as Caddy's `/reverse_proxy/upstreams` array returned verbatim. On Caddy 2.11.2+ this is **not** the configured upstream list: dynamic upstreams stay listed about 1 h after the dynamic source last returned them (so an address can outlive the config that referenced it), and a backend with requests in flight can appear twice when its resolved address differs from the entry's dial text. The extra copy always shows `fails 0` and repeats `num_requests` — do not sum `num_requests` across entries.\n- **caddy_metrics** — Prometheus metrics (request counts, durations, connections, TLS handshakes). Optional `filter` (substring match on metric name, keeps `# HELP` / `# TYPE` lines for retained metrics) and `max_lines` (default 500) keep responses compact on busy servers.\n- **caddy_pki** — CA info and certificate chains (default CA: `local`).\n- **caddy_stop** — Graceful shutdown. Requires `confirm=true` to prevent accidents.\n\n## Resources\n\nBrowsable read-only data — MCP clients can fetch these directly without a tool call:\n\n- `caddy://config` — Current full Caddy JSON configuration.\n- `caddy://servers` — Summary of all configured HTTP servers.\n- `caddy://upstreams` — Reverse proxy upstream health status, verbatim. Same 2.11.2+ caveat as `caddy_upstreams`: lingering dynamic upstreams and duplicate in-flight entries; do not sum `num_requests`.\n- `caddy://metrics` — Prometheus metrics (text exposition format). Capped at the first 500 lines to keep client context bounded; use the `caddy_metrics` tool with `filter` / `max_lines` for filtered or larger output.\n\n## Examples\n\n### Add a reverse proxy\n\n```\n> \"Proxy api.example.com to my app on port 3000\"\n→ caddy_reverse_proxy({ from: \"api.example.com\", to: [\"localhost:3000\"] })\n```\n\n### Idempotent reverse proxy (safe to re-run from automation)\n\n```\n> \"Make sure api.example.com points at localhost:3000, with a stable id\"\n→ caddy_reverse_proxy({ from: \"api.example.com\", to: [\"localhost:3000\"], id: \"api-prod\" })\n  # First call creates the route under @id=\"api-prod\".\n  # Subsequent calls with the same id REPLACE in place — no duplicate routes.\n  # Refuses with a clear error if \"api-prod\" is already in use by a non-route\n  # config object (TLS issuer, server, etc.) — @ids are config-global in Caddy.\n```\n\n### Filter Prometheus metrics\n\n```\n> \"Just the HTTP request metrics, please\"\n→ caddy_metrics({ filter: \"http_requests\" })\n  # Keeps sample lines whose metric name contains \"http_requests\",\n  # plus their `# HELP` / `# TYPE` lines. Drops the rest.\n```\n\n### Preview a Caddyfile before applying it\n\n```\n> \"Convert this Caddyfile to JSON so I can review it:\n   example.com {\n     reverse_proxy localhost:8080\n   }\"\n→ caddy_adapt({ config: \"...\" })\n```\n\n### Diagnose slow routes\n\n```\n> \"Fetch Prometheus metrics and tell me which route is slowest\"\n→ caddy_metrics()\n```\n\n### Safely update a route by @id\n\n```\n> \"Update the route with @id 'api-v2' to point to the new backend\"\n→ caddy_config_by_id({ id: \"api-v2\", action: \"set\", value: {...} })\n  # Uses ETags — you'll get HTTP 412 if someone else changed it first\n```\n\n### Atomic deploy\n\n```\n> \"Replace the whole config with this Caddyfile\"\n→ caddy_adapt({ config: \"...\" })  # validate first\n→ caddy_load({ config: adaptedJson })  # apply atomically\n```\n\n## Troubleshooting\n\n**\"Cannot connect to Caddy admin API\"**\n\n- Make sure Caddy is running. `caddy run` or `systemctl status caddy`.\n- Check the admin endpoint. Default is `http://localhost:2019`. If Caddy is in Docker, use the container hostname.\n- Set `CADDY_ADMIN_URL` in your MCP config `env` to match.\n- Over an SSH tunnel, map the **same** port on both ends (`ssh -L 2019:localhost:2019 <host>`) and leave `CADDY_ADMIN_URL` at its default. Caddy checks the `Host` header against its own listen address, so a tunnel on a different local port answers `403 host not allowed: localhost:<port>`.\n- Behind a reverse proxy, add the proxy's `host:port` to the remote Caddy's `admin.origins`. Caddy checks both `Host` and `Origin`, and setting `admin.origins` **replaces** the default `localhost` / `127.0.0.1` / `::1` entries, so list `localhost:2019` too if local tools still need access. A non-loopback or wildcard `admin.listen` — the Docker `http://caddy:2019` above, for instance — does not allow an arbitrary `Host` either, so it needs `admin.origins` set as well.\n- Pointing `CADDY_ADMIN_URL` at Caddy's native remote admin listener (`admin.remote`, default `:2021`) fails before any HTTP is exchanged, because that listener requires a TLS client certificate and caddy-mcp does not present one. It surfaces as this message even though Caddy is running and accepted the connection.\n\n**\"HTTP 412 Precondition Failed\"**\n\n- Someone (or something) changed the config between your read and your write.\n- The cached ETag has been invalidated. Re-read the config and retry.\n\n**\"HTTP 401\" or \"HTTP 403\" on any request**\n\n- Caddy's own checks run on every admin request, reads included, and always answer with a JSON `{\"error\":...}` body. If you got one, it is Caddy: the `admin.listen` / `admin.origins` allowlists (`host not allowed: ...`, `client is not allowed to access from origin ...`, `required Origin header is missing or invalid` — see the tunnel and proxy bullets above), or, on `admin.remote`, its mTLS identity and permission checks.\n- A **bodiless** 401/403 came from something in front of Caddy — a proxy, a gateway, an SSO layer. `CADDY_API_TOKEN` applies there and only there, so a missing or wrong token is one cause and the proxy's other access rules are another.\n- Caddy's admin API has no bearer-token auth of its own, so setting `CADDY_API_TOKEN` will not clear a 401/403 that carries a Caddy error body.\n\n**\"directive 'X' is not an ordered HTTP handler\"** from `caddy_adapt`, or from `caddy_load` with `format: \"caddyfile\"`\n\n- Two causes, and Caddy's error cannot tell them apart:\n  - The directive has no registered order — usually a plugin directive. Add an `order` global option, or wrap it in a `route` block.\n  - On Caddy 2.11.4 and earlier, an earlier failed or concurrent Caddyfile adaptation that used `order` in this same Caddy process removed that directive from the process-wide directive order. Restarting Caddy restores the default order ([caddyserver/caddy#7995](https://github.com/caddyserver/caddy/pull/7995), unreleased).\n- The second cause is why a Caddyfile that adapted a minute ago can start failing with no edit to it. Caddy's own advice (\"try … using the order global option\") fixes the first cause and papers over the second.\n\n**`SIGUSR1` / `systemctl reload caddy` stops reloading the Caddyfile**\n\n- Expected, and not caused by a bug here. Since Caddy 2.11.1, `SIGUSR1` reloads\n  from the file on disk **only if the config has never been changed through the\n  admin API**. The first write from caddy-mcp (or any other API client) makes\n  Caddy consider the running config API-owned, and `SIGUSR1` becomes a no-op.\n- Pick one owner per instance. If the Caddyfile is the source of truth, use\n  caddy-mcp read-only tools (`caddy_status`, `caddy_list_routes`, `caddy_adapt`)\n  and reload from the file. If caddy-mcp owns the config, apply changes with\n  `caddy_load` instead of `SIGUSR1`.\n- One qualification on Caddy 2.11.4 and earlier: `caddy_adapt` is read-only with\n  respect to the config, but not with respect to the adapter. A Caddyfile `order`\n  global option changes that process's directive order, and a failed `order` line\n  can break later in-process adaptations — which is what a `SIGUSR1` reload and\n  `caddy run --watch` do. `caddy reload`, which is what the packaged\n  `systemctl reload caddy` runs, adapts in the CLI process and is unaffected.\n\n**Windows: MCP server doesn't start**\n\n- Use the `cmd /c npx ...` pattern from the Quick start section. Node 20+ can't spawn `.cmd` files directly.\n\n## Requirements\n\n- Node.js 20+\n- Caddy 2.11.3 or later, with the admin API enabled (default: `localhost:2019`).\n  The latest 2.11.x is recommended; verified against Caddy 2.11.4. Two admin-side\n  reasons for that floor:\n  - Caddy 2.11.2 and earlier log every admin request's headers at INFO, so if the\n    `Authorization` header from `CADDY_API_TOKEN` reaches the admin listener, the\n    token is written to Caddy's log in plain text\n    ([caddyserver/caddy#7578](https://github.com/caddyserver/caddy/pull/7578)).\n  - Caddy 2.11.1 and earlier accept a duplicate `@id` silently. A racing\n    `caddy_reverse_proxy` create, or a `caddy_config_by_id` set with\n    `mode: \"insert\"` on a route id, leaves two elements sharing one `@id`, and\n    `/id/` resolves to only one of them.\n\n  Older 2.x mostly works, with two exceptions that both come from how Caddy sends\n  its `ETag`. Caddy 2.8.0 and later send it as a response header. Caddy 2.5.2\n  through 2.7.x send it as an HTTP trailer, which this client cannot read, and\n  earlier versions send none. So before 2.8.0:\n  - the `If-Match` (ETag) concurrency guard is inactive, because no ETag is ever\n    cached to echo back;\n  - every `caddy_config_by_id` `set` and `delete` is refused, because the tool\n    reads the ETag to learn where Caddy resolves the `@id` before it writes\n    through it, and fails closed when it cannot.\n\n  The `@id` write path relies on `PATCH` semantics that the live integration\n  suite pins per release.\n\n## Contributing\n\n```bash\ngit clone https://github.com/YawLabs/caddy-mcp.git\ncd caddy-mcp\nnpm install\nnpm run lint       # Biome check\nnpm run lint:fix   # Auto-fix\nnpm run build      # tsup bundle\nnpm test           # Vitest (782 unit tests, +39 POSIX-only unix-socket and launcher tests; +39 live-Caddy integration tests gated by CADDY_MCP_INTEGRATION=1)\nnpm run typecheck  # tsc --noEmit\n```\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for the full workflow, including release process.\n\n## License\n\nMIT\n\n[![Follow @YawLabs on X](https://img.shields.io/badge/follow-%40YawLabs-000000?logo=x&logoColor=white)](https://x.com/YawLabs)\n","readmeFilename":"README.md"}