Jonathan Amsterdam
f211cc8e4a
internal/mcp: reorganize the tool API, keeping generics
...
CallToolParams.Arguments is any.
Clients can send whatever they want.
Tool authors who create their own ToolHandler (bypassing NewTool)
will receive the arguments as a map[string]any which has been
validated against the input schema.
Tool authors who call NewTool can choose the type that the arguments
unmarshal into.
There is no double-unmarshaling and no downcasting.
There is no way for tool authors to avoid the unmarshal, and no way to
avoid the validation unless the omit an input schema, which is probably
bad for LLMs. If tool authors want this optimization, we can provide
it later.
Change-Id: Ieb201e56c7fb8a23bb1a93b27e946630ec9e79ad
Reviewed-on: https://go-review.googlesource.com/c/tools/+/679595
TryBot-Bypass: Jonathan Amsterdam <jba@google.com>
Auto-Submit: Jonathan Amsterdam <jba@google.com>
Reviewed-by: Robert Findley <rfindley@google.com>
2025-06-10 04:57:48 -07:00
..
testdata
internal/mcp: implement resource templates
2025-06-09 10:59:01 -07:00
client.go
internal/mcp: reorganize the tool API, keeping generics
2025-06-10 04:57:48 -07:00
client_test.go
internal/mcp: reorganize the tool API, keeping generics
2025-06-10 04:57:48 -07:00
cmd.go
internal/mcp: add a command transport for connecting to a sidecar
2025-05-01 17:43:04 -07:00
cmd_test.go
internal/mcp: reorganize the tool API, keeping generics
2025-06-10 04:57:48 -07:00
conformance_test.go
internal/mcp: handle synthetic responses in conformance test
2025-05-30 08:16:23 -07:00
content.go
all: fix some function names and typos in comment
2025-05-23 10:44:52 -07:00
content_test.go
internal/mcp: pointerize all the things
2025-05-14 06:22:56 -07:00
example_progress_test.go
internal/mcp: middleware on the sending side
2025-06-02 13:16:02 -07:00
features.go
internal/mcp: keep an ordered list of feature keys
2025-05-20 13:37:12 -07:00
features_test.go
internal/mcp: reorganize the tool API, keeping generics
2025-06-10 04:57:48 -07:00
generate.go
internal/mcp: reorganize the tool API, keeping generics
2025-06-10 04:57:48 -07:00
logging.go
internal/mcp: implement logging
2025-05-22 15:02:13 -07:00
mcp.go
internal/mcp: construct README with weave
2025-05-21 16:21:26 -07:00
mcp_test.go
internal/mcp: reorganize the tool API, keeping generics
2025-06-10 04:57:48 -07:00
prompt.go
internal/mcp: validate tool input schemas
2025-06-04 07:51:59 -07:00
prompt_test.go
internal/mcp: future-proof prompt handling
2025-05-22 15:06:03 -07:00
protocol.go
internal/mcp: reorganize the tool API, keeping generics
2025-06-10 04:57:48 -07:00
resource.go
internal/mcp: implement resource templates
2025-06-09 10:59:01 -07:00
resource_go124.go
internal/mcp: add the FileResourceHandler method
2025-05-19 11:15:23 -07:00
resource_pre_go124.go
internal/mcp: add the FileResourceHandler method
2025-05-19 11:15:23 -07:00
resource_test.go
internal/mcp: implement resource templates
2025-06-09 10:59:01 -07:00
root.go
internal/mcp: implement roots
2025-05-13 07:52:49 -07:00
server.go
internal/mcp: reorganize the tool API, keeping generics
2025-06-10 04:57:48 -07:00
server_example_test.go
internal/mcp: reorganize the tool API, keeping generics
2025-06-10 04:57:48 -07:00
server_test.go
internal/mcp: change paginateList to a generic helper
2025-06-05 07:47:33 -07:00
shared.go
internal/mcp: change paginateList to a generic helper
2025-06-05 07:47:33 -07:00
shared_test.go
internal/mcp: reorganize the tool API, keeping generics
2025-06-10 04:57:48 -07:00
sse.go
all: fix some function names and typos in comment
2025-05-23 10:44:52 -07:00
sse_example_test.go
internal/mcp: reorganize the tool API, keeping generics
2025-06-10 04:57:48 -07:00
sse_test.go
internal/mcp: reorganize the tool API, keeping generics
2025-06-10 04:57:48 -07:00
tool.go
internal/mcp: reorganize the tool API, keeping generics
2025-06-10 04:57:48 -07:00
tool_test.go
internal/mcp: reorganize the tool API, keeping generics
2025-06-10 04:57:48 -07:00
transport.go
internal/mcp: middleware on the sending side
2025-06-02 13:16:02 -07:00
transport_test.go
internal/mcp: implement HTTP SSE transport
2025-04-23 19:15:20 -07:00
util.go
internal/mcp: unify json tag parsing
2025-06-04 11:03:21 -07:00
util_test.go
internal/mcp: meta and progress token
2025-05-27 12:53:53 -07:00