go-sdk/mcp
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Robert Findley b34ba2149d
mcp: handle bad or missing params (#210)
Audit all cases where params must not be null, and enforce this using
methodInfo via a new methodFlags bitfield that parameterizes method
requirements. Write extensive conformance tests catching all the
(server-side) crashes that were possible.

We should go further and validate schema against the spec, but that is
more indirect, more complicated, and potentially slower. For now we
adopt this more explicit approach.

Still TODO in a subsequent CL: verify the client side of this with
client conformance tests.

Additionally, improve some error messages that were redundant or leaked
internal implementation details.

Fixes #195
2025-07-31 10:57:59 -04:00
..
testdata mcp: handle bad or missing params (#210) 2025-07-31 10:57:59 -04:00
client.go mcp: handle bad or missing params (#210) 2025-07-31 10:57:59 -04:00
client_list_test.go mcp: new API for features (#88) 2025-07-07 14:54:52 -04:00
client_test.go internal/mcp: avoid JSON nulls on the wire 2025-06-18 12:32:33 -07:00
cmd.go internal/mcp: rename Stream->Connection 2025-06-17 17:55:11 -07:00
cmd_test.go mcp: NewClient and NewServer take Implementation (#113) 2025-07-10 16:57:38 -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: fix conformance tests (#132) 2025-07-14 12:47:58 -04:00
content.go mcp: dedup wire type for image and audio (#149) 2025-07-21 11:40:32 -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: incorporate EventStore into StreamableServerTransport (#156) 2025-07-23 13:42:50 -04:00
event_test.go mcp: incorporate EventStore into StreamableServerTransport (#156) 2025-07-23 13:42:50 -04:00
example_middleware_test.go mcp: Add example of using Middleware for logging purposes (#58) 2025-07-17 10:44:15 -04:00
example_progress_test.go mcp: NewClient and NewServer take Implementation (#113) 2025-07-10 16:57:38 -04:00
features.go mcp: advertise a capability if and only if added (#93) 2025-07-10 15:52:11 -04:00
features_test.go mcp: new API for features (#88) 2025-07-07 14:54:52 -04:00
logging.go Fix typos (#66) 2025-06-30 08:11:04 -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: remove unused functions (cleanup) (#207) 2025-07-30 14:59:47 -04:00
prompt.go mcp: new API for features (#88) 2025-07-07 14:54:52 -04:00
protocol.go Implement json.Unmarshaler to CreateMessageResult (#191) 2025-07-30 13:25:06 -04:00
protocol_test.go mcp: implement completion (#55) 2025-07-01 13:09:15 -04:00
resource.go mcp/Resource: Refactor URI Template Matching with uritemplate Library (#100) 2025-07-08 15:52:54 -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: handle bad or missing params (#210) 2025-07-31 10:57:59 -04:00
server_example_test.go mcp: NewClient and NewServer take Implementation (#113) 2025-07-10 16:57:38 -04:00
server_test.go mcp/server: add initial capability server option (#182) 2025-07-29 05:20:08 -04:00
shared.go mcp: handle bad or missing params (#210) 2025-07-31 10:57:59 -04:00
shared_test.go mcp: new API for features (#88) 2025-07-07 14:54:52 -04:00
sse.go mcp: reject requests with bad IDs (#202) 2025-07-30 12:26:40 -04:00
sse_example_test.go mcp: NewClient and NewServer take Implementation (#113) 2025-07-10 16:57:38 -04:00
sse_test.go mcp: handle bad or missing params (#210) 2025-07-31 10:57:59 -04:00
streamable.go mcp/streamable: add persistent SSE GET listener (#206) 2025-07-30 17:00:50 -04:00
streamable_test.go mcp/streamable: add persistent SSE GET listener (#206) 2025-07-30 17:00:50 -04:00
tool.go mcp: new API for features (#88) 2025-07-07 14:54:52 -04:00
tool_test.go mcp: new API for features (#88) 2025-07-07 14:54:52 -04:00
transport.go internal/jsonrpc2,mcp: fix typos (#183) 2025-07-28 12:18:03 -04:00
transport_test.go jsonrpc: package with JSON-RPC symbols (#117) 2025-07-10 14:33:23 -04: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