Documentation
¶
Overview ¶
Copyright 2026 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.
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 ¶
- Constants
- func AuthTokenClaimsFromContext(ctx context.Context) map[string]any
- func ClientIPFromContext(ctx context.Context) (string, bool)
- func ConvertNumbers(data any) (any, error)
- func DecodeJSON(r io.Reader, v interface{}) error
- func EnableDraftSpecsFromContext(ctx context.Context) (bool, bool)
- func ExtractClientIP(header http.Header) string
- func GetGDAEndpoint() string
- func IgnoreUnknownToolsFromContext(ctx context.Context) bool
- func InstrumentationFromContext(ctx context.Context) (*telemetry.Instrumentation, error)
- func LogPrimitiveDeprecation(ctx context.Context, kind string, primitiveType string, migrationStep string) error
- func LoggerFromContext(ctx context.Context) (log.Logger, error)
- func NewGDAClient(ctx context.Context, opts ...option.ClientOption) (*http.Client, error)
- func NewStrictDecoder(v interface{}) (*yaml.Decoder, error)
- func SQLCommenterEnabledFromContext(ctx context.Context) bool
- func SnakeFromCamelCase(s string) string
- func ToolboxVersionFromContext(ctx context.Context) (string, error)
- func UrlParamsFromContext(ctx context.Context) (map[string]string, bool)
- func UserAgentFromContext(ctx context.Context) (string, error)
- func WithAuthTokenClaims(ctx context.Context, claims map[string]any) context.Context
- func WithClientIP(ctx context.Context, clientIP string) context.Context
- func WithEnableDraftSpecs(ctx context.Context, enableDraft bool) context.Context
- func WithGenAIMetricAttrs(ctx context.Context, attrs *GenAIMetricAttrs) context.Context
- func WithIgnoreUnknownTools(ctx context.Context, ignore bool) context.Context
- func WithInstrumentation(ctx context.Context, instrumentation *telemetry.Instrumentation) context.Context
- func WithLogger(ctx context.Context, logger log.Logger) context.Context
- func WithSQLCommenterEnabled(ctx context.Context, enabled bool) context.Context
- func WithTelemetryAttributes(ctx context.Context, attrs *TelemetryAttributes) context.Context
- func WithToolboxVersionKey(ctx context.Context, versionString string) context.Context
- func WithUrlParams(ctx context.Context, params map[string]string) context.Context
- func WithUserAgent(ctx context.Context, versionString string) context.Context
- type AgentError
- type ClientServerError
- type DelayedUnmarshaler
- type ErrorCategory
- type GenAIMetricAttrs
- type TelemetryAttributes
- type ToolboxError
- type UserAgentRoundTripper
Constants ¶
const GDAClientID = "GENAI_TOOLBOX"
GDAClientID is the client ID for Gemini Data Analytics
Variables ¶
This section is empty.
Functions ¶
func AuthTokenClaimsFromContext ¶ added in v1.3.0
AuthTokenClaimsFromContext retrieves the auth token claims from context
func ClientIPFromContext ¶ added in v1.3.0
ClientIPFromContext retrieves the client IP address or returns false if not present
func ConvertNumbers ¶
ConvertNumbers traverses an interface and converts all json.Number instances to int64 or float64.
func DecodeJSON ¶
DecodeJSON decodes a given reader into an interface using the json decoder.
func EnableDraftSpecsFromContext ¶ added in v1.6.0
EnableDraftSpecsFromContext retrieves enable draft specs bool from context
func ExtractClientIP ¶ added in v1.3.0
ExtractClientIP retrieves the leftmost client IP from X-Forwarded-For or X-Real-IP header
func GetGDAEndpoint ¶ added in v1.6.0
func GetGDAEndpoint() string
GetGDAEndpoint returns the Gemini Data Analytics API endpoint, choosing the mTLS endpoint if mTLS is enabled.
func IgnoreUnknownToolsFromContext ¶ added in v1.4.0
IgnoreUnknownToolsFromContext retrieves the ignore-unknown-tools flag from context
func InstrumentationFromContext ¶
func InstrumentationFromContext(ctx context.Context) (*telemetry.Instrumentation, error)
InstrumentationFromContext retrieves the instrumentation or return an error
func LogPrimitiveDeprecation ¶ added in v1.6.0
func LogPrimitiveDeprecation(ctx context.Context, kind string, primitiveType string, migrationStep string) error
LogPrimitiveDeprecation is a helper function to mark a primitive as deprecated.
kind: kind of primitive. E.g. source / tool / authService / etc. primitiveType: the type of primitive being deprecated. E.g. postgres-sql migrationStep: the migration step for this deprecation. E.g. "Please use [Alternative] instead." / "Please remove this from your configuration file."
func LoggerFromContext ¶
LoggerFromContext retrieves the logger or return an error
func NewGDAClient ¶ added in v1.6.0
NewGDAClient returns an HTTP client configured for Gemini Data Analytics. It handles mTLS and authentication if a token source is provided.
func NewStrictDecoder ¶
func SQLCommenterEnabledFromContext ¶ added in v1.3.0
SQLCommenterEnabledFromContext retrieves the sql-commenter-enabled flag from context
func SnakeFromCamelCase ¶ added in v1.7.0
SnakeFromCamelCase converts a camelCase string to snake_case.
func ToolboxVersionFromContext ¶ added in v1.3.0
ToolboxVersionFromContext retrieves the toolbox version or return an error
func UrlParamsFromContext ¶ added in v1.5.0
UrlParamsFromContext retrieves URL parameters from context
func UserAgentFromContext ¶
UserAgentFromContext retrieves the user agent or return an error
func WithAuthTokenClaims ¶ added in v1.3.0
WithAuthTokenClaims adds auth token claims into the context as a value
func WithClientIP ¶ added in v1.3.0
WithClientIP adds a client IP address into the context as a value
func WithEnableDraftSpecs ¶ added in v1.6.0
WithEnableDraftSpecs adds enable draft specs bool into the context as a value
func WithGenAIMetricAttrs ¶
func WithGenAIMetricAttrs(ctx context.Context, attrs *GenAIMetricAttrs) context.Context
WithGenAIMetricAttrs adds GenAIMetricAttrs to the context
func WithIgnoreUnknownTools ¶ added in v1.4.0
WithIgnoreUnknownTools adds the ignore-unknown-tools flag to the context
func WithInstrumentation ¶
func WithInstrumentation(ctx context.Context, instrumentation *telemetry.Instrumentation) context.Context
WithInstrumentation adds an instrumentation into the context as a value
func WithLogger ¶
WithLogger adds a logger into the context as a value
func WithSQLCommenterEnabled ¶ added in v1.3.0
WithSQLCommenterEnabled adds the sql-commenter-enabled flag to the context
func WithTelemetryAttributes ¶ added in v1.3.0
func WithTelemetryAttributes(ctx context.Context, attrs *TelemetryAttributes) context.Context
WithTelemetryAttributes adds TelemetryAttributes to the context
func WithToolboxVersionKey ¶ added in v1.3.0
WithToolboxVersionKey adds a toolbox version into the context as a value
func WithUrlParams ¶ added in v1.5.0
WithUrlParams adds URL parameters into the context as a value
Types ¶
type AgentError ¶
Agent Errors return 200 to the sender
func NewAgentError ¶
func NewAgentError(msg string, cause error) *AgentError
func (*AgentError) Category ¶
func (e *AgentError) Category() ErrorCategory
func (*AgentError) Error ¶
func (e *AgentError) Error() string
func (*AgentError) Unwrap ¶
func (e *AgentError) Unwrap() error
type ClientServerError ¶
ClientServerError returns 4XX/5XX error code
func NewClientServerError ¶
func NewClientServerError(msg string, code int, cause error) *ClientServerError
func (*ClientServerError) Category ¶
func (e *ClientServerError) Category() ErrorCategory
func (*ClientServerError) Error ¶
func (e *ClientServerError) Error() string
func (*ClientServerError) Unwrap ¶
func (e *ClientServerError) Unwrap() error
type DelayedUnmarshaler ¶
type DelayedUnmarshaler struct {
// contains filtered or unexported fields
}
DelayedUnmarshaler is struct that saves the provided unmarshal function passed to UnmarshalYAML so it can be re-used later once the target interface is known.
func (*DelayedUnmarshaler) Unmarshal ¶
func (d *DelayedUnmarshaler) Unmarshal(v interface{}) error
func (*DelayedUnmarshaler) UnmarshalYAML ¶
func (d *DelayedUnmarshaler) UnmarshalYAML(ctx context.Context, unmarshal func(interface{}) error) error
type ErrorCategory ¶
type ErrorCategory string
const ( CategoryAgent ErrorCategory = "AGENT_ERROR" CategoryServer ErrorCategory = "SERVER_ERROR" )
type GenAIMetricAttrs ¶
type GenAIMetricAttrs struct {
OperationName string
ToolName string
PromptName string
GroupName string
NetworkProtocolName string
NetworkProtocolVersion string
}
GenAIMetricAttrs holds gen_ai and network attributes for metrics
func GenAIMetricAttrsFromContext ¶
func GenAIMetricAttrsFromContext(ctx context.Context) *GenAIMetricAttrs
GenAIMetricAttrsFromContext retrieves GenAIMetricAttrs from context
type TelemetryAttributes ¶ added in v1.3.0
type TelemetryAttributes struct {
ClientName string
ClientVersion string
ClientModel string
ClientUserID string
ClientAgentID string
}
TelemetryAttributes holds client-provided telemetry metadata from _meta["dev.mcp-toolbox/telemetry"].
func TelemetryAttributesFromContext ¶ added in v1.3.0
func TelemetryAttributesFromContext(ctx context.Context) *TelemetryAttributes
TelemetryAttributesFromContext retrieves TelemetryAttributes from context
type ToolboxError ¶
type ToolboxError interface {
error
Category() ErrorCategory
Error() string
Unwrap() error
}
ToolboxError is the interface all custom errors must satisfy
func ProcessGcpError ¶
func ProcessGcpError(err error) ToolboxError
ProcessGcpError catches auth related errors in GCP requests results and return 401/403 error codes Returns AgentError for all other errors
func ProcessGeneralError ¶
func ProcessGeneralError(err error) ToolboxError
ProcessGeneralError handles generic errors by inspecting the error string for common status code patterns.
type UserAgentRoundTripper ¶
type UserAgentRoundTripper struct {
// contains filtered or unexported fields
}
func NewUserAgentRoundTripper ¶
func NewUserAgentRoundTripper(ua string, next http.RoundTripper) *UserAgentRoundTripper