schema

package
v0.1.16-rc.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 5, 2026 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package schema provides schema converters for MCP tool payloads.

Index

Constants

View Source
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

func ConverterFactory(schemaType string) (Converter, error)

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL