go-sdk/mcp
Repository files (latest commit first)
Filename Latest commit message Latest commit date
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