feat(model): add ServerConfig and ClientConfig (#1266)
This commit is contained in:
parent
fbfc5cc96e
commit
165ff92df1
35 changed files with 331 additions and 303 deletions
|
|
@ -2,7 +2,7 @@
|
|||
use rmcp::{
|
||||
ServerHandler,
|
||||
handler::server::{router::tool::ToolRouter, wrapper::Parameters},
|
||||
model::{InitializeResult, ServerCapabilities},
|
||||
model::{ServerCapabilities, ServerConfig},
|
||||
schemars, tool, tool_router,
|
||||
};
|
||||
#[derive(Debug, serde::Deserialize, schemars::JsonSchema)]
|
||||
|
|
@ -52,8 +52,8 @@ impl Calculator {
|
|||
}
|
||||
|
||||
impl ServerHandler for Calculator {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
InitializeResult::new(ServerCapabilities::builder().enable_tools().build())
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
ServerConfig::new(ServerCapabilities::builder().enable_tools().build())
|
||||
.with_instructions("A simple calculator")
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -115,8 +115,8 @@ impl TestServer {
|
|||
|
||||
impl ServerHandler for TestServer {
|
||||
#[allow(deprecated)]
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
InitializeResult::new(ServerCapabilities::builder().enable_logging().build())
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
ServerConfig::new(ServerCapabilities::builder().enable_logging().build())
|
||||
}
|
||||
|
||||
#[allow(deprecated)]
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@ use std::{collections::BTreeSet, process::Stdio, time::Duration};
|
|||
use rmcp::{
|
||||
ErrorData as McpError, RoleServer, ServerHandler, ServiceExt,
|
||||
model::{
|
||||
CallToolRequestParams, CallToolResponse, CallToolResult, ContentBlock, InitializeResult,
|
||||
ServerCapabilities,
|
||||
CallToolRequestParams, CallToolResponse, CallToolResult, ContentBlock, ServerCapabilities,
|
||||
ServerConfig,
|
||||
},
|
||||
service::RequestContext,
|
||||
};
|
||||
|
|
@ -91,8 +91,8 @@ async fn cancelled_request_receives_no_response() -> anyhow::Result<()> {
|
|||
struct WaitForCancelServer;
|
||||
|
||||
impl ServerHandler for WaitForCancelServer {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
InitializeResult::new(ServerCapabilities::builder().enable_tools().build())
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
ServerConfig::new(ServerCapabilities::builder().enable_tools().build())
|
||||
}
|
||||
|
||||
async fn call_tool(
|
||||
|
|
|
|||
|
|
@ -719,7 +719,7 @@ async fn test_server_rejects_unsupported_protocol_version() {
|
|||
use http_body_util::Full;
|
||||
use rmcp::{
|
||||
handler::server::ServerHandler,
|
||||
model::{InitializeResult, ServerCapabilities},
|
||||
model::{ServerCapabilities, ServerConfig},
|
||||
transport::streamable_http_server::{
|
||||
StreamableHttpServerConfig, StreamableHttpService, session::local::LocalSessionManager,
|
||||
},
|
||||
|
|
@ -730,8 +730,8 @@ async fn test_server_rejects_unsupported_protocol_version() {
|
|||
struct TestHandler;
|
||||
|
||||
impl ServerHandler for TestHandler {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
InitializeResult::new(ServerCapabilities::builder().build())
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
ServerConfig::new(ServerCapabilities::builder().build())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -892,7 +892,7 @@ async fn test_server_validates_host_when_origin_validation_is_disabled_by_defaul
|
|||
use http_body_util::Full;
|
||||
use rmcp::{
|
||||
handler::server::ServerHandler,
|
||||
model::{InitializeResult, ServerCapabilities},
|
||||
model::{ServerCapabilities, ServerConfig},
|
||||
transport::streamable_http_server::{
|
||||
StreamableHttpServerConfig, StreamableHttpService, session::local::LocalSessionManager,
|
||||
},
|
||||
|
|
@ -903,8 +903,8 @@ async fn test_server_validates_host_when_origin_validation_is_disabled_by_defaul
|
|||
struct TestHandler;
|
||||
|
||||
impl ServerHandler for TestHandler {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
InitializeResult::new(ServerCapabilities::builder().build())
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
ServerConfig::new(ServerCapabilities::builder().build())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -975,7 +975,7 @@ async fn test_server_validates_host_header_port_for_dns_rebinding_protection() {
|
|||
use http_body_util::Full;
|
||||
use rmcp::{
|
||||
handler::server::ServerHandler,
|
||||
model::{InitializeResult, ServerCapabilities},
|
||||
model::{ServerCapabilities, ServerConfig},
|
||||
transport::streamable_http_server::{
|
||||
StreamableHttpServerConfig, StreamableHttpService, session::local::LocalSessionManager,
|
||||
},
|
||||
|
|
@ -986,8 +986,8 @@ async fn test_server_validates_host_header_port_for_dns_rebinding_protection() {
|
|||
struct TestHandler;
|
||||
|
||||
impl ServerHandler for TestHandler {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
InitializeResult::new(ServerCapabilities::builder().build())
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
ServerConfig::new(ServerCapabilities::builder().build())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1046,7 +1046,7 @@ async fn test_server_falls_back_to_uri_authority_when_host_header_missing() {
|
|||
use http_body_util::Full;
|
||||
use rmcp::{
|
||||
handler::server::ServerHandler,
|
||||
model::{InitializeResult, ServerCapabilities},
|
||||
model::{ServerCapabilities, ServerConfig},
|
||||
transport::streamable_http_server::{
|
||||
StreamableHttpServerConfig, StreamableHttpService, session::local::LocalSessionManager,
|
||||
},
|
||||
|
|
@ -1057,8 +1057,8 @@ async fn test_server_falls_back_to_uri_authority_when_host_header_missing() {
|
|||
struct TestHandler;
|
||||
|
||||
impl ServerHandler for TestHandler {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
InitializeResult::new(ServerCapabilities::builder().build())
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
ServerConfig::new(ServerCapabilities::builder().build())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -1132,7 +1132,7 @@ mod origin_validation {
|
|||
use http_body_util::Full;
|
||||
use rmcp::{
|
||||
handler::server::ServerHandler,
|
||||
model::{InitializeResult, ServerCapabilities},
|
||||
model::{ServerCapabilities, ServerConfig},
|
||||
transport::streamable_http_server::{
|
||||
StreamableHttpServerConfig, StreamableHttpService, session::local::LocalSessionManager,
|
||||
},
|
||||
|
|
@ -1143,8 +1143,8 @@ mod origin_validation {
|
|||
struct TestHandler;
|
||||
|
||||
impl ServerHandler for TestHandler {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
InitializeResult::new(ServerCapabilities::builder().build())
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
ServerConfig::new(ServerCapabilities::builder().build())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,7 +16,7 @@ use axum::{
|
|||
};
|
||||
use rmcp::{
|
||||
ClientLifecycleMode, ClientServiceExt, ServerHandler,
|
||||
model::{DiscoverResult, ErrorCode, ErrorData, InitializeRequestParams, ProtocolVersion},
|
||||
model::{ClientConfig, DiscoverResult, ErrorCode, ErrorData, ProtocolVersion},
|
||||
service::{MaybeSendFuture, RequestContext, RoleServer},
|
||||
transport::{
|
||||
StreamableHttpClientTransport,
|
||||
|
|
@ -132,7 +132,7 @@ async fn discover_http_client_bootstraps_headers_without_initialize() {
|
|||
let transport = StreamableHttpClientTransport::from_config(
|
||||
StreamableHttpClientTransportConfig::with_uri(format!("http://{address}/mcp")),
|
||||
);
|
||||
let client = InitializeRequestParams::default()
|
||||
let client = ClientConfig::default()
|
||||
.serve_with_lifecycle(
|
||||
transport,
|
||||
ClientLifecycleMode::Discover {
|
||||
|
|
@ -176,7 +176,7 @@ async fn auto_http_client_falls_back_to_stateful_legacy_startup() {
|
|||
let transport = StreamableHttpClientTransport::from_config(
|
||||
StreamableHttpClientTransportConfig::with_uri(format!("http://{address}/mcp")),
|
||||
);
|
||||
let client = InitializeRequestParams::default()
|
||||
let client = ClientConfig::default()
|
||||
.serve_with_lifecycle(
|
||||
transport,
|
||||
ClientLifecycleMode::Auto {
|
||||
|
|
@ -217,7 +217,7 @@ async fn auto_http_client_falls_back_after_plain_text_4xx_rejection() {
|
|||
let transport = StreamableHttpClientTransport::from_config(
|
||||
StreamableHttpClientTransportConfig::with_uri(format!("http://{address}/mcp")),
|
||||
);
|
||||
let client = InitializeRequestParams::default()
|
||||
let client = ClientConfig::default()
|
||||
.serve_with_lifecycle(
|
||||
transport,
|
||||
ClientLifecycleMode::Auto {
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ use rmcp::{
|
|||
ClientHandler, RoleClient, RoleServer, ServerHandler,
|
||||
handler::server::router::{prompt::PromptRouter, tool::ToolRouter},
|
||||
model::{
|
||||
CacheScope, InitializeRequestParams, InitializeResult, ListPromptsResult, ListToolsResult,
|
||||
CacheScope, ClientConfig, InitializeResult, ListPromptsResult, ListToolsResult,
|
||||
ProtocolVersion,
|
||||
},
|
||||
prompt_handler,
|
||||
|
|
@ -38,8 +38,8 @@ struct VersionedClient {
|
|||
}
|
||||
|
||||
impl ClientHandler for VersionedClient {
|
||||
fn get_info(&self) -> InitializeRequestParams {
|
||||
let mut info = InitializeRequestParams::default();
|
||||
fn get_info(&self) -> ClientConfig {
|
||||
let mut info = ClientConfig::default();
|
||||
info.protocol_version = self.protocol_version.clone();
|
||||
info
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ use std::{
|
|||
use rmcp::{
|
||||
ServerHandler, ServiceExt,
|
||||
handler::server::{router::tool::ToolRouter, wrapper::Parameters},
|
||||
model::{CallToolRequestParams, InitializeRequestParams, InitializeResult, ServerCapabilities},
|
||||
model::{CallToolRequestParams, ClientConfig, ServerCapabilities, ServerConfig},
|
||||
service::QuitReason,
|
||||
tool, tool_handler, tool_router,
|
||||
};
|
||||
|
|
@ -55,8 +55,8 @@ impl SlowToolServer {
|
|||
|
||||
#[tool_handler]
|
||||
impl ServerHandler for SlowToolServer {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
InitializeResult::new(ServerCapabilities::builder().enable_tools().build())
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
ServerConfig::new(ServerCapabilities::builder().enable_tools().build())
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -64,8 +64,8 @@ impl ServerHandler for SlowToolServer {
|
|||
struct DummyClientHandler;
|
||||
|
||||
impl rmcp::ClientHandler for DummyClientHandler {
|
||||
fn get_info(&self) -> InitializeRequestParams {
|
||||
InitializeRequestParams::default()
|
||||
fn get_info(&self) -> ClientConfig {
|
||||
ClientConfig::default()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -114,8 +114,8 @@ impl MacroMrtrServer {
|
|||
|
||||
#[tool_handler]
|
||||
impl ServerHandler for MacroMrtrServer {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
let mut info = InitializeResult::new(ServerCapabilities::builder().enable_tools().build());
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
let mut info = ServerConfig::new(ServerCapabilities::builder().enable_tools().build());
|
||||
info.protocol_version = ProtocolVersion::V_2026_07_28;
|
||||
info
|
||||
}
|
||||
|
|
@ -221,8 +221,8 @@ impl MrtrServer {
|
|||
}
|
||||
|
||||
impl ServerHandler for MrtrServer {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
let mut info = InitializeResult::new(
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
let mut info = ServerConfig::new(
|
||||
ServerCapabilities::builder()
|
||||
.enable_tools()
|
||||
.enable_prompts()
|
||||
|
|
@ -609,9 +609,8 @@ async fn request_state_codec_seals_and_verifies_through_the_loop() -> anyhow::Re
|
|||
struct SealingServer;
|
||||
|
||||
impl ServerHandler for SealingServer {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
let mut info =
|
||||
InitializeResult::new(ServerCapabilities::builder().enable_tools().build());
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
let mut info = ServerConfig::new(ServerCapabilities::builder().enable_tools().build());
|
||||
info.protocol_version = ProtocolVersion::V_2026_07_28;
|
||||
info
|
||||
}
|
||||
|
|
|
|||
|
|
@ -5,8 +5,8 @@ use std::sync::Arc;
|
|||
use rmcp::{
|
||||
ClientHandler, ServerHandler, ServiceExt,
|
||||
model::{
|
||||
ClientNotification, CustomNotification, InitializeResult, ResourceUpdatedNotificationParam,
|
||||
ServerCapabilities, ServerNotification, SubscribeRequestParams,
|
||||
ClientNotification, CustomNotification, ResourceUpdatedNotificationParam,
|
||||
ServerCapabilities, ServerConfig, ServerNotification, SubscribeRequestParams,
|
||||
},
|
||||
};
|
||||
use serde_json::json;
|
||||
|
|
@ -16,8 +16,8 @@ use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt};
|
|||
struct Server {}
|
||||
|
||||
impl ServerHandler for Server {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
InitializeResult::new(
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
ServerConfig::new(
|
||||
ServerCapabilities::builder()
|
||||
.enable_resources()
|
||||
.enable_resources_subscribe()
|
||||
|
|
|
|||
|
|
@ -7,8 +7,7 @@ use rmcp::{
|
|||
ClientHandler, ServerHandler, ServiceExt,
|
||||
handler::server::{router::prompt::PromptRouter, wrapper::Parameters},
|
||||
model::{
|
||||
ContentBlock, GetPromptRequestParams, GetPromptResult, InitializeRequestParams,
|
||||
PromptMessage, Role,
|
||||
ClientConfig, ContentBlock, GetPromptRequestParams, GetPromptResult, PromptMessage, Role,
|
||||
},
|
||||
prompt, prompt_handler, prompt_router,
|
||||
};
|
||||
|
|
@ -298,8 +297,8 @@ fn test_optional_field_schema_generation_via_macro() {
|
|||
struct DummyClientHandler {}
|
||||
|
||||
impl ClientHandler for DummyClientHandler {
|
||||
fn get_info(&self) -> InitializeRequestParams {
|
||||
InitializeRequestParams::default()
|
||||
fn get_info(&self) -> ClientConfig {
|
||||
ClientConfig::default()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -16,8 +16,8 @@ use std::{
|
|||
use rmcp::{
|
||||
ClientHandler, ErrorData, RoleServer, ServerHandler, ServiceExt,
|
||||
model::{
|
||||
ClientCapabilities, ErrorCode, Implementation, InitializeRequestParams, InitializeResult,
|
||||
ProtocolVersion,
|
||||
ClientCapabilities, ClientConfig, ErrorCode, Implementation, InitializeRequestParams,
|
||||
InitializeResult, ProtocolVersion, ServerConfig,
|
||||
},
|
||||
service::{ClientInitializeError, RequestContext},
|
||||
};
|
||||
|
|
@ -26,8 +26,8 @@ use rmcp::{
|
|||
struct EchoServer;
|
||||
|
||||
impl ServerHandler for EchoServer {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
InitializeResult::default()
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
ServerConfig::default()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -45,8 +45,8 @@ const HANDSHAKE_VERSIONS: &[ProtocolVersion] = &[
|
|||
struct NarrowedServer;
|
||||
|
||||
impl ServerHandler for NarrowedServer {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
InitializeResult::default()
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
ServerConfig::default()
|
||||
}
|
||||
|
||||
fn supported_protocol_versions(&self) -> Cow<'static, [ProtocolVersion]> {
|
||||
|
|
@ -61,8 +61,8 @@ struct ModernOnlyServer;
|
|||
const MODERN_ONLY_VERSIONS: &[ProtocolVersion] = &[ProtocolVersion::V_2026_07_28];
|
||||
|
||||
impl ServerHandler for ModernOnlyServer {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
let mut info = InitializeResult::default();
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
let mut info = ServerConfig::default();
|
||||
info.protocol_version = ProtocolVersion::V_2026_07_28;
|
||||
info
|
||||
}
|
||||
|
|
@ -79,8 +79,8 @@ impl ServerHandler for ModernOnlyServer {
|
|||
struct NarrowedOverridingServer;
|
||||
|
||||
impl ServerHandler for NarrowedOverridingServer {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
InitializeResult::default()
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
ServerConfig::default()
|
||||
}
|
||||
|
||||
fn supported_protocol_versions(&self) -> Cow<'static, [ProtocolVersion]> {
|
||||
|
|
@ -102,8 +102,8 @@ struct VersionedClient {
|
|||
}
|
||||
|
||||
impl ClientHandler for VersionedClient {
|
||||
fn get_info(&self) -> InitializeRequestParams {
|
||||
let mut info = InitializeRequestParams::default();
|
||||
fn get_info(&self) -> ClientConfig {
|
||||
let mut info = ClientConfig::default();
|
||||
info.protocol_version = self.protocol_version.clone();
|
||||
info
|
||||
}
|
||||
|
|
@ -247,8 +247,8 @@ struct DelegatingServer {
|
|||
}
|
||||
|
||||
impl ServerHandler for DelegatingServer {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
InitializeResult::default()
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
ServerConfig::default()
|
||||
}
|
||||
|
||||
fn supported_protocol_versions(&self) -> Cow<'static, [ProtocolVersion]> {
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
use rmcp::{
|
||||
ClientHandler, RoleClient, RoleServer, ServerHandler, ServiceError,
|
||||
model::{
|
||||
ErrorCode, ErrorData, InitializeRequestParams, InitializeResult, ProtocolVersion,
|
||||
ClientConfig, ErrorCode, ErrorData, InitializeResult, ProtocolVersion,
|
||||
ReadResourceRequestParams, ReadResourceResponse,
|
||||
},
|
||||
service::{RequestContext, serve_directly},
|
||||
|
|
@ -33,8 +33,8 @@ struct VersionedClient {
|
|||
}
|
||||
|
||||
impl ClientHandler for VersionedClient {
|
||||
fn get_info(&self) -> InitializeRequestParams {
|
||||
let mut info = InitializeRequestParams::default();
|
||||
fn get_info(&self) -> ClientConfig {
|
||||
let mut info = ClientConfig::default();
|
||||
info.protocol_version = self.protocol_version.clone();
|
||||
info
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,8 +8,8 @@
|
|||
use rmcp::{
|
||||
ClientHandler, RoleClient, RoleServer, ServerHandler,
|
||||
model::{
|
||||
CallToolRequestParams, CallToolResponse, CallToolResult, ContentBlock, ErrorData,
|
||||
InitializeRequestParams, InitializeResult, ProtocolVersion, ResultType,
|
||||
CallToolRequestParams, CallToolResponse, CallToolResult, ClientConfig, ContentBlock,
|
||||
ErrorData, InitializeResult, ProtocolVersion, ResultType,
|
||||
},
|
||||
service::{RequestContext, serve_directly},
|
||||
};
|
||||
|
|
@ -33,8 +33,8 @@ struct VersionedClient {
|
|||
}
|
||||
|
||||
impl ClientHandler for VersionedClient {
|
||||
fn get_info(&self) -> InitializeRequestParams {
|
||||
let mut info = InitializeRequestParams::default();
|
||||
fn get_info(&self) -> ClientConfig {
|
||||
let mut info = ClientConfig::default();
|
||||
info.protocol_version = self.protocol_version.clone();
|
||||
info
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,10 +9,9 @@ use std::sync::{Arc, Mutex};
|
|||
use rmcp::{
|
||||
ClientHandler, RoleClient, RoleServer, ServerHandler, ServiceError, ServiceExt,
|
||||
model::{
|
||||
CallToolRequestParams, CallToolResponse, CallToolResult, ContentBlock,
|
||||
CreateMessageRequest, CreateMessageRequestParams, CreateMessageResult,
|
||||
InitializeRequestParams, InitializeResult, ProtocolVersion, SamplingMessage,
|
||||
ServerCapabilities, ServerRequest,
|
||||
CallToolRequestParams, CallToolResponse, CallToolResult, ClientConfig, ContentBlock,
|
||||
CreateMessageRequest, CreateMessageRequestParams, CreateMessageResult, ProtocolVersion,
|
||||
SamplingMessage, ServerCapabilities, ServerConfig, ServerRequest,
|
||||
},
|
||||
service::{RequestContext, RunningService, serve_directly},
|
||||
};
|
||||
|
|
@ -30,8 +29,8 @@ struct SamplingServer {
|
|||
}
|
||||
|
||||
impl ServerHandler for SamplingServer {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
InitializeResult::new(ServerCapabilities::builder().enable_tools().build())
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
ServerConfig::new(ServerCapabilities::builder().enable_tools().build())
|
||||
}
|
||||
|
||||
async fn call_tool(
|
||||
|
|
@ -94,8 +93,8 @@ impl ClientHandler for SamplingClient {
|
|||
.with_stop_reason(CreateMessageResult::STOP_REASON_END_TURN))
|
||||
}
|
||||
|
||||
fn get_info(&self) -> InitializeRequestParams {
|
||||
let mut info = InitializeRequestParams::default();
|
||||
fn get_info(&self) -> ClientConfig {
|
||||
let mut info = ClientConfig::default();
|
||||
info.protocol_version = ProtocolVersion::V_2026_07_28;
|
||||
info
|
||||
}
|
||||
|
|
|
|||
|
|
@ -26,9 +26,8 @@ use http::{HeaderName, HeaderValue};
|
|||
use rmcp::{
|
||||
ClientHandler,
|
||||
model::{
|
||||
ClientJsonRpcMessage, CreateMessageRequestParams, CreateMessageResult,
|
||||
InitializeRequestParams, InitializeResult, ProtocolVersion, SamplingMessage,
|
||||
ServerCapabilities, ServerJsonRpcMessage,
|
||||
ClientConfig, ClientJsonRpcMessage, CreateMessageRequestParams, CreateMessageResult,
|
||||
ProtocolVersion, SamplingMessage, ServerCapabilities, ServerConfig, ServerJsonRpcMessage,
|
||||
},
|
||||
service::{ClientLifecycleMode, RequestContext, RoleClient, serve_client_with_lifecycle},
|
||||
transport::streamable_http_client::{
|
||||
|
|
@ -81,7 +80,7 @@ impl StreamableHttpClient for ScriptedServer {
|
|||
// Receiver drop is normal at test teardown; never panic in the transport task.
|
||||
let _ = self.posted.send(value.clone());
|
||||
if value["method"] == "initialize" {
|
||||
let mut info = InitializeResult::new(ServerCapabilities::default());
|
||||
let mut info = ServerConfig::new(ServerCapabilities::default());
|
||||
info.protocol_version = ProtocolVersion::V_2026_07_28;
|
||||
let response = ServerJsonRpcMessage::response(
|
||||
rmcp::model::ServerResult::InitializeResult(info),
|
||||
|
|
@ -153,8 +152,8 @@ impl ClientHandler for SamplingClient {
|
|||
))
|
||||
}
|
||||
|
||||
fn get_info(&self) -> InitializeRequestParams {
|
||||
InitializeRequestParams::default()
|
||||
fn get_info(&self) -> ClientConfig {
|
||||
ClientConfig::default()
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -9,7 +9,7 @@ use rmcp::{
|
|||
ErrorData as McpError, RoleServer, ServerHandler,
|
||||
model::{
|
||||
CallToolRequestParams, CallToolResponse, CallToolResult, ContentBlock, ElicitRequestParams,
|
||||
ElicitationSchema, InitializeResult, ServerCapabilities,
|
||||
ElicitationSchema, ServerCapabilities, ServerConfig,
|
||||
},
|
||||
service::RequestContext,
|
||||
transport::streamable_http_server::{
|
||||
|
|
@ -23,8 +23,8 @@ use tokio_util::sync::CancellationToken;
|
|||
struct ElicitingServer;
|
||||
|
||||
impl ServerHandler for ElicitingServer {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
InitializeResult::new(ServerCapabilities::builder().enable_tools().build())
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
ServerConfig::new(ServerCapabilities::builder().enable_tools().build())
|
||||
}
|
||||
|
||||
async fn call_tool(
|
||||
|
|
|
|||
|
|
@ -3,8 +3,8 @@
|
|||
use rmcp::{
|
||||
ClientHandler, ServerHandler, ServiceExt,
|
||||
model::{
|
||||
ClientCapabilities, Implementation, InitializeResult, ProtocolVersion, RequestMetaObject,
|
||||
ServerCapabilities,
|
||||
ClientCapabilities, Implementation, ProtocolVersion, RequestMetaObject, ServerCapabilities,
|
||||
ServerConfig,
|
||||
},
|
||||
select_protocol_version,
|
||||
};
|
||||
|
|
@ -13,8 +13,8 @@ use rmcp::{
|
|||
struct DiscoveryServer;
|
||||
|
||||
impl ServerHandler for DiscoveryServer {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
InitializeResult::new(ServerCapabilities::builder().enable_tools().build())
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
ServerConfig::new(ServerCapabilities::builder().enable_tools().build())
|
||||
.with_server_info(Implementation::new("discovery-server", "1.0.0"))
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ use std::borrow::Cow;
|
|||
|
||||
use rmcp::{
|
||||
ServerHandler,
|
||||
model::{Implementation, InitializeResult, ProtocolVersion, ServerCapabilities},
|
||||
model::{Implementation, ProtocolVersion, ServerCapabilities, ServerConfig},
|
||||
transport::streamable_http_server::{
|
||||
StreamableHttpServerConfig, StreamableHttpService, session::local::LocalSessionManager,
|
||||
},
|
||||
|
|
@ -20,8 +20,8 @@ use tokio_util::sync::CancellationToken;
|
|||
struct DiscoveryServer;
|
||||
|
||||
impl ServerHandler for DiscoveryServer {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
InitializeResult::new(ServerCapabilities::builder().enable_tools().build())
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
ServerConfig::new(ServerCapabilities::builder().enable_tools().build())
|
||||
.with_server_info(Implementation::new("discovery-server", "1.0.0"))
|
||||
.with_instructions("Use the tools carefully")
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ use common::handlers::TestServer;
|
|||
use rmcp::{
|
||||
ServerHandler, ServiceExt,
|
||||
model::{
|
||||
ClientJsonRpcMessage, InitializeResult, ProtocolVersion, ServerCapabilities,
|
||||
ClientJsonRpcMessage, ProtocolVersion, ServerCapabilities, ServerConfig,
|
||||
ServerJsonRpcMessage, ServerResult,
|
||||
},
|
||||
transport::{IntoTransport, Transport},
|
||||
|
|
@ -281,8 +281,8 @@ async fn server_falls_back_when_client_protocol_version_unknown() {
|
|||
struct PinnedServer;
|
||||
|
||||
impl ServerHandler for PinnedServer {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
InitializeResult::new(ServerCapabilities::builder().build())
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
ServerConfig::new(ServerCapabilities::builder().build())
|
||||
.with_protocol_version(ProtocolVersion::V_2025_06_18)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -18,7 +18,7 @@ use std::time::Duration;
|
|||
use futures::StreamExt;
|
||||
use rmcp::{
|
||||
RoleServer, ServerHandler,
|
||||
model::{Implementation, InitializeResult, ServerCapabilities, ToolsCapability},
|
||||
model::{Implementation, ServerCapabilities, ServerConfig, ToolsCapability},
|
||||
service::NotificationContext,
|
||||
transport::streamable_http_server::{
|
||||
StreamableHttpServerConfig, StreamableHttpService, session::local::LocalSessionManager,
|
||||
|
|
@ -45,8 +45,8 @@ impl TestServer {
|
|||
}
|
||||
|
||||
impl ServerHandler for TestServer {
|
||||
fn get_info(&self) -> InitializeResult {
|
||||
InitializeResult::new(
|
||||
fn get_info(&self) -> ServerConfig {
|
||||
ServerConfig::new(
|
||||
ServerCapabilities::builder()
|
||||
.enable_tools_with({
|
||||
let mut tools = ToolsCapability::default();
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue