CDN.MN

official

Agent-ready global image CDN that AI agents can install and operate through MCP.

What can you do with CDN MN MCP?

  • Analyze websites for CDN optimization — Ask the assistant to run analyze_website on a public site to assess image delivery and performance opportunities.
  • Estimate image savings — Use estimate_image_savings to quantify potential bandwidth and cost reductions from image optimization.
  • Create and manage projects — Instruct the assistant to create a new CDN project with create_project or list existing ones via list_projects.
  • Verify domains and activate hostnames — Request verify_domain for origin-ownership checks, then activate_hostname to enable production delivery.
  • Purge cached content — Use purge_urls to invalidate specific cached objects across the CDN network.
  • Configure origins and apply integrations — Ask the assistant to set up or modify origin settings with configure_origin and apply approved changes via apply_integration.

Documentation

Live now

Device-code registration, scoped access, a per-scope approval valve & instant revoke, machine-readable discovery (auth.md, llms.txt, OpenAPI, and the SKILL.md workflow), and the MCP server with 23 tools — the reads, public-site image analysis + savings estimates, project creation, cache purge, domain verification, and every production mutation behind a sensitive scope: hostname activation, adding funds, origin configuration, project archive, and applying the delivery configuration. Each runs on its own for an autonomous agent — except money, which always waits for your approval — or opens an approval card when you ask to be in the loop. The published @cdnmn/cli + @cdnmn/sdk let an agent detect, configure, rewrite, test, and verify straight from the project — honoring the repo’s AGENTS.md.

Rolling out

The integration-planning + preview tool set (integration plans, non-production previews) and the anonymous no-claim registration path are on the roadmap — labelled below wherever they appear.

Machine-facing surfaces

Authentication and discovery are live at well-known locations — an agent can register and hold a scoped token today:

GET  /auth.md                → the human-readable access guide
GET  /llms.txt               → machine index of the agent surfaces
GET  /openapi.json           → OpenAPI 3.1 for the REST endpoints
GET  /.well-known/oauth-protected-resource
GET  /.well-known/oauth-authorization-server
POST /api/agent/register     → device_code + user_code
POST /api/agent/token        → poll → cdnmn_at_… bearer token
POST /api/mcp                → MCP 2025-06-18: tools/list, tools/call

Liveserved by the CDN.MN app

Two live ways in: the plain device-claim path pairs the agent to your account — you open the claim link (/agents/claim) and grant the scopes; or an agent with your email registers with provision_workspace to get a live workspace and token immediately, no human step, which you adopt from an email later. Billing and deletion stay locked until you adopt it.

The agent skill Workflow live

The install workflow is published at /SKILL.md — a step-by-step playbook over the live tools (verify → activate → fund). The packaged platform references and verification scripts below are still rolling out:

cdn-mn-agent/
├── SKILL.md
├── scripts/
│   ├── detect-platform
│   ├── analyze-images
│   ├── create-preview
│   └── verify-installation
├── references/
│   ├── nextjs.md · wordpress.md · nuxt.md
│   ├── static-sites.md · nginx.md
│   └── rollback.md
└── assets/
    ├── config-templates/
    └── report-template.md

Planned packaged layout — the SKILL.md workflow is live today.

Precise scopes, not master keys

Agents request exactly the capability they need. Nothing generic like api.write.

site:analyzeAnalyze a public website or origin

project:readInspect a CDN.MN project

project:createCreate a new project

origin:readView origin configuration

origin:writeConfigure or change an origin

integration:planGenerate an integration plan

integration:previewCreate a non-production preview

integration:applyApply approved changes to production

domain:readView domain status

domain:verifyRun origin-ownership verification for a site

domain:activateActivate production delivery

analytics:readRead usage and savings data

cache:purgePurge selected objects

billing:readRead plan and usage

billing:writeChange plan or authorize spend

project:deleteDelete a project

files:readList file collections and files

files:writeCreate collections and upload files

files:publishMake a collection public or private

Scopes in red (origin:write, integration:apply, domain:activate, billing:write, project:delete, files:publish) are never granted by default. When you do grant one, the agent acts on its own within it — unless you tick “require my approval each time” at connect time to keep a per-use approval card. Money (billing:write) always requires that approval — its valve is locked on and cannot be opted out.

How an agent gets in

Following the auth.md model — with practical fallbacks, not “works with every agent” claims.

01 · PROVISIONED WORKSPACE

Live

No human step to start

An agent with your email registers with provision_workspace and gets a live workspace + a scoped token immediately — it can analyze, create a project, verify a domain, and serve on a one-time $5 starter credit with no approval to begin. You adopt the workspace from an email later; billing, deletion, and custom origins stay locked until you do.

owner_email + provision_workspace → token on the first poll · adopt by email · unadopted swept ~72h

02 · USER-CLAIMED

Live

You confirm a claim code

The agent registers for a device code and shows you a claim link. You sign in to CDN.MN, see exactly the scopes it asked for, and approve — the agent then polls and receives a scoped bearer token. A live path when you'd rather grant access up front.

device-code ceremony on a CDN.MN-owned page · tokens stored hashed

03 · ANONYMOUS PREVIEW

Planned

No user identity

The read-only preview scopes an agent may request before any human is involved — analyze a public site, but touch nothing a customer owns. The no-claim path and its plan/preview tools are still rolling out.

site:analyze · analytics:read · billing:read (plan/preview scopes reserved until their tools ship)

04 · AGENT-VERIFIED

Planned

Provider attests identity

Where the agent provider supports identity assertion, the agent will request an audience-specific assertion after your consent; CDN.MN verifies it and returns a scoped credential. Planned, and never the only path.

arrives as providers adopt it — the paths above always work

High-level, idempotent MCP tools 23 tools live

23 tools are callable today at /api/mcp — the reads, public-site image analysis, project creation, domain verification, cache purge, and every sensitive production mutation. A sensitive tool runs on its own for an autonomous agent — except adding funds, which always waits for your approval — or opens an approval card when you asked to be in the loop; the integration-plan + preview tools are still rolling out, and the agent never assembles low-level configuration blindly:

list_projects

get_analytics

get_billing

get_domains

get_approval_status

activate_hostname

verify_domain

add_funds

change_plan

configure_origin

delete_project

apply_integration

purge_urls

create_project

rollback_configuration

analyze_website

estimate_image_savings

detect_integration_strategy

list_collections

list_files

create_collection

upload_file

set_collection_access

create_preview

generate_integration_plan

verify_image_delivery

green = callable now · grey = rolling out

Every mutating tool supports

Designed so it’s hard to accidentally create duplicates, route to the wrong origin, or produce an unbounded bill. Live today on every sensitive tool (activate_hostname shown here): dry_run and idempotency_key are accepted and bound to the action, and a repeated call with the same key never runs twice.

accepted on every sensitive tool (example: activate_hostname):
  site_id: "s_..."
  dry_run: true
  idempotency_key: "..."

→ returns now, when autonomous:
  status: executed · execution.hostname
  (the action ran inline)

→ returns now, when you require approval:
  approval_required · approval_id
  poll_with: get_approval_status

→ every sensitive action returns a self-describing contract:
  proposed_changes · warnings
  rollback_plan · verification_steps
  (on the tool response, on get_approval_status,
   and on the owner's approval card)

Copyable agent prompts

These appear on the homepage, code repository, agent skill, and framework guides.

Add CDN.MN to this website.

Keep the current origin and existing application behavior. Analyze the
image pipeline, estimate potential savings, detect the safest
integration strategy, create the CDN.MN project, configure responsive
image delivery and modern formats, run the project tests, and ask me
before changing DNS, billing, or production deployment.

Optional AGENTS.md snippet for your project

AGENTS.md is the emerging convention for giving coding agents persistent project guidance. If your agent honors it, add this section so every CDN.MN change follows your project’s rules — your direct instruction always takes priority.

## CDN.MN image delivery

- Read the current CDN.MN project configuration before changing image URLs.
- Keep the existing image origin as the fallback unless explicitly instructed.
- Never commit CDN.MN access tokens, claim tokens, or API credentials.
- Create integration changes in a separate branch.
- Run the project build, tests, and broken-image verification before completion.
- Use a CDN.MN preview before requesting production activation.
- Do not modify DNS, billing, or production deployment without explicit approval.
- Report all changed files, configuration changes, verification results,
  and rollback steps.