Releases: Automattic/wordpress-mcp
v0.2.5
Release Notes - Tools Validation and Linting Improvements
Overview
This release introduces a comprehensive validation infrastructure for MCP tools, improves code quality through enhanced linting, and adds new WP-CLI commands for tool validation and debugging.
🚀 New Features
WP-CLI Tool Validation Command
- Added
wp mcp validate-tools
command for validating registered MCP tools - Support for specific tool validation with flexible options
- Multiple validation levels (strict, extended, permissive)
- Configurable output formats for different use cases
- Comprehensive documentation with usage examples
Enhanced Validation System
- New
ValidateTool
class providing comprehensive MCP tool validation - New
SchemaValidator
class for JSON schema loading and validation - Built-in caching mechanisms for improved performance
- Detailed error handling and validation result reporting
JSON Schema Compliance
- Complete JSON schema files for MCP tools specification
- WordPress-specific schema extensions for plugin compatibility
- Full compliance with Model Context Protocol standards
- Support for schema caching and optimization
🔧 Improvements
Code Quality & Standards
- Updated PHP compatibility from version 5.6 to 8.0
- Enhanced PHPCS configuration with updated global prefixes and text domain
- Added PHP linting scripts to package.json for automated code quality checks
- Comprehensive code style improvements across the codebase
Validation Enhancements
- Improved properties field validation supporting both array and object formats
- Enhanced property name format checks for MCP compliance
- Strengthened required fields validation with proper existence checking
- Better error handling for edge cases in tool definitions
Method Signature Optimizations
- Simplified method signatures by removing unused parameters:
list_resource_templates()
list_all_tools()
list_tokens()
get_user_info()
get_theme_info()
get_plugin_info()
get_site_settings()
- Updated corresponding calls in
McpTransportBase
to reflect changes - Improved parameter naming for better code clarity
🐛 Bug Fixes
Plugin Initialization
- Changed hook from
plugins_loaded
toinit
for better timing control - Renamed initialization function from
init_wordpress_mcp
towordpress_mcp_init
for consistency
Error Handling
- Improved error logging using
McpErrorHandler
for consistent error management - Added PHPCS ignore comments for intentional usage of functions like
base64_decode
,file_get_contents
, anderror_log
- Enhanced input sanitization for tool validation processes
Code Standards
- Added translator comments for better internationalization support
- Improved comment formatting with consistent periods for readability
- Fixed strict comparison usage in status assignments
📚 Documentation
New Documentation
- Comprehensive WP-CLI commands documentation in
wp-cli-commands.md
- Schema usage guide with validation levels and caching strategies
- Detailed command options and examples for the validate-tools command
Updated Documentation
- Enhanced inline documentation with translator comments
- Improved exception documentation for resource callbacks
- Better code comments for complex validation logic
🔄 Breaking Changes
- Method signature changes may affect custom implementations extending base classes
- Hook timing change from
plugins_loaded
toinit
may impact plugin load order dependencies - PHP version requirement updated from 5.6 to 8.0
🧪 Technical Details
Validation Levels
- Strict: Full MCP specification compliance
- Extended: WordPress-specific extensions allowed
- Permissive: Flexible validation for development environments
Schema Structure
- Base MCP tool schema for core functionality
- WordPress extension schema for plugin-specific features
- Caching system for improved validation performance
📋 Files Changed
- 36 out of 38 files modified with comprehensive improvements
- New utility classes:
ValidateTool.php
,SchemaValidator.php
- New CLI command:
ValidateToolsCommand.php
- Updated core plugin file:
wordpress-mcp.php
- Enhanced build configuration:
package.json
,.phpcs.xml.dist
This release significantly enhances the development experience with robust validation tools, improved code quality standards, and comprehensive documentation for WordPress MCP plugin development.
Full Changelog: v0.2.4...v0.2.5
What's Changed
- Fix/improve tools validation and linting by @galatanovidiu in #78
Full Changelog: v0.2.4...v0.2.5
v0.2.4
What's Changed
- Ensure 'required' field in input schema is always an array by @galatanovidiu in #59
- Update JWT token expiration settings and enhance token duration options by @galatanovidiu in #62
- Refactor JWT token expiration handling and update settings UI by @galatanovidiu in #63
- Fix oauth integration by @galatanovidiu in #76
Full Changelog: v0.2.3...v0.2.4
v0.2.3
What's Changed
Related to issue #14: The MCP server now only verifies if a user is logged in. Each individual tool is responsible for its own permission checks. However, admin access is still required for prompts and resources methods.
Enhancements
• Improve error logging in McpErrorHandler for easier debugging
• Improve error handling in RegisterMcpTool for invalid routes and parameters
• Update user permission check in McpStreamableTransport to use is_user_logged_in()
Documentation Updates
• Use a placeholder for website URL in client setup documentation
• Add Claude Code configuration instructions to the client setup guide
Security & Access Control
• Add permission checks to PromptsHandler and ResourcesHandler
Full Changelog: v0.2.2…v0.2.3
v0.2.2
What's Changed
- Bugfix rest api alias by @galatanovidiu in #47
- Add rest api crud tools documentation by @galatanovidiu in #48
Full Changelog: v0.2.1...v0.2.2
v0.2.1
What's Changed
- Implement REST API CRUD Tools and Update Settings by @galatanovidiu in #45
Full Changelog: v0.2.0...v0.2.1
v0.2.0
What's Changed
- Fix: Corrected documentation links in README.md by @etShaw-zh in #43
- Add license references, update header values by @jeffpaul in #39
- Implemented streamable transport protocol and JWT authentication by @galatanovidiu in #44
New Contributors
- @etShaw-zh made their first contribution in #43
- @jeffpaul made their first contribution in #39
Full Changelog: v0.1.18...v0.2.0
v0.1.18
v0.1.17
What's Changed
- Bugfix/list all tools endpoint by @galatanovidiu in #34
Full Changelog: v0.1.16...v0.1.17
v0.1.16
What's Changed
- Implement per-tool enable/disable settings (Ovi's version) by @galatanovidiu in #31
- Update version numbers in package.json and wordpress-mcp.php to 0.1.16 by @galatanovidiu in #33
Full Changelog: v0.1.15...v0.1.16
v0.1.15
What's Changed
- Fix/permisions callback rename by @galatanovidiu in #26
- Added automated tests & bugfixes by @galatanovidiu in #27
- Update version numbers in package.json and wordpress-mcp.php to 0.1.15 by @galatanovidiu in #28
Full Changelog: v0.1.14...v0.1.15