pub struct ResearchServer { /* private fields */ }Expand description
The MCP server. Holds an immutable Arc<ResearchContext>; tool methods
borrow it.
Implementations§
Source§impl ResearchServer
impl ResearchServer
pub fn new(ctx: ResearchContext) -> Self
Sourcepub async fn serve_stdio(self) -> Result<(), String>
pub async fn serve_stdio(self) -> Result<(), String>
Run the stdio MCP server until the client disconnects.
Returns a String error (Send + Sync) so the binary entry point can
surface it via anyhow.
Source§impl ResearchServer
impl ResearchServer
Sourcepub fn init_tool_attr() -> Tool
pub fn init_tool_attr() -> Tool
Generated tool metadata function for init
pub fn init(&self) -> CallToolResult
Sourcepub fn ingest_tool_attr() -> Tool
pub fn ingest_tool_attr() -> Tool
Generated tool metadata function for ingest
pub fn ingest( &self, Parameters: Parameters<IngestParams>, ) -> Pin<Box<dyn Future<Output = CallToolResult> + Send + '_>>
Sourcepub fn index_rebuild_tool_attr() -> Tool
pub fn index_rebuild_tool_attr() -> Tool
Generated tool metadata function for index_rebuild
pub fn index_rebuild(&self) -> CallToolResult
Sourcepub fn import_papers_tool_attr() -> Tool
pub fn import_papers_tool_attr() -> Tool
Generated tool metadata function for import_papers
pub fn import_papers( &self, Parameters: Parameters<ImportPapersParams>, ) -> CallToolResult
Sourcepub fn paper_body_tool_attr() -> Tool
pub fn paper_body_tool_attr() -> Tool
Generated tool metadata function for paper_body
pub fn paper_body( &self, Parameters: Parameters<PaperBodyParams>, ) -> CallToolResult
Sourcepub fn paper_references_tool_attr() -> Tool
pub fn paper_references_tool_attr() -> Tool
Generated tool metadata function for paper_references
pub fn paper_references( &self, Parameters: Parameters<PaperReferencesParams>, ) -> Pin<Box<dyn Future<Output = CallToolResult> + Send + '_>>
Sourcepub fn query_papers_tool_attr() -> Tool
pub fn query_papers_tool_attr() -> Tool
Generated tool metadata function for query_papers
pub fn query_papers( &self, Parameters: Parameters<QueryPapersParams>, ) -> CallToolResult
Sourcepub fn papers_missing_keywords_tool_attr() -> Tool
pub fn papers_missing_keywords_tool_attr() -> Tool
Generated tool metadata function for papers_missing_keywords
pub fn papers_missing_keywords( &self, Parameters: Parameters<MissingKeywordsParams>, ) -> CallToolResult
Sourcepub fn enrich_paper_tool_attr() -> Tool
pub fn enrich_paper_tool_attr() -> Tool
Generated tool metadata function for enrich_paper
pub fn enrich_paper( &self, Parameters: Parameters<EnrichPaperParams>, ) -> CallToolResult
Sourcepub fn topic_brief_tool_attr() -> Tool
pub fn topic_brief_tool_attr() -> Tool
Generated tool metadata function for topic_brief
pub fn topic_brief( &self, Parameters: Parameters<TopicBriefParams>, ) -> CallToolResult
Sourcepub fn gaps_record_tool_attr() -> Tool
pub fn gaps_record_tool_attr() -> Tool
Generated tool metadata function for gaps_record
pub fn gaps_record( &self, Parameters: Parameters<GapsRecordParams>, ) -> CallToolResult
Sourcepub fn list_gaps_tool_attr() -> Tool
pub fn list_gaps_tool_attr() -> Tool
Generated tool metadata function for list_gaps
pub fn list_gaps( &self, Parameters: Parameters<ListGapsParams>, ) -> CallToolResult
Sourcepub fn report_material_tool_attr() -> Tool
pub fn report_material_tool_attr() -> Tool
Generated tool metadata function for report_material
pub fn report_material( &self, Parameters: Parameters<ReportTopicParams>, ) -> CallToolResult
Sourcepub fn report_save_tool_attr() -> Tool
pub fn report_save_tool_attr() -> Tool
Generated tool metadata function for report_save
pub fn report_save( &self, Parameters: Parameters<ReportSaveParams>, ) -> CallToolResult
Sourcepub fn topics_list_tool_attr() -> Tool
pub fn topics_list_tool_attr() -> Tool
Generated tool metadata function for topics_list
pub fn topics_list(&self) -> CallToolResult
Sourcepub fn topic_add_tool_attr() -> Tool
pub fn topic_add_tool_attr() -> Tool
Generated tool metadata function for topic_add
pub fn topic_add( &self, Parameters: Parameters<TopicAddParams>, ) -> CallToolResult
Sourcepub fn state_tool_attr() -> Tool
pub fn state_tool_attr() -> Tool
Generated tool metadata function for state
pub fn state(&self) -> CallToolResult
Sourcepub fn update_read_tool_attr() -> Tool
pub fn update_read_tool_attr() -> Tool
Generated tool metadata function for update_read
pub fn update_read( &self, Parameters: Parameters<UpdateReadParams>, ) -> CallToolResult
Trait Implementations§
Source§impl Clone for ResearchServer
impl Clone for ResearchServer
Source§fn clone(&self) -> ResearchServer
fn clone(&self) -> ResearchServer
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl ServerHandler for ResearchServer
impl ServerHandler for ResearchServer
fn get_info(&self) -> ServerInfo
Source§async fn call_tool(
&self,
request: CallToolRequestParams,
context: RequestContext<RoleServer>,
) -> Result<CallToolResponse, ErrorData>
async fn call_tool( &self, request: CallToolRequestParams, context: RequestContext<RoleServer>, ) -> Result<CallToolResponse, ErrorData>
tools/call request from a client. Read moreasync fn list_tools( &self, _request: Option<PaginatedRequestParams>, context: RequestContext<RoleServer>, ) -> Result<ListToolsResult, ErrorData>
fn ping( &self, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<(), ErrorData>> + MaybeSendFuture
fn initialize( &self, request: InitializeRequestParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<InitializeResult, ErrorData>> + MaybeSendFuture
Source§fn supported_protocol_versions(&self) -> Cow<'static, [ProtocolVersion]>
fn supported_protocol_versions(&self) -> Cow<'static, [ProtocolVersion]>
Source§fn discover(
&self,
context: RequestContext<RoleServer>,
) -> impl Future<Output = Result<DiscoverResult, ErrorData>> + MaybeSendFuture
fn discover( &self, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<DiscoverResult, ErrorData>> + MaybeSendFuture
fn complete( &self, request: CompleteRequestParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<CompleteResult, ErrorData>> + MaybeSendFuture
fn set_level( &self, request: SetLevelRequestParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<(), ErrorData>> + MaybeSendFuture
fn get_prompt( &self, request: GetPromptRequestParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<GetPromptResponse, ErrorData>> + MaybeSendFuture
fn list_prompts( &self, request: Option<PaginatedRequestParams>, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<ListPromptsResult, ErrorData>> + MaybeSendFuture
fn list_resources( &self, request: Option<PaginatedRequestParams>, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<ListResourcesResult, ErrorData>> + MaybeSendFuture
fn list_resource_templates( &self, request: Option<PaginatedRequestParams>, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<ListResourceTemplatesResult, ErrorData>> + MaybeSendFuture
fn read_resource( &self, request: ReadResourceRequestParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<ReadResourceResponse, ErrorData>> + MaybeSendFuture
Source§fn accepted_subscription_filter(
&self,
requested: &SubscriptionFilter,
) -> Option<SubscriptionFilter>
fn accepted_subscription_filter( &self, requested: &SubscriptionFilter, ) -> Option<SubscriptionFilter>
Source§fn listen(
&self,
context: SubscriptionContext,
) -> impl Future<Output = Result<(), ErrorData>> + MaybeSendFuture
fn listen( &self, context: SubscriptionContext, ) -> impl Future<Output = Result<(), ErrorData>> + MaybeSendFuture
Source§fn subscribe(
&self,
request: SubscribeRequestParams,
context: RequestContext<RoleServer>,
) -> impl Future<Output = Result<(), ErrorData>> + MaybeSendFuture
fn subscribe( &self, request: SubscribeRequestParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<(), ErrorData>> + MaybeSendFuture
resources/subscribe is legacy-only; implement accepted_subscription_filter and listen for protocol version 2026-07-28
Source§fn unsubscribe(
&self,
request: UnsubscribeRequestParams,
context: RequestContext<RoleServer>,
) -> impl Future<Output = Result<(), ErrorData>> + MaybeSendFuture
fn unsubscribe( &self, request: UnsubscribeRequestParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<(), ErrorData>> + MaybeSendFuture
resources/unsubscribe is legacy-only; subscriptions/listen is cancelled through its request lifecycle
fn on_custom_request( &self, request: CustomRequest, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<CustomResult, ErrorData>> + MaybeSendFuture
fn on_cancelled( &self, notification: CancelledNotificationParam, context: NotificationContext<RoleServer>, ) -> impl Future<Output = ()> + MaybeSendFuture
fn on_progress( &self, notification: ProgressNotificationParam, context: NotificationContext<RoleServer>, ) -> impl Future<Output = ()> + MaybeSendFuture
fn on_initialized( &self, context: NotificationContext<RoleServer>, ) -> impl Future<Output = ()> + MaybeSendFuture
fn on_roots_list_changed( &self, context: NotificationContext<RoleServer>, ) -> impl Future<Output = ()> + MaybeSendFuture
fn on_custom_notification( &self, notification: CustomNotification, context: NotificationContext<RoleServer>, ) -> impl Future<Output = ()> + MaybeSendFuture
Source§fn get_task(
&self,
request: GetTaskParams,
context: RequestContext<RoleServer>,
) -> impl Future<Output = Result<GetTaskResult, ErrorData>> + MaybeSendFuture
fn get_task( &self, request: GetTaskParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<GetTaskResult, ErrorData>> + MaybeSendFuture
tasks/get: return the current DetailedTask state.Source§fn update_task(
&self,
request: UpdateTaskParams,
context: RequestContext<RoleServer>,
) -> impl Future<Output = Result<(), ErrorData>> + MaybeSendFuture
fn update_task( &self, request: UpdateTaskParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<(), ErrorData>> + MaybeSendFuture
tasks/update: accept responses to outstanding in-task
input requests. Returns an empty acknowledgement on success.Source§fn cancel_task(
&self,
request: CancelTaskParams,
context: RequestContext<RoleServer>,
) -> impl Future<Output = Result<(), ErrorData>> + MaybeSendFuture
fn cancel_task( &self, request: CancelTaskParams, context: RequestContext<RoleServer>, ) -> impl Future<Output = Result<(), ErrorData>> + MaybeSendFuture
tasks/cancel: cooperative cancellation. Returns an empty
acknowledgement; the task’s observable status may lag.Auto Trait Implementations§
impl Freeze for ResearchServer
impl RefUnwindSafe for ResearchServer
impl Send for ResearchServer
impl Sync for ResearchServer
impl Unpin for ResearchServer
impl UnsafeUnpin for ResearchServer
impl UnwindSafe for ResearchServer
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<R, S> DynService<R> for Swhere
R: ServiceRole,
S: Service<R>,
impl<R, S> DynService<R> for Swhere
R: ServiceRole,
S: Service<R>,
fn handle_request( &self, request: <R as ServiceRole>::PeerReq, context: RequestContext<R>, ) -> Pin<Box<dyn Future<Output = Result<<R as ServiceRole>::Resp, ErrorData>> + Send + '_>>
fn handle_notification( &self, notification: <R as ServiceRole>::PeerNot, context: NotificationContext<R>, ) -> Pin<Box<dyn Future<Output = Result<(), ErrorData>> + Send + '_>>
fn get_info(&self) -> <R as ServiceRole>::Info
Source§fn supported_protocol_versions(&self) -> Cow<'static, [ProtocolVersion]>
fn supported_protocol_versions(&self) -> Cow<'static, [ProtocolVersion]>
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> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<H> Service<RoleServer> for Hwhere
H: ServerHandler,
impl<H> Service<RoleServer> for Hwhere
H: ServerHandler,
async fn handle_request( &self, request: <RoleServer as ServiceRole>::PeerReq, context: RequestContext<RoleServer>, ) -> Result<<RoleServer as ServiceRole>::Resp, ErrorData>
async fn handle_notification( &self, notification: <RoleServer as ServiceRole>::PeerNot, context: NotificationContext<RoleServer>, ) -> Result<(), ErrorData>
fn get_info(&self) -> <RoleServer as ServiceRole>::Info
Source§fn supported_protocol_versions(&self) -> Cow<'static, [ProtocolVersion]>
fn supported_protocol_versions(&self) -> Cow<'static, [ProtocolVersion]>
initialize
negotiation may agree to. Read more