# ngaycdn Image CDN Self-hosted image CDN on Cloudflare for WordPress, Astro, and AI agents. Domain: `cdn.ngay.net`. > Quick start for AI agents: read [agent-guide.md](https://cdn.ngay.net/agent-guide.md) — covers MCP and REST upload, in Node, Python, curl, n8n. ## Docs - [Agent integration (HTML)](https://cdn.ngay.net/agent): how to wire any AI agent — MCP and REST API. - [Agent integration (Markdown)](https://cdn.ngay.net/agent-guide.md): same content, machine-readable. - [MCP tool reference](https://cdn.ngay.net/docs/ai-agent-auto-upload.md): the 5 MCP tools exposed at `/mcp`. ## API surface - `POST /api/upload` — multipart image upload (jpg, png, webp, gif, avif, svg). Bearer API key. - `GET /api/images` — list with `?q=`, `?tags=t1,t2`, `?excludeTags=t3,t4`, `?category=`, `?from=`, `?to=`, `?page=`, `?limit=`. - `GET /api/images/:id` — single image with relations. - `PATCH /api/images/:id` — `{ slug?, altText?, tagIds?, categoryIds? }`. - `DELETE /api/images/:id` — soft delete (30-day purge). - `GET /api/tags`, `POST /api/tags`, `PATCH /api/tags/:id`, `DELETE /api/tags/:id`. - `GET /api/categories`, `POST /api/categories`, `PATCH /api/categories/:id`, `DELETE /api/categories/:id`. - `POST /mcp` — MCP HTTP transport (JSON-RPC 2.0). 5 tools. ## Delivery surface - `GET //.` — original (`` = your public tenant slug) - `GET ///.` — preset (`thumb` | `cover` | `og` | `full`) - Query: `?w=400&h=300&format=auto&q=80` ## Indexing policy Some images are flagged "noindex" via the tag system (e.g. tags like `Zalo` for private screenshots). The delivery handler emits `X-Robots-Tag: noindex, noimageindex, nofollow` for those — Google, Bing, GPTBot, ClaudeBot, Google-Extended, and most well-behaved crawlers must skip them. Admin-only routes and API endpoints are blocked in `robots.txt`.