feat: better http server support (#199)

* feat: better http server support

1. allow user get extensions in tool call.
2. allow user serve sse service without initialization.

* fix: fix document test
This commit is contained in:
4t145 2025-05-19 18:49:18 +08:00 • committed by GitHub
commit 076dc2c2cd
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1,7 +1,7 @@
use std::sync::Arc;
use rmcp::{
ClientHandler, Peer, RoleClient, ServerHandler, ServiceExt,
ClientHandler, ServerHandler, ServiceExt,
model::{
ResourceUpdatedNotificationParam, ServerCapabilities, ServerInfo, SubscribeRequestParam,
},
@ -49,7 +49,6 @@ impl ServerHandler for Server {
pub struct Client {
receive_signal: Arc<Notify>,
peer: Option<Peer<RoleClient>>,
}
impl ClientHandler for Client {
@ -58,14 +57,6 @@ impl ClientHandler for Client {
tracing::info!("Resource updated: {}", uri);
self.receive_signal.notify_one();
}
fn set_peer(&mut self, peer: Peer<RoleClient>) {
self.peer.replace(peer);
}
fn get_peer(&self) -> Option<Peer<RoleClient>> {
self.peer.clone()
}
}
#[tokio::test]
@ -85,7 +76,6 @@ async fn test_server_notification() -> anyhow::Result<()> {
});
let receive_signal = Arc::new(Notify::new());
let client = Client {
peer: Default::default(),
receive_signal: receive_signal.clone(),
}
.serve(client_transport)