namespace ColaFlow.Modules.Mcp.Contracts.Tools;
///
/// JSON Schema for tool input parameters
///
public sealed class McpToolInputSchema
{
///
/// Schema type (always "object" for tool inputs)
///
public string Type { get; set; } = "object";
///
/// Schema properties (parameter definitions)
/// Key is parameter name, value is parameter schema
///
public Dictionary Properties { get; set; } = new();
///
/// List of required parameter names
///
public List Required { get; set; } = new();
}
///
/// JSON Schema property definition
///
public sealed class JsonSchemaProperty
{
///
/// Property type: "string", "number", "integer", "boolean", "array", "object"
///
public string Type { get; set; } = "string";
///
/// Property description (for AI to understand)
///
public string? Description { get; set; }
///
/// Enum values (for restricted choices)
///
public string[]? Enum { get; set; }
///
/// String format hint: "uuid", "email", "date-time", "uri", etc.
///
public string? Format { get; set; }
///
/// Minimum value (for numbers)
///
public decimal? Minimum { get; set; }
///
/// Maximum value (for numbers)
///
public decimal? Maximum { get; set; }
///
/// Minimum length (for strings)
///
public int? MinLength { get; set; }
///
/// Maximum length (for strings)
///
public int? MaxLength { get; set; }
///
/// Pattern (regex) for string validation
///
public string? Pattern { get; set; }
///
/// Items schema (for arrays)
///
public JsonSchemaProperty? Items { get; set; }
///
/// Properties schema (for nested objects)
///
public Dictionary? Properties { get; set; }
///
/// Default value
///
public object? Default { get; set; }
}