AI-agent-first headless CMS for Astro 6 + Cloudflare. Provides HTTP handlers and Astro integration for managing blog posts via KV storage with agent API endpoints.
AgentCMS provides 14 tools with consistent naming (verb_noun pattern: handleListPosts, handlePublish, etc.) and descriptions present for all tools. However, descriptions are brief (avg ~60 chars, below the 194-char baseline for A+ tools) and lack context on WHEN to use each tool or dependencies between them. Parameter schemas are present with types and descriptions, but lack constraints (enums, ranges, patterns). Output schemas are not documented. Error handling guidance is absent. The server uses HTTP transport (good), but tool definitions appear inferred from handler names rather than explicitly registered with full MCP metadata.
Get agent context including site configuration, available tags, categories, and recent posts
Delete a blog post (agent-only endpoint)
Get a single post by slug for agent editing (includes drafts)
List all posts (published, scheduled, and drafts) for agent management
Update an existing blog post (agent-only endpoint)
Upload an image to R2 storage for use in posts
Get a single post by slug from the public API
Descriptions are too brief (avg ~60 chars vs 194-char baseline). Missing WHEN to use each tool, dependencies, and prerequisites. E.g., 'Get paginated, filterable posts from the public API' lacks context on when to call this vs handleAgentListPosts.
Output schemas are not documented. LLMs cannot plan downstream calls or extract required fields. E.g., handleListPosts returns paginated results but the response structure (fields, pagination metadata) is not specified.
Parameter constraints missing. 'page' and 'limit' lack min/max bounds; 'status' enum is present but other string params (tag, category, slug) accept free-form input without validation guidance.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 53 | 2026-07-28+ | v2 |
Get all unique categories with counts from the public API
Get paginated, filterable posts from the public API
Get all unique tags with counts from the public API
Publish a new blog post (agent-only endpoint)
Generate robots.txt for search engine crawlers
Generate sitemap.xml for SEO
Serve the MCP agent skill definition at /.well-known/agent-skill.json
Destructive operations (handleAgentDeletePost) lack confirmation or dry-run support. No error guidance on recovery. LLMs may delete posts without safeguards.
Tool naming ambiguity: 'handleAgentListPosts' vs 'handleListPosts' differ only in 'Agent' prefix. LLMs may conflate them. Descriptions do not clarify that agent tools include drafts/scheduled posts while public tools show only published.