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; } }