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.