go-sdk/mcp
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Robert Findley 43ad1eb8b4
mcp: treat pointers equivalently to non-pointers when deriving schema
As reported in #199 and #200, the fact that we return a possibly "null"
schema for pointer types breaks various clients, which expect schemas to
be of type "object". This is an unfortunate footgun. For now, assume
that the user wants us to treat pointers equivalently to non-pointers.
If we want to change this behavior in the future, we can do so behind an
option.

+ a test

Also fix the handling of nil results in the case where the output schema
is non-nil: we must provide structured content in this case. (This was
causing the test to fail).

Fixes #199
Fixes #200
2025-08-21 10:57:28 -04:00
..
testdata mcp: don't mark the server sesion as initialized prematurely 2025-08-07 14:59:36 -04:00
client.go mcp/server: expose InitializeParams to ServerSession (#336) 2025-08-20 14:39:17 -04:00
client_list_test.go mcp: change tool handler design (#325) 2025-08-20 19:36:34 -04:00
client_test.go mcp/server: expose InitializeParams to ServerSession (#336) 2025-08-20 14:39:17 -04:00
cmd.go mcp: make transports open structs 2025-08-12 15:14:21 -04:00
cmd_test.go mcp: make transports open structs 2025-08-12 15:14:21 -04:00
conformance_go124_test.go internal/mcp: update protocol versions 2025-06-18 08:11:16 -07:00
conformance_go125_test.go internal/mcp: update protocol versions 2025-06-18 08:11:16 -07:00
conformance_test.go mcp: implement a concurrency model for calls 2025-08-19 11:21:02 -04:00
content.go mcp: implement a concurrency model for calls 2025-08-19 11:21:02 -04:00
content_nil_test.go mcp: change tool handler design (#325) 2025-08-20 19:36:34 -04:00
content_test.go mcp: don't omit required fields in ImageContent and AudioContent (#95) 2025-07-19 17:08:56 -04:00
event.go mcp: changed streamID's from int64 to random strings (#266) 2025-08-15 09:38:18 -04:00
event_test.go mcp: changed streamID's from int64 to random strings (#266) 2025-08-15 09:38:18 -04:00
example_middleware_test.go mcp: change tool handler design (#325) 2025-08-20 19:36:34 -04:00
example_progress_test.go mcp: introduce Requests (#267) 2025-08-12 17:49:50 -04:00
features.go mcp: minor cleanup of some TODOs (#332) 2025-08-20 12:55:19 -04:00
features_test.go mcp: change tool handler design (#325) 2025-08-20 19:36:34 -04:00
logging.go mcp: support stateless streamable sessions (#277) 2025-08-11 16:43:46 -04:00
mcp-repo-replace.txt internal/mcp: add a script to create the mcp SDK repo 2025-06-20 14:24:49 -07:00
mcp.go generate.go: remove 2025-06-23 20:16:40 -04:00
mcp_test.go mcp: treat pointers equivalently to non-pointers when deriving schema 2025-08-21 10:57:28 -04:00
prompt.go mcp: new API for features (#88) 2025-07-07 14:54:52 -04:00
protocol.go mcp: change tool handler design (#325) 2025-08-20 19:36:34 -04:00
protocol_test.go mcp: change tool handler design (#325) 2025-08-20 19:36:34 -04:00
resource.go mcp: introduce Requests (#267) 2025-08-12 17:49:50 -04: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 mcp/Resource: Refactor URI Template Matching with uritemplate Library (#100) 2025-07-08 15:52:54 -04:00
root.go internal/mcp: implement roots 2025-05-13 07:52:49 -07:00
server.go mcp: treat pointers equivalently to non-pointers when deriving schema 2025-08-21 10:57:28 -04:00
server_example_test.go mcp: change tool handler design (#325) 2025-08-20 19:36:34 -04:00
server_test.go mcp: add syntax and scheme validation to AddResourceTemplate (#253) 2025-08-19 17:43:26 -04:00
session.go mcp: support stateless streamable sessions (#277) 2025-08-11 16:43:46 -04:00
shared.go mcp: handle the Mcp-Protocol-Version header correctly 2025-08-20 16:48:08 -04:00
shared_test.go mcp: change tool handler design (#325) 2025-08-20 19:36:34 -04:00
sse.go mcp: make transports open structs 2025-08-12 15:14:21 -04:00
sse_example_test.go mcp: change tool handler design (#325) 2025-08-20 19:36:34 -04:00
sse_test.go mcp: make transports open structs 2025-08-12 15:14:21 -04:00
streamable.go mcp: handle the Mcp-Protocol-Version header correctly 2025-08-20 16:48:08 -04:00
streamable_test.go mcp: uncomment test, change struct{} to any (#341) 2025-08-21 10:18:52 -04:00
tool.go mcp: change tool handler design (#325) 2025-08-20 19:36:34 -04:00
tool_test.go mcp: change tool handler design (#325) 2025-08-20 19:36:34 -04:00
transport.go mcp: pass TokenInfo to server handler (#292) 2025-08-20 10:50:16 -04:00
transport_test.go mcp: handle bad trailing stdio input graciously (#179) (#192) 2025-08-06 11:40:39 -04:00
util.go internal/util: move FieldJSONInfo into jsonschema/util (#251) 2025-08-06 12:07:57 -04:00