Skip to content

Implement Plugin Configuration Validation and Schema ToolsΒ #17

@shibbirmcc

Description

@shibbirmcc

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_schema tool for retrieving plugin configuration schemas
  • Implement kong_validate_plugin_config tool 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_compatibility tool for checking plugin conflicts
  • Implement kong_get_enabled_plugins tool 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_validation for validation tools
  • Add tool configurations to tools_config.json with proper descriptions
  • Use Kong Admin API /schemas/plugins/{plugin-name} endpoint
  • Implement comprehensive JSON schema validation using jsonschema library
  • 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

Metadata

Metadata

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions