Class: RosettAi::Mcp::Admin::SchemaValidator
- Inherits:
-
Object
- Object
- RosettAi::Mcp::Admin::SchemaValidator
- Defined in:
- lib/rosett_ai/mcp/admin/schema_validator.rb
Overview
Validates MCP server configurations against JSON Schema.
Uses conf/schemas/mcp_server_schema.json for validation.
Instance Method Summary collapse
-
#initialize(schema_path: nil) ⇒ SchemaValidator
constructor
A new instance of SchemaValidator.
-
#validate(server) ⇒ Hash
Validates a server configuration hash.
-
#validate_all(registry) ⇒ Array<Hash>
Validates all servers in a registry.
Constructor Details
#initialize(schema_path: nil) ⇒ SchemaValidator
Returns a new instance of SchemaValidator.
19 20 21 |
# File 'lib/rosett_ai/mcp/admin/schema_validator.rb', line 19 def initialize(schema_path: nil) @schema_path = schema_path || RosettAi.root.join('conf', 'schemas', 'mcp_server_schema.json') end |
Instance Method Details
#validate(server) ⇒ Hash
Validates a server configuration hash.
27 28 29 30 31 32 33 34 35 |
# File 'lib/rosett_ai/mcp/admin/schema_validator.rb', line 27 def validate(server) schema = load_schema return { valid: true, errors: [] } unless schema data = normalize(server) errors = schema.validate(data).map { |e| e['error'] } { valid: errors.empty?, errors: errors } end |
#validate_all(registry) ⇒ Array<Hash>
Validates all servers in a registry.
41 42 43 44 45 46 |
# File 'lib/rosett_ai/mcp/admin/schema_validator.rb', line 41 def validate_all(registry) registry.list.map do |server| result = validate(server) result.merge(name: server[:name]) end end |