{"_id":"@bossforce.ai/mcp-cloudflare","name":"@bossforce.ai/mcp-cloudflare","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@bossforce.ai/mcp-cloudflare","version":"0.1.0","type":"module","repository":{"type":"git","url":"git+https://github.com/bossforce-ai/bossforce-tools.git","directory":"mcps/cloud-devops/cloudflare"},"publishConfig":{"access":"public"},"bin":{"bossforce-mcp-cloudflare":"dist/bin.js"},"dependencies":{"zod":"^4.4.3","@bossforce.ai/mcp-core":"0.3.0"},"devDependencies":{"@bossforce.ai/mcp-testkit":"0.0.0"},"scripts":{"build":"tsc -p tsconfig.json","test":"node --test \"dist/*.test.js\""},"_id":"@bossforce.ai/mcp-cloudflare@0.1.0","description":"MCP server for the **Cloudflare API v4**, authenticated with a scoped API token (`Authorization: Bearer <token>`). A good fit for automating DNS: resolving a domain to its zone, listing records, and creating or overwriting them.","bugs":{"url":"https://github.com/bossforce-ai/bossforce-tools/issues"},"homepage":"https://github.com/bossforce-ai/bossforce-tools#readme","_integrity":"sha512-oRZo3yZiRlfR/AzLUN4hHIaopsbFcV6jh/TGDmCknpcWAdrDEt79xXS23QVCpu4ro2j29cMaVzwksruPbgEBbA==","_resolved":"C:\\Users\\user\\AppData\\Local\\Temp\\d85c0fafe324d1c88be13d4b8e656506\\bossforce.ai-mcp-cloudflare-0.1.0.tgz","_from":"file:bossforce.ai-mcp-cloudflare-0.1.0.tgz","_nodeVersion":"22.18.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-oRZo3yZiRlfR/AzLUN4hHIaopsbFcV6jh/TGDmCknpcWAdrDEt79xXS23QVCpu4ro2j29cMaVzwksruPbgEBbA==","shasum":"7209b70de2fcc9b5da57b3bcc8d557a6abddb5a0","tarball":"https://registry.npmjs.org/@bossforce.ai/mcp-cloudflare/-/mcp-cloudflare-0.1.0.tgz","fileCount":26,"unpackedSize":28762,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHwazHhQo5PuAhOd1+VCTeDVxiAugrrP5V4c70HkDRsNAiEAkitmqr0JfrRebWwdbuho85RUcpuxoKoCWJ+etsBexJs="}]},"_npmUser":{"name":"bossforce.ai","email":"bossforce.ai@gmail.com"},"directories":{},"maintainers":[{"name":"bossforce.ai","email":"bossforce.ai@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/mcp-cloudflare_0.1.0_1781069245893_0.36757456666934996"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-10T05:27:25.730Z","0.1.0":"2026-06-10T05:27:26.025Z","modified":"2026-06-10T05:27:26.389Z"},"maintainers":[{"name":"bossforce.ai","email":"bossforce.ai@gmail.com"}],"description":"MCP server for the **Cloudflare API v4**, authenticated with a scoped API token (`Authorization: Bearer <token>`). A good fit for automating DNS: resolving a domain to its zone, listing records, and creating or overwriting them.","homepage":"https://github.com/bossforce-ai/bossforce-tools#readme","repository":{"type":"git","url":"git+https://github.com/bossforce-ai/bossforce-tools.git","directory":"mcps/cloud-devops/cloudflare"},"bugs":{"url":"https://github.com/bossforce-ai/bossforce-tools/issues"},"readme":"# @bossforce.ai/mcp-cloudflare\n\nMCP server for the **Cloudflare API v4**, authenticated with a scoped API token\n(`Authorization: Bearer <token>`). A good fit for automating DNS: resolving a\ndomain to its zone, listing records, and creating or overwriting them.\n\n## Credentials\n\n| Env                    | How to obtain                                                                                                                                                         |\n| ---------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `CLOUDFLARE_API_TOKEN` | Create a scoped token in the Cloudflare dashboard (My Profile → [API Tokens](https://dash.cloudflare.com/profile/api-tokens)), grant Zone Read and DNS Edit, copy it. |\n\nRecommended permissions: **Zone → Zone (Read)** and **Zone → DNS (Edit)**,\nscoped to the zones you manage. The token is read lazily, so the server boots and\nanswers `tools/list` without it; calls fail with an `auth` error until it is set.\n\n## Tools\n\n| Tool                | Arguments                                                             | Returns                  |\n| ------------------- | --------------------------------------------------------------------- | ------------------------ |\n| `list_zones`        | `name?`, `status?`, `page?`, `per_page?`                              | `{ items }` of zones     |\n| `list_dns_records`  | `zone_id`, `type?`, `name?`, `content?`, `page?`, `per_page?`         | `{ items }` of records   |\n| `create_dns_record` | `zone_id`, `type`, `name`, `content?`, `ttl?`, `proxied?`, `comment?` | the created record       |\n| `update_dns_record` | `zone_id`, `dns_record_id`, `type`, `name`, `content?`, `ttl?`, …     | the updated record       |\n| `verify_token`      | (none)                                                                | token id, status, window |\n\nResponses are unwrapped from Cloudflare's `{ success, errors, result }` envelope\nand returned as `structuredContent`. List endpoints wrap the bare array under\n`items`.\n\n### Working with DNS\n\nStart with `list_zones` (optionally `name: \"example.com\"`) to get the `zone_id`,\nthen `list_dns_records` to find a record's `dns_record_id`. `create_dns_record`\nrequires `type` and `name`; `content`/`ttl`/`proxied` depend on the record type.\n`update_dns_record` uses **PUT** and overwrites the whole record — pass every\nfield it should keep, not just the ones you change.\n\n## Develop\n\n```bash\npnpm --filter @bossforce.ai/mcp-cloudflare build\npnpm --filter @bossforce.ai/mcp-cloudflare test\n```\n\nRegenerate the tools/list snapshot after an intentional signature change:\n\n```bash\nUPDATE_SNAPSHOTS=1 pnpm --filter @bossforce.ai/mcp-cloudflare test\n```\n","readmeFilename":"README.md","_rev":"1-54cf824fe1d23278a9c715a53ed27110"}