From 4b3eef0c9a0cc43414c91b66797155bcd2d46580 Mon Sep 17 00:00:00 2001 From: Alex Hancock Date: Wed, 18 Feb 2026 20:41:14 -0500 Subject: [PATCH] chore: upgrade to rmcp 0.16.0 (#7274) --- Cargo.lock | 189 ++++++++++++++++++++++++++++----- Cargo.toml | 4 +- crates/goose-cli/Cargo.toml | 2 +- crates/goose-mcp/Cargo.toml | 2 +- crates/goose-server/Cargo.toml | 2 +- crates/goose/Cargo.toml | 2 +- crates/goose/src/oauth/mod.rs | 1 + 7 files changed, 167 insertions(+), 35 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index db1407fac1..522aa8b574 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -25,7 +25,7 @@ checksum = "b169f7a6d4742236a0a00c541b845991d0ac43e546831af1249753ab4c3aa3a0" dependencies = [ "cfg-if", "cipher", - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -1325,7 +1325,7 @@ dependencies = [ "cc", "cfg-if", "constant_time_eq 0.4.2", - "cpufeatures", + "cpufeatures 0.2.17", ] [[package]] @@ -1759,6 +1759,17 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" +[[package]] +name = "chacha20" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" +dependencies = [ + "cfg-if", + "cpufeatures 0.3.0", + "rand_core 0.10.0", +] + [[package]] name = "chrono" version = "0.4.43" @@ -2202,6 +2213,15 @@ dependencies = [ "libc", ] +[[package]] +name = "cpufeatures" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +dependencies = [ + "libc", +] + [[package]] name = "crc" version = "3.4.0" @@ -4129,6 +4149,7 @@ dependencies = [ "cfg-if", "libc", "r-efi", + "rand_core 0.10.0", "wasip2", "wasip3", ] @@ -4234,8 +4255,8 @@ dependencies = [ "posthog-rs", "rand 0.8.5", "regex", - "reqwest 0.12.28", - "rmcp 0.15.0", + "reqwest 0.13.2", + "rmcp 0.16.0", "rubato", "schemars 1.2.1", "serde", @@ -4293,7 +4314,7 @@ dependencies = [ "goose-test-support", "http-body-util", "regex", - "rmcp 0.15.0", + "rmcp 0.16.0", "sacp", "serde", "serde_json", @@ -4338,8 +4359,8 @@ dependencies = [ "open", "rand 0.8.5", "regex", - "reqwest 0.12.28", - "rmcp 0.15.0", + "reqwest 0.13.2", + "rmcp 0.16.0", "rustyline", "serde", "serde_json", @@ -4382,8 +4403,8 @@ dependencies = [ "once_cell", "rayon", "regex", - "reqwest 0.12.28", - "rmcp 0.15.0", + "reqwest 0.13.2", + "rmcp 0.16.0", "schemars 1.2.1", "serde", "serde_json", @@ -4432,8 +4453,8 @@ dependencies = [ "http 1.4.0", "once_cell", "rand 0.9.2", - "reqwest 0.12.28", - "rmcp 0.15.0", + "reqwest 0.13.2", + "rmcp 0.16.0", "rustls 0.23.36", "serde", "serde_json", @@ -4470,7 +4491,7 @@ name = "goose-test-support" version = "1.24.0" dependencies = [ "axum 0.7.9", - "rmcp 0.15.0", + "rmcp 0.16.0", "serde_json", "tokio", ] @@ -4858,7 +4879,6 @@ dependencies = [ "tokio", "tokio-rustls 0.26.4", "tower-service", - "webpki-roots 1.0.6", ] [[package]] @@ -6248,7 +6268,6 @@ dependencies = [ "getrandom 0.2.17", "http 1.4.0", "rand 0.8.5", - "reqwest 0.12.28", "serde", "serde_json", "serde_path_to_error", @@ -7518,6 +7537,7 @@ version = "0.11.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" dependencies = [ + "aws-lc-rs", "bytes", "getrandom 0.3.4", "lru-slab", @@ -7599,6 +7619,17 @@ dependencies = [ "rand_core 0.9.5", ] +[[package]] +name = "rand" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc266eb313df6c5c09c1c7b1fbe2510961e5bcd3add930c1e31f7ed9da0feff8" +dependencies = [ + "chacha20", + "getrandom 0.4.1", + "rand_core 0.10.0", +] + [[package]] name = "rand_chacha" version = "0.3.1" @@ -7637,6 +7668,12 @@ dependencies = [ "getrandom 0.3.4", ] +[[package]] +name = "rand_core" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba" + [[package]] name = "rand_distr" version = "0.5.1" @@ -7882,7 +7919,6 @@ dependencies = [ "js-sys", "log", "mime", - "mime_guess", "percent-encoding", "pin-project-lite", "quinn", @@ -7902,9 +7938,56 @@ dependencies = [ "url", "wasm-bindgen", "wasm-bindgen-futures", - "wasm-streams", + "wasm-streams 0.4.2", + "web-sys", +] + +[[package]] +name = "reqwest" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab3f43e3283ab1488b624b44b0e988d0acea0b3214e694730a055cb6b2efa801" +dependencies = [ + "base64 0.22.1", + "bytes", + "cookie", + "cookie_store", + "encoding_rs", + "futures-channel", + "futures-core", + "futures-util", + "h2 0.4.13", + "http 1.4.0", + "http-body 1.0.1", + "http-body-util", + "hyper 1.8.1", + "hyper-rustls 0.27.7", + "hyper-util", + "js-sys", + "log", + "mime", + "mime_guess", + "percent-encoding", + "pin-project-lite", + "quinn", + "rustls 0.23.36", + "rustls-pki-types", + "rustls-platform-verifier", + "serde", + "serde_json", + "serde_urlencoded", + "sync_wrapper 1.0.2", + "tokio", + "tokio-rustls 0.26.4", + "tokio-util", + "tower", + "tower-http", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams 0.5.0", "web-sys", - "webpki-roots 1.0.6", ] [[package]] @@ -7991,12 +8074,11 @@ dependencies = [ [[package]] name = "rmcp" -version = "0.15.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bef41ebc9ebed2c1b1d90203e9d1756091e8a00bbc3107676151f39868ca0ee" +checksum = "cc4c9c94680f75470ee8083a0667988b5d7b5beb70b9f998a8e51de7c682ce60" dependencies = [ "async-trait", - "axum 0.8.8", "base64 0.22.1", "bytes", "chrono", @@ -8008,9 +8090,9 @@ dependencies = [ "pastey", "pin-project-lite", "process-wrap", - "rand 0.9.2", - "reqwest 0.12.28", - "rmcp-macros 0.15.0", + "rand 0.10.0", + "reqwest 0.13.2", + "rmcp-macros 0.16.0", "schemars 1.2.1", "serde", "serde_json", @@ -8053,9 +8135,9 @@ dependencies = [ [[package]] name = "rmcp-macros" -version = "0.15.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e88ad84b8b6237a934534a62b379a5be6388915663c0cc598ceb9b3292bbbfe" +checksum = "90c23c8f26cae4da838fbc3eadfaecf2d549d97c04b558e7bd90526a9c28b42a" dependencies = [ "darling 0.23.0", "proc-macro2", @@ -8252,6 +8334,33 @@ dependencies = [ "zeroize", ] +[[package]] +name = "rustls-platform-verifier" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d99feebc72bae7ab76ba994bb5e121b8d83d910ca40b36e0921f53becc41784" +dependencies = [ + "core-foundation 0.10.1", + "core-foundation-sys", + "jni", + "log", + "once_cell", + "rustls 0.23.36", + "rustls-native-certs", + "rustls-platform-verifier-android", + "rustls-webpki 0.103.9", + "security-framework 3.5.1", + "security-framework-sys", + "webpki-root-certs", + "windows-sys 0.61.2", +] + +[[package]] +name = "rustls-platform-verifier-android" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f87165f0995f63a9fbeea62b64d10b4d9d8e78ec6d7d51fb2125fda7bb36788f" + [[package]] name = "rustls-webpki" version = "0.101.7" @@ -8731,7 +8840,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest", ] @@ -8742,7 +8851,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" dependencies = [ "cfg-if", - "cpufeatures", + "cpufeatures 0.2.17", "digest", ] @@ -11392,6 +11501,19 @@ dependencies = [ "web-sys", ] +[[package]] +name = "wasm-streams" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d1ec4f6517c9e11ae630e200b2b65d193279042e28edd4a2cda233e46670bbb" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + [[package]] name = "wasm_dep_analyzer" version = "0.4.0" @@ -11450,6 +11572,15 @@ dependencies = [ "web-sys", ] +[[package]] +name = "webpki-root-certs" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "804f18a4ac2676ffb4e8b5b5fa9ae38af06df08162314f96a68d2a363e21a8ca" +dependencies = [ + "rustls-pki-types", +] + [[package]] name = "webpki-roots" version = "0.25.4" @@ -12530,9 +12661,9 @@ dependencies = [ [[package]] name = "zlib-rs" -version = "0.6.1" +version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a33bbf307b25a1774cee0687694ec72fa7814b3ab5c1c12a9d2fc6a36fc439c" +checksum = "c745c48e1007337ed136dc99df34128b9faa6ed542d80a1c673cf55a6d7236c8" [[package]] name = "zmij" diff --git a/Cargo.toml b/Cargo.toml index 193a497914..d04d96e5a1 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -15,7 +15,7 @@ uninlined_format_args = "allow" string_slice = "warn" [workspace.dependencies] -rmcp = { version = "0.15.0", features = ["schemars", "auth"] } +rmcp = { version = "0.16", features = ["schemars", "auth"] } anyhow = "1.0" async-stream = "0.3" async-trait = "0.1" @@ -38,7 +38,7 @@ lru = "0.16" once_cell = "1.20" rand = "0.8" regex = "1.12" -reqwest = { version = "0.12.28", default-features = false, features = ["multipart"] } +reqwest = { version = "0.13", default-features = false, features = ["multipart", "form"] } schemars = { default-features = false, version = "1.0" } serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" diff --git a/crates/goose-cli/Cargo.toml b/crates/goose-cli/Cargo.toml index 693dd97733..dd7eabdca9 100644 --- a/crates/goose-cli/Cargo.toml +++ b/crates/goose-cli/Cargo.toml @@ -49,7 +49,7 @@ async-trait = { workspace = true } base64 = { workspace = true } regex = { workspace = true } tar = "0.4" -reqwest = { workspace = true, features = ["blocking", "rustls-tls-native-roots"] } +reqwest = { workspace = true, features = ["blocking", "rustls"], default-features = false } zip = { version = "^8.0", default-features = false, features = ["deflate"] } bzip2 = "0.5" # Web server dependencies diff --git a/crates/goose-mcp/Cargo.toml b/crates/goose-mcp/Cargo.toml index 58c346b552..a3472453ff 100644 --- a/crates/goose-mcp/Cargo.toml +++ b/crates/goose-mcp/Cargo.toml @@ -26,7 +26,7 @@ schemars = { workspace = true } shellexpand = { workspace = true } indoc = { workspace = true } xcap = "=0.4.0" -reqwest = { workspace = true, features = ["json", "rustls-tls-native-roots", "system-proxy"], default-features = false } +reqwest = { workspace = true, features = ["json", "rustls", "system-proxy"], default-features = false } chrono = { workspace = true } etcetera = { workspace = true } tempfile = { workspace = true } diff --git a/crates/goose-server/Cargo.toml b/crates/goose-server/Cargo.toml index 575d5467f1..bd3dc56558 100644 --- a/crates/goose-server/Cargo.toml +++ b/crates/goose-server/Cargo.toml @@ -38,7 +38,7 @@ thiserror = { workspace = true } clap = { workspace = true } serde_yaml = { workspace = true } utoipa = { workspace = true, features = ["axum_extras", "chrono"] } -reqwest = { workspace = true, features = ["json", "rustls-tls", "blocking", "multipart", "system-proxy"], default-features = false } +reqwest = { workspace = true, features = ["json", "rustls", "blocking", "multipart", "system-proxy"], default-features = false } tokio-util = { workspace = true } serde_path_to_error = "0.1.20" tokio-tungstenite = { version = "0.28.0", features = ["rustls-tls-native-roots"] } diff --git a/crates/goose/Cargo.toml b/crates/goose/Cargo.toml index 6daab50a3d..ded774e989 100644 --- a/crates/goose/Cargo.toml +++ b/crates/goose/Cargo.toml @@ -27,7 +27,7 @@ anyhow = { workspace = true } thiserror = { workspace = true } futures = { workspace = true } dirs = { workspace = true } -reqwest = { workspace = true, features = ["rustls-tls-native-roots", "json", "cookies", "gzip", "brotli", "deflate", "zstd", "charset", "http2", "stream", "blocking", "multipart", "system-proxy"], default-features = false } +reqwest = { workspace = true, features = ["rustls", "json", "cookies", "gzip", "brotli", "deflate", "zstd", "charset", "http2", "stream", "blocking", "multipart", "system-proxy"], default-features = false } tokio = { workspace = true } serde = { workspace = true } serde_json = { workspace = true } diff --git a/crates/goose/src/oauth/mod.rs b/crates/goose/src/oauth/mod.rs index 1eccaa7223..17fe8fe544 100644 --- a/crates/goose/src/oauth/mod.rs +++ b/crates/goose/src/oauth/mod.rs @@ -105,6 +105,7 @@ pub async fn oauth_flow( .save(StoredCredentials { client_id, token_response, + granted_scopes: vec![], }) .await?;