Nick Cooper
697c497724
fix: allow concurrent streamable http requests ( #1186 )
...
* fix: allow concurrent streamable http requests
* fix: keep streamable http recovery responsive
Keep cancellation and replies available while old session POSTs finish.
Bound the wait for old POSTs and the replacement initialization handshake.
Do not retry interrupted POSTs because the server may have processed them.
Add regressions for recovery, queued cancellation, control timeouts, and
server replies needed by active requests.
* fix: preserve response and cancellation ordering
* refactor: clarify streamable http control flow
* fix: match stream responses against pending request ids
Match responses against all pending requests before removing a stream
registration. Keep distinct numeric and string ids separate while preserving
the existing fallback for servers that stringify numeric ids.
Add a mixed-id regression and keep a separate registration owner alive in
the abandoned-cancellation test.
* feat: make streamable http control timeouts configurable
2026-08-24 22:43:35 +09:00
..
common
feat: deprecate roots/sampling/logging types ( #923 )
2026-06-25 21:11:59 -04:00
test_deserialization
fix(tasks): expose execution.taskSupport on tools ( #635 )
2026-02-03 19:17:36 -05:00
test_list_tools_result
feat!: add MRTR model types (SEP-2322) ( #915 )
2026-07-08 14:03:33 -04:00
test_message_schema
fix(rmcp): preserve elicitation requestedSchema $schema dialect ( #1176 )
2026-08-19 00:02:45 +09:00
test_with_js
refactor: provide http server as tower service ( #228 )
2025-05-28 19:21:40 +08:00
test_with_python
feat: Add prompt support ( #351 )
2025-08-21 11:22:19 +08:00
test_auth_error_classification.rs
feat: classify authorization-required errors ( #1056 )
2026-07-31 09:00:23 -04:00
test_cache_hints.rs
feat!: implement SEP-2549 cache hints ( #889 )
2026-07-10 13:54:18 -04:00
test_cancelled_response.rs
feat!: add MRTR behavior support (SEP-2322) ( #929 )
2026-07-10 12:02:26 -04:00
test_client_credentials.rs
fix(auth): validate discovered metadata issuer ( #996 )
2026-07-16 16:55:11 -04:00
test_client_initialization.rs
fix(client): classify discover outcome at source, not at the error type ( #1133 )
2026-08-09 14:07:50 -04:00
test_client_lifecycle_modes.rs
fix(client): classify discover outcome at source, not at the error type ( #1133 )
2026-08-09 14:07:50 -04:00
test_close_connection.rs
feat: add local feature for !Send tool handler support ( #740 )
2026-03-11 17:22:56 -04:00
test_completion.rs
feat!: align model types with MCP 2025-11-25 spec ( #927 )
2026-06-24 20:41:13 -04:00
test_complex_schema.rs
feat!: align model types with MCP 2025-11-25 spec ( #927 )
2026-06-24 20:41:13 -04:00
test_custom_headers.rs
feat: standardize resource-not-found error code (SEP-2164) ( #899 )
2026-06-16 21:55:25 -04:00
test_custom_request.rs
feat: add local feature for !Send tool handler support ( #740 )
2026-03-11 17:22:56 -04:00
test_deserialization.rs
fix(model): decode metadata-bearing input-required results affecting mrtr ( #1097 )
2026-07-31 09:23:56 -04:00
test_discover_http_client_startup.rs
fix(server): serve draft-version requests statelessly per SEP-2567 ( #999 )
2026-07-20 14:51:50 -04:00
test_elicitation.rs
refactor!: remove deprecated v3 APIs ( #1066 )
2026-07-28 14:01:56 -04:00
test_embedded_resource_meta.rs
feat!: align metadata models with draft schema ( #993 )
2026-07-15 08:58:46 -04:00
test_handler_cache_hints.rs
fix: emit cache hints from handler macros ( #1120 )
2026-08-05 10:20:08 -04:00
test_handler_wrappers.rs
chore: add #[non_exhaustive] and mutation methods to improve compatibility ( #715 )
2026-03-03 10:38:01 -05:00
test_inflight_response_drain.rs
chore: consolidate repeated rmcp tests ( #931 )
2026-06-26 16:15:20 -04:00
test_json_schema_detection.rs
feat: relax outputSchema to accept non-object JSON Schema types (SEP-2106) ( #895 )
2026-07-08 14:19:28 -04:00
test_list_tools_result.rs
fix: strip and validate tool outputSchema and inputSchema ( #860 )
2026-06-02 12:01:33 -04:00
test_local_client_handler.rs
fix: gate client handler bounds for local ( #1068 )
2026-07-28 11:02:32 -04:00
test_logging.rs
feat!: align model types with MCP 2025-11-25 spec ( #927 )
2026-06-24 20:41:13 -04:00
test_message_protocol.rs
feat: deprecate roots/sampling/logging types ( #923 )
2026-06-25 21:11:59 -04:00
test_message_schema.rs
fix!: remove server_info from DiscoverResult ( #1065 )
2026-07-28 15:55:40 -04:00
test_meta_helpers.rs
feat: add modern client lifecycle modes (SEP-2575) ( #995 )
2026-07-16 17:12:16 -04:00
test_mrtr_behavior.rs
fix: harden signing key handling ( #1166 )
2026-08-18 08:56:58 -04:00
test_notification.rs
feat: add subscription listen streams (SEP-2575) ( #1000 )
2026-07-21 09:53:04 -04:00
test_progress_subscriber.rs
feat!: align metadata models with draft schema ( #993 )
2026-07-15 08:58:46 -04:00
test_prompt_handler.rs
fix: fill missing fully qualified syntax in prompt_handler macros ( #866 )
2026-06-26 12:38:17 -04:00
test_prompt_macro_annotations.rs
feat!: align model types with MCP 2025-11-25 spec ( #927 )
2026-06-24 20:41:13 -04:00
test_prompt_macros.rs
chore: consolidate repeated rmcp tests ( #931 )
2026-06-26 16:15:20 -04:00
test_prompt_routers.rs
chore: consolidate repeated rmcp tests ( #931 )
2026-06-26 16:15:20 -04:00
test_protocol_version_negotiation.rs
fix: honor supported_protocol_versions when negotiating initialize ( #1093 )
2026-07-30 15:44:37 -04:00
test_request_timeout_progress.rs
feat!: align metadata models with draft schema ( #993 )
2026-07-15 08:58:46 -04:00
test_resource_link.rs
feat!: align model types with MCP 2025-11-25 spec ( #927 )
2026-06-24 20:41:13 -04:00
test_resource_link_integration.rs
feat!: align model types with MCP 2025-11-25 spec ( #927 )
2026-06-24 20:41:13 -04:00
test_resource_not_found_version.rs
feat!: add MRTR behavior support (SEP-2322) ( #929 )
2026-07-10 12:02:26 -04:00
test_result_type_version.rs
fix!: omit resultType for legacy protocol sessions ( #1038 )
2026-07-24 10:22:20 -04:00
test_result_type_wire.rs
fix: disambiguate input-required results ( #1103 )
2026-08-03 12:54:59 -04:00
test_sampling.rs
feat!: relax tool result structuredContent type (SEP-2106) ( #933 )
2026-07-08 14:14:07 -04:00
test_sep_2260_request_association.rs
feat: route SEP-2260 associated server requests to the originating SSE stream ( #1029 )
2026-07-23 13:12:20 -04:00
test_sep_2260_stream_enforcement.rs
feat: SEP-2260 stream-based enforcement of client receive-side request association ( #1055 )
2026-07-29 19:59:47 -04:00
test_sep_2260_stream_routing.rs
feat: route SEP-2260 associated server requests to the originating SSE stream ( #1029 )
2026-07-23 13:12:20 -04:00
test_server_discover.rs
fix!: remove server_info from DiscoverResult ( #1065 )
2026-07-28 15:55:40 -04:00
test_server_discover_client.rs
fix!: remove server_info from DiscoverResult ( #1065 )
2026-07-28 15:55:40 -04:00
test_server_discover_http.rs
fix!: remove server_info from DiscoverResult ( #1065 )
2026-07-28 15:55:40 -04:00
test_server_initialization.rs
fix: update peer info on duplicate initialize ( #862 )
2026-06-10 15:42:09 -04:00
test_sse_concurrent_streams.rs
feat!: align model types with MCP 2025-11-25 spec ( #927 )
2026-06-24 20:41:13 -04:00
test_stateless_protocol_version.rs
fix: honor supported_protocol_versions when negotiating initialize ( #1093 )
2026-07-30 15:44:37 -04:00
test_stateless_server_requests.rs
fix: report pre-init metadata errors ( #1160 )
2026-08-18 09:34:54 +09:00
test_stdio_response_concurrency.rs
feat!: add MRTR behavior support (SEP-2322) ( #929 )
2026-07-10 12:02:26 -04:00
test_streamable_http_4xx_error_body.rs
fix(rmcp): surface JSON-RPC error bodies on HTTP 4xx responses ( #748 )
2026-03-17 09:27:45 -04:00
test_streamable_http_client_concurrency.rs
fix: allow concurrent streamable http requests ( #1186 )
2026-08-24 22:43:35 +09:00
test_streamable_http_connection_reuse.rs
fix(http): drain SSE stream for connection reuse ( #790 )
2026-04-13 16:33:30 -04:00
test_streamable_http_disconnect_cancel.rs
fix(server): serve draft-version requests statelessly per SEP-2567 ( #999 )
2026-07-20 14:51:50 -04:00
test_streamable_http_empty_2xx_notification.rs
fix: accept 200 with empty body in response to notifications in addition to 202 ( #849 )
2026-05-14 14:52:11 -04:00
test_streamable_http_event_store.rs
feat!: add distributed SSE event store ( #1024 )
2026-07-23 11:02:27 -04:00
test_streamable_http_get_stream_auth_challenge.rs
fix(auth): map 401/403 challenges on the SSE GET stream ( #1152 )
2026-08-07 15:39:55 -04:00
test_streamable_http_idle_timeout_log.rs
Fix/issue 817 idle timeout log level ( #824 )
2026-05-04 20:14:06 -04:00
test_streamable_http_init_timeout.rs
fix: add init_timeout for streamable-http sessions ( #811 )
2026-05-01 09:20:50 -04:00
test_streamable_http_json_response.rs
fix: .with_stateful_mode -> .with_legacy_session_mode ( #1015 )
2026-07-20 17:23:22 -04:00
test_streamable_http_priming.rs
fix(server): serve draft-version requests statelessly per SEP-2567 ( #999 )
2026-07-20 14:51:50 -04:00
test_streamable_http_protocol_version.rs
feat: add strict stateless protocol metadata validation ( #1091 )
2026-07-30 16:00:02 -04:00
test_streamable_http_session_store.rs
fix(server): serve draft-version requests statelessly per SEP-2567 ( #999 )
2026-07-20 14:51:50 -04:00
test_streamable_http_stale_session.rs
feat!: add distributed SSE event store ( #1024 )
2026-07-23 11:02:27 -04:00
test_streamable_http_standard_headers.rs
fix(server): serve draft-version requests statelessly per SEP-2567 ( #999 )
2026-07-20 14:51:50 -04:00
test_structured_output.rs
feat!: add MRTR behavior support (SEP-2322) ( #929 )
2026-07-10 12:02:26 -04:00
test_subscriptions.rs
fix: stamp server info on graceful subscription results ( #1078 )
2026-07-29 13:34:33 -04:00
test_subscriptions_model.rs
fix: stamp server info on graceful subscription results ( #1078 )
2026-07-29 13:34:33 -04:00
test_subscriptions_streamable_http.rs
fix: stamp server info on graceful subscription results ( #1078 )
2026-07-29 13:34:33 -04:00
test_task.rs
feat: Implement SEP-2663 Tasks Extension ( #1020 )
2026-07-22 14:16:52 -04:00
test_tool_builder_methods.rs
feat: relax outputSchema to accept non-object JSON Schema types (SEP-2106) ( #895 )
2026-07-08 14:19:28 -04:00
test_tool_disable_notification.rs
feat!: add MRTR behavior support (SEP-2322) ( #929 )
2026-07-10 12:02:26 -04:00
test_tool_handler.rs
Move whole rmcp crate to offcial rust sdk ( #44 )
2025-03-27 17:33:41 -04:00
test_tool_macro_annotations.rs
feat(macros): auto-generate get_info and default router ( #785 )
2026-04-08 15:06:26 -04:00
test_tool_macros.rs
feat: Implement SEP-2663 Tasks Extension ( #1020 )
2026-07-22 14:16:52 -04:00
test_tool_result_meta.rs
feat!: align metadata models with draft schema ( #993 )
2026-07-15 08:58:46 -04:00
test_tool_routers.rs
chore: consolidate repeated rmcp tests ( #931 )
2026-06-26 16:15:20 -04:00
test_trace_context.rs
feat!: align metadata models with draft schema ( #993 )
2026-07-15 08:58:46 -04:00
test_unix_socket_transport.rs
feat(transport): add Unix domain socket client for streamable HTTP ( #749 )
2026-03-24 09:50:32 -04:00
test_with_js.rs
test: serialize JavaScript dependency install ( #972 )
2026-07-14 14:32:56 -04:00
test_with_python.rs
feat: add local feature for !Send tool handler support ( #740 )
2026-03-11 17:22:56 -04:00