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 IsAuthorized(authRequiredSources []string, verifiedAuthServices []string) bool
- func IsValidName(s string) bool
- 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 Toolset
- type ToolsetConfig
- type ToolsetManifest
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func IsAuthorized ¶ added in v0.0.4
Helper function that returns if a tool invocation request is authorized
func IsValidName ¶
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 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 neccesary 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 Toolset ¶
type Toolset struct {
Name string `yaml:"name"`
Tools []*Tool `yaml:",inline"`
Manifest ToolsetManifest `yaml:",inline"`
McpManifest []McpManifest `yaml:",inline"`
}