Upgrade rmcp to 3.0.0 (#36001)

## What changed

- Update the Rust MCP SDK from `3.0.0-beta.3` to `3.0.0` and adapt to its renamed metadata and server discovery types.
- Accept discovery responses without server identity metadata, using the configured server name as a fallback, and rely on the SDK's native support for namespaced server identity metadata.
- Preserve typed OAuth HTTP errors so transport failures, cross-origin redirects, and transient HTTP responses are reported instead of being treated as anonymous access.

## Testing

- Cover modern discovery with namespaced or missing server identity over HTTP, SSE, and stdio.
- Cover OAuth discovery error propagation for transport failures, redirects, and transient status codes.

GitOrigin-RevId: 12c1e45136cca89ce4fb15986c2b5df14608682a
This commit is contained in:
thomas authored and copyberry committed 2026-07-29 17:38:20 +00:00
1 parent df326d31cd
commit a05bcda3db
22 files changed
+274 -155

No files matched your search

@@ -3,7 +3,7 @@ use std::sync::Arc;
use pretty_assertions::assert_eq;
use rmcp::model::JsonObject;
use rmcp::model::Meta;
use rmcp::model::MetaObject;
use rmcp::model::Tool;
use super::*;
@@ -71,7 +71,7 @@ fn prepare_openai_file_params_for_model_masks_file_params() {
.expect("object")
.clone(),
);
tool.meta = Some(Meta(
tool.meta = Some(MetaObject(
serde_json::json!({
"openai/fileParams": ["file", "files"]
})
@@ -219,7 +219,7 @@ fn prepare_openai_file_params_for_model_derives_supported_optional_fields() {
.clone(),
),
);
tool.meta = Some(Meta(
tool.meta = Some(MetaObject(
serde_json::json!({
"openai/fileParams": [
"photoshop_image",