mcp: improvements for 'stateless' streamable servers; 'distributed' mode
Several improvements for the stateless streamable mode, plus support for a 'distributed' (or rather, distributable) version of the stateless server. - Add a 'Stateless' option to StreamableHTTPOptions and StreamableServerTransport, which controls stateless behavior. GetSessionID may still return a non-empty session ID. - Audit validation of stateless mode to allow requests with a session id. Propagate this session ID to the temporary connection. - Peek at requests to allow 'initialize' requests to go through to the session, so that version negotiation can occur (FIXME: add tests). Fixes #284 For #148
This commit is contained in:
parent
0eb03e0d76
commit
98e67fdf62
1 changed files with 203 additions and 37 deletions
|
|
@ -37,6 +37,17 @@ var (
|
|||
ErrServerClosing = NewError(-32004, "server is closing")
|
||||
// ErrClientClosing is a dummy error returned for calls initiated while the client is closing.
|
||||
ErrClientClosing = NewError(-32003, "client is closing")
|
||||
|
||||
// The following errors have special semantics for MCP transports
|
||||
|
||||
// ErrRejected may be wrapped to return errors from calls to Writer.Write
|
||||
// that signal that the request was rejected by the transport layer as
|
||||
// invalid.
|
||||
//
|
||||
// Such failures do not indicate that the connection is broken, but rather
|
||||
// should be returned to the caller to indicate that the specific request is
|
||||
// invalid in the current context.
|
||||
ErrRejected = NewError(-32004, "rejected by transport")
|
||||
)
|
||||
|
||||
const wireVersion = "2.0"
|
||||
|
|
|
|||
Loading…
Reference in a new issue