go-sdk/internal/jsonrpc2
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Rob Findley 3db848abec mcp: implement a concurrency model for calls
Implement the concurrency model described in #26: notifications are
synchronous, but calls are asynchronous (except for 'initialize'). To
achieve this, implement jsonrpc2.Async(ctx) to signal asynchronous
handling. This is simpler to use than returning ErrAsyncResponse and
calling Respond, and since this is an internal detail we don't need to
worry too much about whether it's idiomatic.

Add tests that verify both features, for both client and server.

Also:
- replace req.ID.IsValid with req.IsCall
- remove the methodHandler type as we can just use MethodHandler

Fixes #26
2025-08-19 11:21:02 -04:00
..
conn.go mcp: implement a concurrency model for calls 2025-08-19 11:21:02 -04:00
frame.go internal/jsonrpc2: allow asynchronous writes 2025-08-08 12:38:43 -04:00
jsonrpc2.go mcp: implement a concurrency model for calls 2025-08-19 11:21:02 -04:00
jsonrpc2_test.go mcp: implement a concurrency model for calls 2025-08-19 11:21:02 -04:00
messages.go jsonrpc: expose encoding and decoding functions (#114) 2025-07-14 07:01:40 -04:00
net.go internal/jsonrpc2_v2: update for go1.16+ 2025-05-27 10:50:54 -07:00
serve.go internal/mcp: implement HTTP SSE transport 2025-04-23 19:15:20 -07:00
serve_test.go internal/jsonrpc2_v2,mcp: remove unneeded dependencies 2025-06-18 22:11:26 -07:00
wire.go mcp: handle bad or missing params (#210) 2025-07-31 10:57:59 -04:00
wire_test.go x/tools: modernize interface{} -> any 2025-02-19 15:14:27 -08:00