pub struct YggMcpServer;Expand description
MCP 服务器实例(无状态:每个请求由 service_factory 新建一份)。
共享状态(DB 连接等)通过 get_conn() 全局池获取,无需在实例里持有。
工具方法分散在各 tools/*.rs 的 impl YggMcpServer 块里。
Implementations§
Source§impl YggMcpServer
impl YggMcpServer
Sourcefn combined_router() -> ToolRouter<Self>
fn combined_router() -> ToolRouter<Self>
组合所有工具组的路由表。新增工具组时在此追加一行。
Source§impl YggMcpServer
impl YggMcpServer
Sourcepub fn list_comments_tool_attr() -> Tool
pub fn list_comments_tool_attr() -> Tool
Generated tool metadata function for list_comments
Sourcefn list_comments(
&self,
Parameters: Parameters<ListCommentsParams>,
Extension: Extension<Parts>,
) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
fn list_comments( &self, Parameters: Parameters<ListCommentsParams>, Extension: Extension<Parts>, ) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
列出评论(分页,可按状态筛选)。要求 write 作用域。
Sourcepub fn approve_comment_tool_attr() -> Tool
pub fn approve_comment_tool_attr() -> Tool
Generated tool metadata function for approve_comment
Sourcefn approve_comment(
&self,
Parameters: Parameters<CommentIdParams>,
Extension: Extension<Parts>,
) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
fn approve_comment( &self, Parameters: Parameters<CommentIdParams>, Extension: Extension<Parts>, ) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
通过指定评论(同时递归通过所有 pending 祖先评论)。要求 write 作用域。
Sourcepub fn delete_comment_tool_attr() -> Tool
pub fn delete_comment_tool_attr() -> Tool
Generated tool metadata function for delete_comment
Sourcefn delete_comment(
&self,
Parameters: Parameters<CommentIdParams>,
Extension: Extension<Parts>,
) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
fn delete_comment( &self, Parameters: Parameters<CommentIdParams>, Extension: Extension<Parts>, ) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
删除指定评论(软删除:设置 deleted_at 与 status=trash)。要求 write 作用域。
Sourcepub fn set_comment_status_tool_attr() -> Tool
pub fn set_comment_status_tool_attr() -> Tool
Generated tool metadata function for set_comment_status
Sourcefn set_comment_status(
&self,
Parameters: Parameters<SetCommentStatusParams>,
Extension: Extension<Parts>,
) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
fn set_comment_status( &self, Parameters: Parameters<SetCommentStatusParams>, Extension: Extension<Parts>, ) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
设置评论状态(approved/spam/trash)。要求 write 作用域。
pub fn comments_router() -> ToolRouter<Self>
Source§impl YggMcpServer
impl YggMcpServer
Sourcepub fn upload_media_tool_attr() -> Tool
pub fn upload_media_tool_attr() -> Tool
Generated tool metadata function for upload_media
Sourcefn upload_media(
&self,
Parameters: Parameters<UploadMediaParams>,
Extension: Extension<Parts>,
) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
fn upload_media( &self, Parameters: Parameters<UploadMediaParams>, Extension: Extension<Parts>, ) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
从一个图片 URL 抓取并入库(服务端转 WebP 若更小),返回可直接嵌入
Markdown 正文的 /uploads/... URL。要求 write 作用域。
仅接受 https:// URL;服务端做 SSRF 防护(私网/回环/保留段拒绝、
DNS 锁定防 rebinding、禁重定向、体积上限)。二进制不经 JSON-RPC。
pub fn media_router() -> ToolRouter<Self>
Source§impl YggMcpServer
impl YggMcpServer
Sourcepub fn create_post_tool_attr() -> Tool
pub fn create_post_tool_attr() -> Tool
Generated tool metadata function for create_post
Sourcefn create_post(
&self,
Parameters: Parameters<CreatePostParams>,
Extension: Extension<Parts>,
) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
fn create_post( &self, Parameters: Parameters<CreatePostParams>, Extension: Extension<Parts>, ) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
创建一篇新文章(草稿或直接发布)。要求 write 作用域。
Sourcepub fn update_post_tool_attr() -> Tool
pub fn update_post_tool_attr() -> Tool
Generated tool metadata function for update_post
Sourcefn update_post(
&self,
Parameters: Parameters<UpdatePostParams>,
Extension: Extension<Parts>,
) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
fn update_post( &self, Parameters: Parameters<UpdatePostParams>, Extension: Extension<Parts>, ) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
更新指定文章(PATCH 语义:仅更新提供的字段)。要求 write 作用域。 仅文章原作者可更新。
Sourcepub fn publish_post_tool_attr() -> Tool
pub fn publish_post_tool_attr() -> Tool
Generated tool metadata function for publish_post
Sourcefn publish_post(
&self,
Parameters: Parameters<PostIdParams>,
Extension: Extension<Parts>,
) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
fn publish_post( &self, Parameters: Parameters<PostIdParams>, Extension: Extension<Parts>, ) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
发布指定文章(设置 status=published 与 published_at)。要求 write 作用域。
Sourcepub fn trash_post_tool_attr() -> Tool
pub fn trash_post_tool_attr() -> Tool
Generated tool metadata function for trash_post
Sourcefn trash_post(
&self,
Parameters: Parameters<PostIdParams>,
Extension: Extension<Parts>,
) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
fn trash_post( &self, Parameters: Parameters<PostIdParams>, Extension: Extension<Parts>, ) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
将指定文章移入回收站(软删除:设置 deleted_at)。要求 write 作用域。
Sourcepub fn delete_post_tool_attr() -> Tool
pub fn delete_post_tool_attr() -> Tool
Generated tool metadata function for delete_post
Sourcefn delete_post(
&self,
Parameters: Parameters<PostIdParams>,
Extension: Extension<Parts>,
) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
fn delete_post( &self, Parameters: Parameters<PostIdParams>, Extension: Extension<Parts>, ) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
彻底删除指定文章(物理删除,不可恢复)。要求 write 作用域。
pub fn posts_router() -> ToolRouter<Self>
Source§impl YggMcpServer
impl YggMcpServer
Sourcepub fn search_posts_tool_attr() -> Tool
pub fn search_posts_tool_attr() -> Tool
Generated tool metadata function for search_posts
Sourcefn search_posts(
&self,
Parameters: Parameters<SearchPostsParams>,
Extension: Extension<Parts>,
) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
fn search_posts( &self, Parameters: Parameters<SearchPostsParams>, Extension: Extension<Parts>, ) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
全文搜索已发布文章(知识库)。返回标题/slug/摘要/标签。
Sourcepub fn get_post_tool_attr() -> Tool
pub fn get_post_tool_attr() -> Tool
Generated tool metadata function for get_post
Sourcefn get_post(
&self,
Parameters: Parameters<GetPostParams>,
Extension: Extension<Parts>,
) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
fn get_post( &self, Parameters: Parameters<GetPostParams>, Extension: Extension<Parts>, ) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
按 slug 取单篇已发布文章(草稿对 read 不可见)。
Generated tool metadata function for list_tags
列出全部标签 + 各自关联的已发布文章数。
pub fn read_router() -> ToolRouter<Self>
Source§impl YggMcpServer
impl YggMcpServer
Sourcepub fn run_code_tool_attr() -> Tool
pub fn run_code_tool_attr() -> Tool
Generated tool metadata function for run_code
Sourcefn run_code(
&self,
Parameters: Parameters<RunCodeParams>,
Extension: Extension<Parts>,
) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
fn run_code( &self, Parameters: Parameters<RunCodeParams>, Extension: Extension<Parts>, ) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
在容器沙箱内执行代码并返回输出。要求 admin 作用域。
pub fn runner_router() -> ToolRouter<Self>
Source§impl YggMcpServer
impl YggMcpServer
Sourcepub fn get_settings_tool_attr() -> Tool
pub fn get_settings_tool_attr() -> Tool
Generated tool metadata function for get_settings
Sourcefn get_settings(
&self,
Parameters: Parameters<GetSettingsParams>,
Extension: Extension<Parts>,
) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
fn get_settings( &self, Parameters: Parameters<GetSettingsParams>, Extension: Extension<Parts>, ) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
读取站点回收站设置。要求 admin 作用域。
Sourcepub fn update_settings_tool_attr() -> Tool
pub fn update_settings_tool_attr() -> Tool
Generated tool metadata function for update_settings
Sourcefn update_settings(
&self,
Parameters: Parameters<UpdateSettingsParams>,
Extension: Extension<Parts>,
) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
fn update_settings( &self, Parameters: Parameters<UpdateSettingsParams>, Extension: Extension<Parts>, ) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
更新站点回收站设置。要求 admin 作用域。retention_days 会 clamp 到 [1, 365]。
pub fn settings_router() -> ToolRouter<Self>
Source§impl YggMcpServer
impl YggMcpServer
Sourcepub fn create_tag_tool_attr() -> Tool
pub fn create_tag_tool_attr() -> Tool
Generated tool metadata function for create_tag
Sourcefn create_tag(
&self,
Parameters: Parameters<CreateTagParams>,
Extension: Extension<Parts>,
) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
fn create_tag( &self, Parameters: Parameters<CreateTagParams>, Extension: Extension<Parts>, ) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
创建一个新标签。若同名标签已存在则返回已有标签 id。要求 write 作用域。
Sourcepub fn rename_tag_tool_attr() -> Tool
pub fn rename_tag_tool_attr() -> Tool
Generated tool metadata function for rename_tag
Sourcefn rename_tag(
&self,
Parameters: Parameters<RenameTagParams>,
Extension: Extension<Parts>,
) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
fn rename_tag( &self, Parameters: Parameters<RenameTagParams>, Extension: Extension<Parts>, ) -> Pin<Box<dyn Future<Output = Result<CallToolResult, McpError>> + Send + '_>>
重命名指定标签。要求 write 作用域。
Trait Implementations§
Source§impl Clone for YggMcpServer
impl Clone for YggMcpServer
Source§fn clone(&self) -> YggMcpServer
fn clone(&self) -> YggMcpServer
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Default for YggMcpServer
impl Default for YggMcpServer
Source§fn default() -> YggMcpServer
fn default() -> YggMcpServer
Source§impl ServerHandler for YggMcpServer
单一 ServerHandler:工具调度委托给合并后的路由表。
router = Self::combined_router() 让 tool_handler 宏生成的
call_tool/list_tools/get_tool 全部走组合路由。
impl ServerHandler for YggMcpServer
单一 ServerHandler:工具调度委托给合并后的路由表。
router = Self::combined_router() 让 tool_handler 宏生成的
call_tool/list_tools/get_tool 全部走组合路由。
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 get_info(&self) -> ServerInfo
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
§fn supported_protocol_versions(&self) -> Cow<'static, [ProtocolVersion]>
fn supported_protocol_versions(&self) -> Cow<'static, [ProtocolVersion]>
§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
§fn accepted_subscription_filter(
&self,
requested: &SubscriptionFilter,
) -> Option<SubscriptionFilter>
fn accepted_subscription_filter( &self, requested: &SubscriptionFilter, ) -> Option<SubscriptionFilter>
§fn listen(
&self,
context: SubscriptionContext,
) -> impl Future<Output = Result<(), ErrorData>> + MaybeSendFuture
fn listen( &self, context: SubscriptionContext, ) -> impl Future<Output = Result<(), ErrorData>> + MaybeSendFuture
§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
§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
§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.§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.§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 YggMcpServer
impl RefUnwindSafe for YggMcpServer
impl Send for YggMcpServer
impl Sync for YggMcpServer
impl Unpin for YggMcpServer
impl UnsafeUnpin for YggMcpServer
impl UnwindSafe for YggMcpServer
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,
§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
§fn supported_protocol_versions(&self) -> Cow<'static, [ProtocolVersion]>
fn supported_protocol_versions(&self) -> Cow<'static, [ProtocolVersion]>
Service::supported_protocol_versions].§impl<T> InitializeFromFunction<T> for T
impl<T> InitializeFromFunction<T> for T
§fn initialize_from_function(f: fn() -> T) -> T
fn initialize_from_function(f: fn() -> T) -> T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§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
§fn supported_protocol_versions(&self) -> Cow<'static, [ProtocolVersion]>
fn supported_protocol_versions(&self) -> Cow<'static, [ProtocolVersion]>
initialize
negotiation may agree to. Read more