-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Implement tools for validating Kong plugin configurations and retrieving plugin schemas to ensure proper rate limiting plugin configuration before creation/update operations.
β Tasks
Plugin Schema Tools
- Implement
kong_get_plugin_schematool for retrieving plugin configuration schemas - Implement
kong_validate_plugin_configtool for validating plugin configurations - Support schema retrieval for all Kong plugins (rate-limiting, rate-limiting-advanced, etc.)
- Provide detailed validation error messages with specific field information
Configuration Validation Features
- Validate rate limiting plugin configuration parameters:
- Time-based limits (second, minute, hour, day, month, year) - ensure positive integers
- Entity types (consumer, credential, ip, service, header, path, consumer-group) - validate enum values
- Policy types (local, cluster, redis) - validate enum values
- Redis configuration (host, port, database, password) - validate when policy is redis
- Error codes and messages - validate HTTP status codes and string formats
- Validate advanced rate limiting configurations:
- Multiple limit arrays with proper window configurations
- Redis Sentinel/Cluster configurations
- Sliding vs fixed window strategies
Plugin Compatibility Tools
- Implement
kong_check_plugin_compatibilitytool for checking plugin conflicts - Implement
kong_get_enabled_pluginstool for listing available plugins - Check for conflicting plugins on same service/route/consumer
- Validate plugin precedence and hierarchy rules
Implementation Requirements
- Create new module
kong_mcp_server.tools.kong_plugin_validationfor validation tools - Add tool configurations to
tools_config.jsonwith proper descriptions - Use Kong Admin API
/schemas/plugins/{plugin-name}endpoint - Implement comprehensive JSON schema validation using
jsonschemalibrary - Handle Kong Admin API authentication for schema operations
- Write unit tests with 100% function coverage for all validation tools
- Write integration tests with 100% code coverage using real Kong Admin API calls
- Update README.md with minimal necessary documentation for validation tools
π API Endpoints
- Plugin schema:
GET /schemas/plugins/{plugin-name} - Plugin validation:
POST /schemas/plugins/{plugin-name}/validate - Available plugins:
GET /plugins/available - Plugin precedence: Custom validation logic
π Validation Examples
Rate Limiting Validation
{
"config": {
"minute": 5,
"hour": 100,
"limit_by": "consumer",
"policy": "local",
"fault_tolerant": true
}
}Validation Response
{
"valid": false,
"errors": [
{
"field": "config.redis_host",
"message": "Required when policy is 'redis'"
}
]
}π Labels
python, mcp-server, kong, validation, schema, plugins, testing
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels