pub struct McpServer { /* private fields */ }Expand description
The MCP server for Research Master
This server provides tools for searching and downloading academic papers from multiple research sources over various transports.
Implementations§
Source§impl McpServer
impl McpServer
Sourcepub fn new(sources: Arc<SourceRegistry>) -> Result<Self, Error>
pub fn new(sources: Arc<SourceRegistry>) -> Result<Self, Error>
Create a new MCP server with the given source registry
Sourcepub async fn run(&self) -> Result<(), Error>
pub async fn run(&self) -> Result<(), Error>
Run the server in stdio mode (for Claude Desktop and other MCP clients)
Sourcepub async fn run_http(
&self,
addr: &str,
) -> Result<(SocketAddr, JoinHandle<()>), Error>
pub async fn run_http( &self, addr: &str, ) -> Result<(SocketAddr, JoinHandle<()>), Error>
Run the server in HTTP/SSE mode
This starts an HTTP server that uses Server-Sent Events (SSE) for real-time communication with MCP clients.
Sourcepub async fn run_http_with_config(
&self,
addr: &str,
config: StreamableHttpServerConfig,
) -> Result<(SocketAddr, JoinHandle<()>), Error>
pub async fn run_http_with_config( &self, addr: &str, config: StreamableHttpServerConfig, ) -> Result<(SocketAddr, JoinHandle<()>), Error>
Run the server in HTTP/SSE mode with custom configuration
Trait Implementations§
Auto Trait Implementations§
impl Freeze for McpServer
impl !RefUnwindSafe for McpServer
impl Send for McpServer
impl Sync for McpServer
impl Unpin for McpServer
impl !UnwindSafe for McpServer
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more