@@ -21,6 +21,7 @@ type Server struct {
2121 Description string `yaml:"description,omitempty" json:"description,omitempty"`
2222 Title string `yaml:"title,omitempty" json:"title,omitempty"`
2323 Icon string `yaml:"icon,omitempty" json:"icon,omitempty"`
24+ ReadmeURL string `yaml:"readme,omitempty" json:"readme,omitempty"`
2425 LongLived bool `yaml:"longLived,omitempty" json:"longLived,omitempty"`
2526 Remote Remote `yaml:"remote" json:"remote"`
2627 SSEEndpoint string `yaml:"sseEndpoint,omitempty" json:"sseEndpoint,omitempty"` // Deprecated: Use Remote instead
@@ -107,10 +108,16 @@ type ToolGroup struct {
107108}
108109
109110type Tool struct {
110- Name string `yaml:"name" json:"name" validate:"required,min=1"`
111- Description string `yaml:"description" json:"description"`
112- Container Container `yaml:"container" json:"container"`
113- Parameters Parameters `yaml:"parameters" json:"parameters"`
111+ Name string `yaml:"name" json:"name" validate:"required,min=1"`
112+ Description string `yaml:"description" json:"description"`
113+
114+ // These will only be set for oci catalogs (not legacy catalogs)
115+ Arguments * []ToolArgument `yaml:"arguments,omitempty" json:"arguments,omitempty"`
116+ Annotations * ToolAnnotations `yaml:"annotations,omitempty" json:"annotations,omitempty"`
117+
118+ // This is only used for POCIs
119+ Container Container `yaml:"container,omitempty" json:"container,omitempty"`
120+ Parameters Parameters `yaml:"parameters,omitempty" json:"parameters,omitempty"`
114121}
115122
116123type Parameters struct {
@@ -156,6 +163,22 @@ func (p *Properties) ToMap() map[string]any {
156163 return m
157164}
158165
166+ type ToolArgument struct {
167+ Name string `json:"name" yaml:"name"`
168+ Type string `json:"type" yaml:"type"`
169+ Items * Items `json:"items,omitempty" yaml:"items,omitempty"`
170+ Description string `json:"desc" yaml:"desc"`
171+ Optional bool `json:"optional,omitempty" yaml:"optional,omitempty"`
172+ }
173+
174+ type ToolAnnotations struct {
175+ Title string `json:"title,omitempty" yaml:"title,omitempty"`
176+ ReadOnlyHint * bool `json:"readOnlyHint,omitempty" yaml:"readOnlyHint,omitempty"`
177+ DestructiveHint * bool `json:"destructiveHint,omitempty" yaml:"destructiveHint,omitempty"`
178+ IdempotentHint * bool `json:"idempotentHint,omitempty" yaml:"idempotentHint,omitempty"`
179+ OpenWorldHint * bool `json:"openWorldHint,omitempty" yaml:"openWorldHint,omitempty"`
180+ }
181+
159182// Config
160183
161184type ServerConfig struct {
0 commit comments