All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Issue #8: JSON Schema now correctly generates
oneOfarrays for union types, fixing validation errors when Claude Desktop passes values as strings (e.g.,userAuthorized: "true"instead oftrue)
- BREAKING: Migrated from Zod v3 to Zod v4
z.record(z.any())→z.record(z.string(), z.any())ZodError.errors→ZodError.issuesz.string().url()→z.url()errorMap→errorparameter for enums
- Updated all dependencies to latest versions:
@modelcontextprotocol/sdk: 1.13.3 → 1.25.1zod: 3.25.76 → 4.3.5typescript: 5.8.3 → 5.9.3@types/node: 24.x → 25.0.3sharp: 0.34.2 → 0.34.5- And other minor updates
- Enhanced tool descriptions with comprehensive documentation:
- Security policy and best practices in
strapi_list_servers - Initialization steps and schema conventions in
strapi_get_content_types - Debugging guide and Strapi v5 specifics in
strapi_rest - Upload workflow documentation in
strapi_upload_media
- Security policy and best practices in
- Simplified binary name from
@bschauer/strapi-mcp-servertostrapi-mcp-server
- Unused imports (
createHash) - Unused type definitions (
ServerSchema, input type aliases) - Custom MCP capabilities (not supported in SDK 1.25.1)
- Comprehensive Zod validation for all tool inputs with runtime type safety
- Structured error handling using McpError and ErrorCode from MCP SDK
- Comprehensive logging system with request tracking and performance monitoring
- Debug mode configuration with environment variables (MCP_LOG_LEVEL, MCP_ENABLE_*)
- DEBUGGING.md guide with practical troubleshooting workflows
- LOGGING.md documentation for the logging system
- Request ID tracking for complete request lifecycle monitoring
- Data sanitization for secure logging (removes sensitive information)
- Performance monitoring with slow request detection
- Updated all dependencies to latest versions (@modelcontextprotocol/sdk@1.13.3, etc.)
- Enhanced input validation with detailed error messages and field-specific feedback
- Improved error handling with proper categorization (InvalidParams, InternalError, etc.)
- Enhanced type safety throughout the codebase with explicit TypeScript types
- Better developer experience with detailed validation errors and debugging information
- Unused prompt handlers and related code for cleaner codebase
- Unnecessary imports and dependencies
- Runtime type validation for all tool parameters
- Error categorization following MCP protocol specifications
- Memory usage optimization through improved logging
- Updated all dependencies to their latest versions
- Updated
@modelcontextprotocol/sdkfrom ^1.0.3 to ^1.9.0 - Updated node-fetch from v2 to v3 with proper ESM imports and type references
- Improved TypeScript type safety in error handling
- Enhanced compatibility with latest Node.js versions
- Important security disclaimer in the README.md file
- Clear warnings about AI-assisted development and production use
- Updated project description to highlight security considerations
- Improved documentation with clearer warnings
- Comprehensive project documentation in CLAUDE.md
- Expanded configuration options with better version detection
- Enhanced troubleshooting guides for common issues
- Detailed REST API documentation with practical examples
- Best practices guide for content management
- Improved error messaging with version-specific guidance
- Enhanced version detection from various format strings
- Updated documentation with specific Strapi v4/v5 differences
- Refined security model documentation
- Version parsing from different format patterns
- Error handling for version-specific API differences
-
Server Configuration: Changed from environment variables to config file
- Now requires a configuration file at
~/.mcp/strapi-mcp-server.config.json - Supports multiple server configurations
- Old method using
API_URLandJWTenvironment variables no longer works - All API calls now require a
serverparameter to specify which server to use
- Now requires a configuration file at
-
Removed GraphQL Support: Removed all GraphQL functionality to simplify the codebase
- Removed
strapi_graphqlcommand - All write operations should now use REST API
- Better error handling and validation in REST endpoints
- Removed
-
Enhanced REST API:
- Improved validation for write operations
- Added automatic schema validation
- Better error messages with field-specific feedback
- Automatic data validation against content type schema
- Multiple server support through config file
- New
strapi_list_serverscommand to show available servers - Better error messages with configuration help
- Server-specific configuration validation
- Improved REST validation helpers
- Schema-based request validation
- Field-level error reporting
- Automatic data type checking
- All API commands now require a
serverparameter - Configuration structure moved to JSON file
- Improved error messages with setup instructions
- Updated documentation for multi-server setup
- Environment variables configuration method
- All GraphQL related functionality
- GraphQL mutation support
- GraphQL query builder
-
Create the configuration directory:
mkdir -p ~/.mcp -
Create the configuration file:
touch ~/.mcp/strapi-mcp-server.config.json -
Add your server configuration:
{ "myserver": { "api_url": "http://localhost:1337", "api_key": "your-jwt-token-from-strapi-admin" } } -
Update your Claude Desktop configuration:
{ "mcpServers": { "strapi": { "command": "npx", "args": ["-y", "@bschauer/strapi-mcp-server"] } } } -
Secure your configuration file:
chmod 600 ~/.mcp/strapi-mcp-server.config.json -
Update GraphQL operations to REST:
For creating content:
strapi_rest({ server: "myserver", endpoint: "api/articles", method: "POST", body: { data: { title: "My Article", content: "Content here", }, }, });
For updating content:
strapi_rest({ server: "myserver", endpoint: "api/articles/123", method: "PUT", body: { data: { title: "Updated Title", content: "Updated content", }, }, });
- Fixed binary path in package.json for npx execution
- Initial release
- Basic Strapi CMS integration
- REST API support
- Media upload handling
- JWT authentication
- Content type management
- Image processing with format conversion