Documentation
¶
Overview ¶
Package schema provides schema converters for MCP tool payloads.
Index ¶
- Constants
- func GetSchemaType(schemaType pulsar.SchemaType) string
- type AvroConverter
- func (c *AvroConverter) SerializeMCPRequestToPulsarPayload(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) ([]byte, error)
- func (c *AvroConverter) ToMCPToolInputSchemaProperties(schemaInfo *cliutils.SchemaInfo) ([]mcp.ToolOption, error)
- func (c *AvroConverter) ValidateArguments(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) error
- type BaseConverter
- type BooleanConverter
- func (c *BooleanConverter) SerializeMCPRequestToPulsarPayload(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) ([]byte, error)
- func (c *BooleanConverter) ToMCPToolInputSchemaProperties(schemaInfo *cliutils.SchemaInfo) ([]mcp.ToolOption, error)
- func (c *BooleanConverter) ValidateArguments(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) error
- type Converter
- type JSONConverter
- func (c *JSONConverter) SerializeMCPRequestToPulsarPayload(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) ([]byte, error)
- func (c *JSONConverter) ToMCPToolInputSchemaProperties(schemaInfo *cliutils.SchemaInfo) ([]mcp.ToolOption, error)
- func (c *JSONConverter) ValidateArguments(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) error
- type NumberConverter
- func (c *NumberConverter) SerializeMCPRequestToPulsarPayload(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) ([]byte, error)
- func (c *NumberConverter) ToMCPToolInputSchemaProperties(schemaInfo *cliutils.SchemaInfo) ([]mcp.ToolOption, error)
- func (c *NumberConverter) ValidateArguments(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) error
- type StringConverter
- func (c *StringConverter) SerializeMCPRequestToPulsarPayload(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) ([]byte, error)
- func (c *StringConverter) ToMCPToolInputSchemaProperties(schemaInfo *cliutils.SchemaInfo) ([]mcp.ToolOption, error)
- func (c *StringConverter) ValidateArguments(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) error
Constants ¶
const (
// ParamName is the default parameter name for payload arguments.
ParamName = "payload"
)
Variables ¶
This section is empty.
Functions ¶
func GetSchemaType ¶
func GetSchemaType(schemaType pulsar.SchemaType) string
GetSchemaType returns the string representation of a schema type.
Types ¶
type AvroConverter ¶
type AvroConverter struct {
BaseConverter
}
AvroConverter converts AVRO schemas to MCP tool definitions and payloads.
func NewAvroConverter ¶
func NewAvroConverter() *AvroConverter
NewAvroConverter creates a new AvroConverter.
func (*AvroConverter) SerializeMCPRequestToPulsarPayload ¶
func (c *AvroConverter) SerializeMCPRequestToPulsarPayload(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) ([]byte, error)
SerializeMCPRequestToPulsarPayload serializes MCP arguments into an AVRO payload.
func (*AvroConverter) ToMCPToolInputSchemaProperties ¶
func (c *AvroConverter) ToMCPToolInputSchemaProperties(schemaInfo *cliutils.SchemaInfo) ([]mcp.ToolOption, error)
ToMCPToolInputSchemaProperties converts AVRO schema info into MCP tool options.
func (*AvroConverter) ValidateArguments ¶
func (c *AvroConverter) ValidateArguments(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) error
ValidateArguments validates arguments against the AVRO schema.
type BaseConverter ¶
type BaseConverter struct {
ParamName string
}
BaseConverter provides shared fields for schema converters.
type BooleanConverter ¶
type BooleanConverter struct {
BaseConverter
}
BooleanConverter handles the conversion for Pulsar BOOLEAN schemas.
func NewBooleanConverter ¶
func NewBooleanConverter() *BooleanConverter
NewBooleanConverter creates a new instance of BooleanConverter.
func (*BooleanConverter) SerializeMCPRequestToPulsarPayload ¶
func (c *BooleanConverter) SerializeMCPRequestToPulsarPayload(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) ([]byte, error)
SerializeMCPRequestToPulsarPayload serializes MCP arguments into a BOOLEAN payload.
func (*BooleanConverter) ToMCPToolInputSchemaProperties ¶
func (c *BooleanConverter) ToMCPToolInputSchemaProperties(schemaInfo *cliutils.SchemaInfo) ([]mcp.ToolOption, error)
ToMCPToolInputSchemaProperties converts BOOLEAN schema info into MCP tool options.
func (*BooleanConverter) ValidateArguments ¶
func (c *BooleanConverter) ValidateArguments(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) error
ValidateArguments validates arguments against the BOOLEAN schema.
type Converter ¶
type Converter interface {
ToMCPToolInputSchemaProperties(pulsarSchemaInfo *cliutils.SchemaInfo) ([]mcp.ToolOption, error)
SerializeMCPRequestToPulsarPayload(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) ([]byte, error)
ValidateArguments(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) error
}
Converter defines schema conversion behaviors for MCP tools.
func ConverterFactory ¶
ConverterFactory returns a converter for the given schema type.
type JSONConverter ¶
type JSONConverter struct {
BaseConverter
}
JSONConverter handles the conversion for Pulsar JSON schemas. It relies on the underlying AVRO schema definition for structure and validation, but serializes to a standard JSON text payload.
func NewJSONConverter ¶
func NewJSONConverter() *JSONConverter
NewJSONConverter creates a new instance of JSONConverter.
func (*JSONConverter) SerializeMCPRequestToPulsarPayload ¶
func (c *JSONConverter) SerializeMCPRequestToPulsarPayload(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) ([]byte, error)
SerializeMCPRequestToPulsarPayload validates arguments against the underlying AVRO schema definition and then serializes them to a JSON text payload for Pulsar.
func (*JSONConverter) ToMCPToolInputSchemaProperties ¶
func (c *JSONConverter) ToMCPToolInputSchemaProperties(schemaInfo *cliutils.SchemaInfo) ([]mcp.ToolOption, error)
ToMCPToolInputSchemaProperties converts the Pulsar JSON SchemaInfo (which is AVRO based) to MCP tool input schema properties.
func (*JSONConverter) ValidateArguments ¶
func (c *JSONConverter) ValidateArguments(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) error
ValidateArguments validates the given arguments against the Pulsar JSON SchemaInfo's underlying AVRO schema definition.
type NumberConverter ¶
type NumberConverter struct {
BaseConverter
}
NumberConverter handles the conversion for Pulsar numeric schemas (INT8, INT16, INT32, INT64, FLOAT, DOUBLE).
func NewNumberConverter ¶
func NewNumberConverter() *NumberConverter
NewNumberConverter creates a new instance of NumberConverter.
func (*NumberConverter) SerializeMCPRequestToPulsarPayload ¶
func (c *NumberConverter) SerializeMCPRequestToPulsarPayload(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) ([]byte, error)
SerializeMCPRequestToPulsarPayload serializes MCP arguments into a numeric payload.
func (*NumberConverter) ToMCPToolInputSchemaProperties ¶
func (c *NumberConverter) ToMCPToolInputSchemaProperties(schemaInfo *cliutils.SchemaInfo) ([]mcp.ToolOption, error)
ToMCPToolInputSchemaProperties converts numeric schema info into MCP tool options.
func (*NumberConverter) ValidateArguments ¶
func (c *NumberConverter) ValidateArguments(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) error
ValidateArguments validates arguments against the numeric schema.
type StringConverter ¶
type StringConverter struct {
BaseConverter
}
StringConverter handles the conversion for Pulsar STRING schemas.
func NewStringConverter ¶
func NewStringConverter() *StringConverter
NewStringConverter creates a new instance of StringConverter.
func (*StringConverter) SerializeMCPRequestToPulsarPayload ¶
func (c *StringConverter) SerializeMCPRequestToPulsarPayload(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) ([]byte, error)
SerializeMCPRequestToPulsarPayload serializes MCP arguments into a string payload.
func (*StringConverter) ToMCPToolInputSchemaProperties ¶
func (c *StringConverter) ToMCPToolInputSchemaProperties(schemaInfo *cliutils.SchemaInfo) ([]mcp.ToolOption, error)
ToMCPToolInputSchemaProperties converts string schema info into MCP tool options.
func (*StringConverter) ValidateArguments ¶
func (c *StringConverter) ValidateArguments(arguments map[string]any, targetPulsarSchemaInfo *cliutils.SchemaInfo) error
ValidateArguments validates arguments against the string schema.