Documentation
¶
Overview ¶
Copyright 2025 Google LLC
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Index ¶
- func ConvertArrayParamToString(param any) (string, error)
- func IsAuthorized(authRequiredSources []string, verifiedAuthServices []string) bool
- func IsValidName(s string) bool
- func ProcessParameters(templateParams Parameters, params Parameters) (Parameters, []ParameterManifest, McpToolsSchema)
- func Register(kind string, factory ToolConfigFactory) bool
- func ResolveTemplateParams(templateParams Parameters, originalStatement string, paramsMap map[string]any) (string, error)
- type ArrayParameter
- func (p *ArrayParameter) GetAuthServices() []ParamAuthService
- func (p *ArrayParameter) Manifest() ParameterManifest
- func (p *ArrayParameter) McpManifest() ParameterMcpManifest
- func (p *ArrayParameter) Parse(v any) (any, error)
- func (p *ArrayParameter) UnmarshalYAML(ctx context.Context, unmarshal func(interface{}) error) error
- type BooleanParameter
- type CommonParameter
- type FloatParameter
- type HTTPMethod
- type IntParameter
- type Manifest
- type McpManifest
- type McpToolsSchema
- type ParamAuthService
- type ParamValue
- type ParamValues
- type Parameter
- type ParameterManifest
- type ParameterMcpManifest
- type Parameters
- type ParseTypeError
- type StringParameter
- type Tool
- type ToolConfig
- type ToolConfigFactory
- type Toolset
- type ToolsetConfig
- type ToolsetManifest
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConvertArrayParamToString ¶ added in v0.7.0
helper function to convert a string array parameter to a comma separated string
func IsAuthorized ¶ added in v0.0.4
Helper function that returns if a tool invocation request is authorized
func IsValidName ¶
func ProcessParameters ¶ added in v0.7.0
func ProcessParameters(templateParams Parameters, params Parameters) (Parameters, []ParameterManifest, McpToolsSchema)
ProcessParameters concatenate templateParameters and parameters from a tool. It returns a list of concatenated parameters, concatenated Toolbox manifest, and concatenated MCP Manifest.
func Register ¶ added in v0.7.0
func Register(kind string, factory ToolConfigFactory) bool
Register allows individual tool packages to register their configuration factory function. This is typically called from an init() function in the tool's package. It associates a 'kind' string with a function that can produce the specific ToolConfig type. It returns true if the registration was successful, and false if a tool with the same kind was already registered.
func ResolveTemplateParams ¶ added in v0.7.0
Types ¶
type ArrayParameter ¶
type ArrayParameter struct {
CommonParameter `yaml:",inline"`
Items Parameter `yaml:"items"`
}
ArrayParameter is a parameter representing the "array" type.
func NewArrayParameter ¶
func NewArrayParameter(name, desc string, items Parameter) *ArrayParameter
NewArrayParameter is a convenience function for initializing a ArrayParameter.
func NewArrayParameterWithAuth ¶ added in v0.0.4
func NewArrayParameterWithAuth(name, desc string, items Parameter, authServices []ParamAuthService) *ArrayParameter
NewArrayParameterWithAuth is a convenience function for initializing a ArrayParameter with a list of ParamAuthService.
func (*ArrayParameter) GetAuthServices ¶ added in v0.2.0
func (p *ArrayParameter) GetAuthServices() []ParamAuthService
func (*ArrayParameter) Manifest ¶ added in v0.2.0
func (p *ArrayParameter) Manifest() ParameterManifest
Manifest returns the manifest for the ArrayParameter.
func (*ArrayParameter) McpManifest ¶ added in v0.3.0
func (p *ArrayParameter) McpManifest() ParameterMcpManifest
McpManifest returns the MCP manifest for the ArrayParameter.
func (*ArrayParameter) UnmarshalYAML ¶
func (p *ArrayParameter) UnmarshalYAML(ctx context.Context, unmarshal func(interface{}) error) error
type BooleanParameter ¶
type BooleanParameter struct {
CommonParameter `yaml:",inline"`
}
BooleanParameter is a parameter representing the "boolean" type.
func NewBooleanParameter ¶
func NewBooleanParameter(name, desc string) *BooleanParameter
NewBooleanParameter is a convenience function for initializing a BooleanParameter.
func NewBooleanParameterWithAuth ¶ added in v0.0.4
func NewBooleanParameterWithAuth(name, desc string, authServices []ParamAuthService) *BooleanParameter
NewBooleanParameterWithAuth is a convenience function for initializing a BooleanParameter with a list of ParamAuthService.
func (*BooleanParameter) GetAuthServices ¶ added in v0.2.0
func (p *BooleanParameter) GetAuthServices() []ParamAuthService
type CommonParameter ¶
type CommonParameter struct {
Name string `yaml:"name" validate:"required"`
Type string `yaml:"type" validate:"required"`
Desc string `yaml:"description" validate:"required"`
AuthServices []ParamAuthService `yaml:"authServices"`
AuthSources []ParamAuthService `yaml:"authSources"` // Deprecated: Kept for compatibility.
}
CommonParameter are default fields that are emebdding in most Parameter implementations. Embedding this stuct will give the object Name() and Type() functions.
func (*CommonParameter) GetName ¶
func (p *CommonParameter) GetName() string
GetName returns the name specified for the Parameter.
func (*CommonParameter) GetType ¶
func (p *CommonParameter) GetType() string
GetType returns the type specified for the Parameter.
func (*CommonParameter) Manifest ¶
func (p *CommonParameter) Manifest() ParameterManifest
Manifest returns the manifest for the Parameter.
func (*CommonParameter) McpManifest ¶ added in v0.3.0
func (p *CommonParameter) McpManifest() ParameterMcpManifest
McpManifest returns the MCP manifest for the Parameter.
type FloatParameter ¶
type FloatParameter struct {
CommonParameter `yaml:",inline"`
}
FloatParameter is a parameter representing the "float" type.
func NewFloatParameter ¶
func NewFloatParameter(name, desc string) *FloatParameter
NewFloatParameter is a convenience function for initializing a FloatParameter.
func NewFloatParameterWithAuth ¶ added in v0.0.4
func NewFloatParameterWithAuth(name, desc string, authServices []ParamAuthService) *FloatParameter
NewFloatParameterWithAuth is a convenience function for initializing a FloatParameter with a list of ParamAuthService.
func (*FloatParameter) GetAuthServices ¶ added in v0.2.0
func (p *FloatParameter) GetAuthServices() []ParamAuthService
type HTTPMethod ¶ added in v0.3.0
type HTTPMethod string
HTTPMethod is a string of a valid HTTP method (e.g "GET")
func (*HTTPMethod) UnmarshalYAML ¶ added in v0.3.0
func (i *HTTPMethod) UnmarshalYAML(ctx context.Context, unmarshal func(interface{}) error) error
type IntParameter ¶
type IntParameter struct {
CommonParameter `yaml:",inline"`
}
IntParameter is a parameter representing the "int" type.
func NewIntParameter ¶
func NewIntParameter(name, desc string) *IntParameter
NewIntParameter is a convenience function for initializing a IntParameter.
func NewIntParameterWithAuth ¶ added in v0.0.4
func NewIntParameterWithAuth(name, desc string, authServices []ParamAuthService) *IntParameter
NewIntParameterWithAuth is a convenience function for initializing a IntParameter with a list of ParamAuthService.
func (*IntParameter) GetAuthServices ¶ added in v0.2.0
func (p *IntParameter) GetAuthServices() []ParamAuthService
type Manifest ¶ added in v0.0.2
type Manifest struct {
Description string `json:"description"`
Parameters []ParameterManifest `json:"parameters"`
AuthRequired []string `json:"authRequired"`
}
Manifest is the representation of tools sent to Client SDKs.
type McpManifest ¶ added in v0.3.0
type McpManifest struct {
// The name of the tool.
Name string `json:"name"`
// A human-readable description of the tool.
Description string `json:"description,omitempty"`
// A JSON Schema object defining the expected parameters for the tool.
InputSchema McpToolsSchema `json:"inputSchema,omitempty"`
}
Definition for a tool the MCP client can call.
type McpToolsSchema ¶ added in v0.3.0
type McpToolsSchema struct {
Type string `json:"type"`
Properties map[string]ParameterMcpManifest `json:"properties"`
Required []string `json:"required"`
}
McpToolsSchema is the representation of input schema for McpManifest.
type ParamAuthService ¶ added in v0.2.0
type ParamValue ¶ added in v0.0.3
ParamValue represents the parameter's name and value.
type ParamValues ¶ added in v0.0.3
type ParamValues []ParamValue
ParamValues is an ordered list of ParamValue
func GetParams ¶ added in v0.7.0
func GetParams(params Parameters, paramValuesMap map[string]any) (ParamValues, error)
GetParams return the ParamValues that are associated with the Parameters.
func ParseParams ¶
func ParseParams(ps Parameters, data map[string]any, claimsMap map[string]map[string]any) (ParamValues, error)
ParseParams is a helper function for parsing Parameters from an arbitraryJSON object.
func (ParamValues) AsMap ¶ added in v0.0.3
func (p ParamValues) AsMap() map[string]interface{}
AsMap returns a map of ParamValue's names to values.
func (ParamValues) AsMapByOrderedKeys ¶ added in v0.0.3
func (p ParamValues) AsMapByOrderedKeys() map[string]interface{}
AsMapByOrderedKeys returns a map of a key's position to it's value, as necessary for Spanner PSQL. Example { $1 -> "value1", $2 -> "value2" }
func (ParamValues) AsMapWithDollarPrefix ¶ added in v0.1.0
func (p ParamValues) AsMapWithDollarPrefix() map[string]interface{}
AsMapWithDollarPrefix ensures all keys are prefixed with a dollar sign for Dgraph. Example: Input: {"role": "admin", "$age": 30} Output: {"$role": "admin", "$age": 30}
func (ParamValues) AsReversedMap ¶ added in v0.1.0
func (p ParamValues) AsReversedMap() map[any]string
AsReversedMap returns a map of ParamValue's values to names.
func (ParamValues) AsSlice ¶ added in v0.0.3
func (p ParamValues) AsSlice() []any
AsSlice returns a slice of the Param's values (in order).
type Parameter ¶
type Parameter interface {
// Note: It's typically not idiomatic to include "Get" in the function name,
// but this is done to differentiate it from the fields in CommonParameter.
GetName() string
GetType() string
GetAuthServices() []ParamAuthService
Parse(any) (any, error)
Manifest() ParameterManifest
McpManifest() ParameterMcpManifest
}
type ParameterManifest ¶
type ParameterManifest struct {
Name string `json:"name"`
Type string `json:"type"`
Description string `json:"description"`
AuthServices []string `json:"authSources"`
Items *ParameterManifest `json:"items,omitempty"`
}
ParameterManifest represents parameters when served as part of a ToolManifest.
type ParameterMcpManifest ¶ added in v0.3.0
type ParameterMcpManifest struct {
Type string `json:"type"`
Description string `json:"description"`
Items *ParameterMcpManifest `json:"items,omitempty"`
}
ParameterMcpManifest represents properties when served as part of a ToolMcpManifest.
type Parameters ¶
type Parameters []Parameter
Parameters is a type used to allow unmarshal a list of parameters
func (Parameters) Manifest ¶ added in v0.0.2
func (ps Parameters) Manifest() []ParameterManifest
func (Parameters) McpManifest ¶ added in v0.3.0
func (ps Parameters) McpManifest() McpToolsSchema
func (*Parameters) UnmarshalYAML ¶
func (c *Parameters) UnmarshalYAML(ctx context.Context, unmarshal func(interface{}) error) error
type ParseTypeError ¶
ParseTypeError is a custom error for incorrectly typed Parameters.
func (ParseTypeError) Error ¶
func (e ParseTypeError) Error() string
type StringParameter ¶
type StringParameter struct {
CommonParameter `yaml:",inline"`
}
StringParameter is a parameter representing the "string" type.
func NewStringParameter ¶
func NewStringParameter(name, desc string) *StringParameter
NewStringParameter is a convenience function for initializing a StringParameter.
func NewStringParameterWithAuth ¶ added in v0.0.4
func NewStringParameterWithAuth(name, desc string, authServices []ParamAuthService) *StringParameter
NewStringParameterWithAuth is a convenience function for initializing a StringParameter with a list of ParamAuthService.
func (*StringParameter) GetAuthServices ¶ added in v0.2.0
func (p *StringParameter) GetAuthServices() []ParamAuthService
type ToolConfig ¶ added in v0.0.2
type ToolConfig interface {
ToolConfigKind() string
Initialize(map[string]sources.Source) (Tool, error)
}
func DecodeConfig ¶ added in v0.7.0
func DecodeConfig(ctx context.Context, kind string, name string, decoder *yaml.Decoder) (ToolConfig, error)
DecodeConfig looks up the registered factory for the given kind and uses it to decode the tool configuration.
type ToolConfigFactory ¶ added in v0.7.0
type ToolConfigFactory func(ctx context.Context, name string, decoder *yaml.Decoder) (ToolConfig, error)
ToolConfigFactory defines the signature for a function that creates and decodes a specific tool's configuration. It takes the context, the tool's name, and a YAML decoder to parse the config.
type Toolset ¶
type Toolset struct {
Name string `yaml:"name"`
Tools []*Tool `yaml:",inline"`
Manifest ToolsetManifest `yaml:",inline"`
McpManifest []McpManifest `yaml:",inline"`
}