-
Notifications
You must be signed in to change notification settings - Fork 500
Comparing changes
Open a pull request
base repository: modelcontextprotocol/rust-sdk
base: rmcp-v1.2.0
head repository: modelcontextprotocol/rust-sdk
compare: rmcp-v1.3.0
- 18 commits
- 104 files changed
- 10 contributors
Commits on Mar 11, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 8700e5c - Browse repository at this point
Copy the full SHA 8700e5cView commit details -
feat: add local feature for !Send tool handler support (#740)
* feat: add local feature for !Send tool handler support * fix: gate streamable HTTP transport on not(local) feature
Configuration menu - View commit details
-
Copy full SHA for 1a4a52a - Browse repository at this point
Copy the full SHA 1a4a52aView commit details
Commits on Mar 13, 2026
-
fix(auth): redact secrets in Debug output for StoredCredentials and S…
…toredAuthorizationState (#744) * fix(auth): redact secrets in Debug output for StoredCredentials and StoredAuthorizationState Removes `Debug` from the derive macros on `StoredCredentials` and `StoredAuthorizationState` and replaces them with manual `Debug` impls that print `[REDACTED]` for sensitive fields (access/refresh tokens, PKCE verifiers, and CSRF tokens), preventing accidental credential leakage via `{:?}` formatters, log calls, and error chains. Fixes #741 Co-Authored-By: Claude Sonnet 4.6 <[email protected]> * test(auth): assert Debug output redacts secrets for credential types Adds regression tests for the fix in the previous commit, verifying that `{:?}` formatting of `StoredAuthorizationState` and `StoredCredentials` does not emit plaintext secrets. Co-Authored-By: Claude Sonnet 4.6 <[email protected]> * test(auth): address review feedback on debug redaction tests - Remove redundant VendorExtraTokenFields from use super:: in test_stored_credentials_debug_redacts_token_response (already imported at module scope) - Add assert!(debug_output.contains("created_at")) to test_stored_authorization_state_debug_redacts_secrets to verify non-secret fields remain visible in Debug output - Run cargo fmt Co-Authored-By: Claude Sonnet 4.6 <[email protected]> * Update crates/rmcp/src/transport/auth.rs Co-authored-by: Dale Seo <[email protected]> * fix: remaining formatting issue * fix: formatting * fix: formatting * fix: please --------- Co-authored-by: Claude Sonnet 4.6 <[email protected]> Co-authored-by: Dale Seo <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 66712db - Browse repository at this point
Copy the full SHA 66712dbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 44dfcf5 - Browse repository at this point
Copy the full SHA 44dfcf5View commit details
Commits on Mar 17, 2026
-
fix(rmcp): surface JSON-RPC error bodies on HTTP 4xx responses (#748)
* fix(rmcp): surface JSON-RPC error bodies on HTTP 4xx responses When a server returns a 4xx status with Content-Type: application/json, attempt to deserialize the body as a ServerJsonRpcMessage before falling back to UnexpectedServerResponse. This allows JSON-RPC error payloads carried on HTTP error responses to be surfaced as McpError instead of being lost in a transport-level error string. Fixes #724 * fix(rmcp): surface JSON-RPC error bodies on HTTP 4xx responses When a server returns a 4xx status with Content-Type: application/json, attempt to deserialize the body as a ServerJsonRpcMessage before falling back to UnexpectedServerResponse. This allows JSON-RPC error payloads carried on HTTP error responses to be surfaced as McpError instead of being lost in a transport-level error string. Fixes #724 * fix(rmcp): only accept JsonRpcMessage::Error on non-success responses
Configuration menu - View commit details
-
Copy full SHA for 55b478b - Browse repository at this point
Copy the full SHA 55b478bView commit details
Commits on Mar 18, 2026
-
Configuration menu - View commit details
-
Copy full SHA for d485249 - Browse repository at this point
Copy the full SHA d485249View commit details -
Configuration menu - View commit details
-
Copy full SHA for e709d0d - Browse repository at this point
Copy the full SHA e709d0dView commit details -
Configuration menu - View commit details
-
Copy full SHA for 251ebec - Browse repository at this point
Copy the full SHA 251ebecView commit details
Commits on Mar 22, 2026
-
feat: add configuration for transparent session re-init (#760)
* feat: add configuration for transparent session re-init * fix: in ci revert running tests without local until all tests pass * fix: pr comments * fix: documentation
Configuration menu - View commit details
-
Copy full SHA for 3ea8c3c - Browse repository at this point
Copy the full SHA 3ea8c3cView commit details
Commits on Mar 23, 2026
-
chore: remove the rig example (#763)
The rig official has the mcp example, we need not to keep it just give the link. Signed-off-by: jokemanfire <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 30cdc38 - Browse repository at this point
Copy the full SHA 30cdc38View commit details -
fix: prevent CallToolResult and GetTaskPayloadResult from shadowing C…
…ustomResult in untagged enums (#771) The `#[serde(default)]` on `CallToolResult.content` (added in #752) made all fields optional, causing `CallToolResult` to greedily match any JSON object during `#[serde(untagged)]` deserialization of `ServerResult`. Similarly, `GetTaskPayloadResult(Value)` matched everything before `CustomResult(Value)` could be reached. Fix by replacing derived `Deserialize` impls with custom ones: - `CallToolResult`: require at least one known field to be present - `GetTaskPayloadResult`: always fail (indistinguishable from `CustomResult` in JSON; construct programmatically via `::new()`)
Configuration menu - View commit details
-
Copy full SHA for c8c0c0c - Browse repository at this point
Copy the full SHA c8c0c0cView commit details -
chore(deps): update tokio-tungstenite requirement from 0.28.0 to 0.29…
….0 (#773) Updates the requirements on [tokio-tungstenite](https://github.com/snapview/tokio-tungstenite) to permit the latest version. - [Changelog](https://github.com/snapview/tokio-tungstenite/blob/master/CHANGELOG.md) - [Commits](snapview/tokio-tungstenite@v0.28.0...v0.29.0) --- updated-dependencies: - dependency-name: tokio-tungstenite dependency-version: 0.29.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for f89e412 - Browse repository at this point
Copy the full SHA f89e412View commit details -
Configuration menu - View commit details
-
Copy full SHA for baf22d3 - Browse repository at this point
Copy the full SHA baf22d3View commit details
Commits on Mar 24, 2026
-
feat(auth): implement SEP-2207 OIDC-flavored refresh token guidance (#…
…676) * feat: implement sep-2207 refresh token guidance * fix: update client-metadata.json to allow refresh tokens
Configuration menu - View commit details
-
Copy full SHA for a32a9c8 - Browse repository at this point
Copy the full SHA a32a9c8View commit details -
feat(transport): add Unix domain socket client for streamable HTTP (#749
) * feat(transport): add Unix domain socket client for streamable HTTP MCP hosts in Kubernetes environments with Envoy sidecars need to route HTTP through Unix domain sockets because DNS-based URIs only resolve via the proxy. Adds UnixSocketHttpClient implementing StreamableHttpClient using hyper over tokio::net::UnixStream, gated behind the transport-streamable-http-client-unix-socket feature. Also extracts RESERVED_HEADERS, extract_scope_from_header, and validate_custom_header into common/http_header.rs to share header validation logic between the reqwest and unix socket implementations. * fix(transport): address review feedback for unix socket transport - Document one-connection-per-request behavior on UnixSocketHttpClient - Reject empty socket paths and bare '@' in constructor with assert - Add explicit dep:http to unix-socket feature for self-documenting deps - Document MCP-Protocol-Version exception on RESERVED_HEADERS constant - Fix test catch-all to echo request id instead of hardcoding 1 - Remove leftover sleep(100ms) in test_unix_socket_custom_headers - Add blank line before macro comment in Cargo.toml * fix(transport): fix CI failures for unix socket transport - Use std::io::Error::other() instead of Error::new(ErrorKind::Other) to satisfy clippy::io_other_error on newer nightly - Use #[tokio::test(flavor = "current_thread")] for unix socket tests since axum's serve(UnixListener) requires spawn_local - Gate validate_custom_header behind client-side-sse feature since it references http::HeaderName which isn't available with default features * fix(transport): fix CI failures for unix socket transport axum::serve(UnixListener) uses spawn_local on Linux, which panics outside a LocalSet. Replace with manual hyper HTTP/1.1 server that accepts connections directly from the UnixListener, avoiding the spawn_local requirement entirely. * fix(transport): skip unix socket tests when local feature is enabled The local feature causes ().serve(transport) to use spawn_local, which requires a LocalSet. Gate the integration tests with not(feature = "local") to match every other integration test in the repo.
Configuration menu - View commit details
-
Copy full SHA for ee1c63c - Browse repository at this point
Copy the full SHA ee1c63cView commit details
Commits on Mar 26, 2026
-
chore: add #[non_exhaustive] to remaining public structs (#768)
* chore: add #[non_exhaustive] to remaining public structs * chore: add #[non_exhaustive] to remaining public types * chore: enable exhaustive_structs/enums clippy lints * test: add untagged ServerResult deserialization regression tests
Configuration menu - View commit details
-
Copy full SHA for 6a3b32d - Browse repository at this point
Copy the full SHA 6a3b32dView commit details -
feat: add "theme" to Icon (#766)
* feat: add theme field to Icon * fix: update IconThem crates/rmcp/src/model.rs (non_exhaustive) Co-authored-by: Dale Seo <[email protected]> * fix: update IconThem crates/rmcp/src/model.rs (eq, hash) Co-authored-by: Dale Seo <[email protected]> * fix: update docs with full descriptions of theme from mcp spec --------- Co-authored-by: Dale Seo <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 0b36a84 - Browse repository at this point
Copy the full SHA 0b36a84View commit details -
* chore: release v2.0.0 * chore: version 1.3.0 --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Dale Seo <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for ac749e3 - Browse repository at this point
Copy the full SHA ac749e3View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff rmcp-v1.2.0...rmcp-v1.3.0