mcp: introduce options for AddTool #659
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This change introduces a non-breaking API for passing options to
mcp.AddTool(). The first option introduced is thejsonschema.ForOptions, which allows jsonschema to use a specified mapping of Go types to schemas defined by the caller, which are used instead of inference via reflection. This is very useful for example for Go structs implementing theMarshalJSONandUnmarshalJSONinterfaces in order to represent the struct as a string. For example, imagine a MonthID struct containing Year and Month as integers, and whose serialization format implemented byMarshalJSONisYYYYMM. From the jsonschema perspective the type must be string, but the representation in Go can be rich through a struct.Fixes #658