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
..
testdata
mcp: don't mark the server sesion as initialized prematurely
2025-08-07 14:59:36 -04:00
client.go
mcp: implement a concurrency model for calls
2025-08-19 11:21:02 -04:00
client_list_test.go
mcp: support stateless streamable sessions ( #277 )
2025-08-11 16:43:46 -04:00
client_test.go
jsonschema: remove jsonschema code and depend on google/jsonschema-go ( #262 )
2025-08-07 15:30:06 -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: check that UnmarshalJSON methods for Content don't panic on nil
2025-08-14 14:27:25 -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: introduce Requests ( #267 )
2025-08-12 17:49:50 -04:00
example_progress_test.go
mcp: introduce Requests ( #267 )
2025-08-12 17:49:50 -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
jsonschema: remove jsonschema code and depend on google/jsonschema-go ( #262 )
2025-08-07 15:30:06 -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: implement a concurrency model for calls
2025-08-19 11:21:02 -04:00
prompt.go
mcp: new API for features ( #88 )
2025-07-07 14:54:52 -04:00
protocol.go
mcp: rename logging symbols ( #321 )
2025-08-19 07:49:56 -04:00
protocol_test.go
mcp: implement completion ( #55 )
2025-07-01 13:09:15 -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: implement a concurrency model for calls
2025-08-19 11:21:02 -04:00
server_example_test.go
mcp: introduce Requests ( #267 )
2025-08-12 17:49:50 -04:00
server_test.go
mcp: Ensure keepalive goroutine is started exactly once
2025-08-19 09:46:54 -04:00
session.go
mcp: support stateless streamable sessions ( #277 )
2025-08-11 16:43:46 -04:00
shared.go
mcp: implement a concurrency model for calls
2025-08-19 11:21:02 -04:00
shared_test.go
mcp: introduce Requests ( #267 )
2025-08-12 17:49:50 -04:00
sse.go
mcp: make transports open structs
2025-08-12 15:14:21 -04:00
sse_example_test.go
mcp: introduce Requests ( #267 )
2025-08-12 17:49:50 -04:00
sse_test.go
mcp: make transports open structs
2025-08-12 15:14:21 -04:00
streamable.go
mcp: implement a concurrency model for calls
2025-08-19 11:21:02 -04:00
streamable_test.go
mcp: implement a concurrency model for calls
2025-08-19 11:21:02 -04:00
tool.go
mcp: introduce Requests ( #267 )
2025-08-12 17:49:50 -04:00
tool_test.go
mcp: introduce Requests ( #267 )
2025-08-12 17:49:50 -04:00
transport.go
mcp: fix cancellation for HTTP transport
2025-08-14 11:32:51 -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