Model Context Protocol server for Strapi headless CMS with CRUD operations, content schema introspection, web research, and AI-powered content generation
Server provides solid foundational tool definitions with mostly good descriptions and proper naming conventions. All 10 tools follow verb_noun naming patterns correctly. Schemas are present for all tools using Zod validation. However, several issues limit the score: (1) output schemas are not formally documented, responses are JSON stringified without explicit field descriptions; (2) some parameter descriptions lack specificity around constraints and expected formats; (3) three tools (research_topic, generate_draft, create_content_from_research) are not visible in the provided source code snippet, so their full implementation cannot be verified; (4) error handling guidance is not evident in the code; (5) no dry-run or confirmation support for destructive operations like delete_entry. The tools are well-organized into tiers (CRUD, schema, search, content) and composition is sensible, each tool has a single responsibility.
End-to-end: research a topic, generate a draft, and save it to Strapi as a draft entry. Requires both search and AI to be configured.
Create a new entry in a Strapi content type. Use get_content_type_schema to see available fields before creating.
Permanently delete a Strapi entry by content type and ID.
Generate a structured blog post draft on a topic using the configured AI provider. Optionally pass research results from research_topic for grounded content.
Get the field schema for a Strapi content type — field names, types, and which are required. Use list_content_types first to get the UID.
Fetch a single Strapi entry by content type and ID.
Output schemas not formally documented. Tools return JSON.stringify(result) but no explicit documentation of response fields, types, or structure.
Three tools (research_topic, generate_draft, create_content_from_research) are not visible in the provided source code snippet. Cannot verify actual implementation, error handling, or schema validation.
Destructive operations (delete_entry, create_entry, update_entry) lack confirmation step or dry-run support. Agents can permanently modify/delete Strapi content without safety guards.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-22 | F | 12 | 2025-06-18+ | v2 |
| 2026-03-09 | C | 60 | - | v1 |
List all content types available in the connected Strapi instance. Use this to discover available content types before performing CRUD operations.
List entries from a Strapi content type. Use list_content_types first if unsure of the content type name.
Search the web for current information on a topic using the configured search provider. Returns structured results suitable for passing to generate_draft.
Update fields of an existing Strapi entry. Only provided fields are updated (partial update).
create_entry and update_entry accept generic 'data' object parameter without structure validation guidance. Schema mismatch errors will be opaque to the agent.
create_content_from_research combines two responsibilities (research + create) in one tool. Per pattern:tool, should be separate so agent can compose.
No error recovery guidance. Tools lack descriptions of what to do when resource not found, validation fails, or API returns errors.
No idempotency guarantees documented. Agents that retry on ambiguous failures may create duplicate entries or apply duplicate updates.
Pagination support exists (page, pageSize) but upper bounds and result limits are only in descriptions, not enforced or validated in visible code.